MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


5 participantes

    [Resolvido]Importar Texto do PDF para String

    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Sex 31 Mar 2017, 21:28

    Boa Noite

    Depois de vasculhar o fórum inteiro, não achei nada que pudesse adaptar a minha realidade, ao menos nada que não gera-se algum erro em tempo de execução que eu conseguisse resolver, pois bem...

    Trabalho em uma loja de Fast Food com um sistema de Delivery Chamado "ifood", preciso importar as informações dos pedidos que chegam nele para o meu banco de dados access, pensei em umas três maneiras possíveis e deixei a que pensei ser mais fácil por último, porém não consegui sucesso em nenhumas delas, primeiro pesquisei como copiar o texto da tela de um programa aberto para uma string para poder manipula-lo, achei que seria fácil usando API's mais parece ser mais complexo do que se imagina, não se consegue muita coisa na internet pois os experts pensam que pessoas querendo esse tipo de informação querem rakear algum sistema criando um KeyLogger ou algo parecido, parti para a segunda ideia que seria interceptar a impressão do pedido do sistema extraindo assim o texto que seria impresso para minha string, mais complexo ainda porque não é possível criar impressora virtuais no access só em C# e outras linguagem ao que me parece, então pensei vou no fórum pesquisar o mais fácil e parar de quebrar a cabeça que seria imprimir o pedido do sistema em uma impressora virtual que gera PDF como por exemplo CutPDF Writer ou até mesmo a própria do Windows "Microsoft Print to PDF" de posse do arquivo PDF com o texto preciso vou em busca de uma função em VBA para extrair o texto do PDF para uma String ou até mesmo para um arquivo Txt, e simplesmente não consigo, a dias que tento incessantemente sem êxito, tem exemplos no repositório para transformar txt em PDF preciso justamente ao contrario, PDF para txt, pensei que seria uma coisa muito simples, por isso estou pedido ajuda aos colegas, que se puderem me ajudar a concluir esse trabalho facilitar a minha vida em muito, o meu sistema tem a logística certa para o meu tipo de operação, porém preciso da informação de outro sistema para alimenta-lo preciso simplesmente extrair o texto de um PDF, se alguém puder me ajudar agradeço imensuravelmente.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  FabioPaes Sáb 01 Abr 2017, 12:00

    Amigo, aqui no fórum encontrará tópicos com o termo Importar dados de arquivo PDF. Porem não e nada fácil, e na maioria das vezes é mais facil importar de um arquivo .txt.
    Porem eu desconheço um conversor de PDF>.txt no Access. Existem outro programas com esse fim, mas sao todos pagos. Ou ate conversoes online, que considero inseguro por esta enviando os dados a servidores que nem sei de onde são!

    Em alguns casos é mais fácil você abri o PDF selecionar todo o Texto e Colar em uma Caixa de Texto de um Formulário... e Daee trabalhar os dados. Ja me utilizei desse método... Copiava todo o Texto de um relatório, colava em um caixa de texto access e processava ele utilizando a função do Ahteixeita SeparaXMLentreestring.


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Exportar Texto do PDF para String

    Mensagem  Ednardo Sáb 01 Abr 2017, 15:09

    É exatamente isso que eu quero, só trocaria uma caixa de texto por uma string, porém esse processo de abertura do PDF e cópia do texto teria que ser automatizado, nada manual entende? Se tiver como postar essa função aqui ou mandar o link do tópico eu agradeceria muito porque não consigo fazer buscas no fórum, nunca consigo achar o que busco sem ser através do google.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  FabioPaes Sáb 01 Abr 2017, 17:27

    A função é essa:

    Código:

    Function separaEntreDuasStringsXML(strTotal As String, strInicio As String, strFim As String)
    '                 2014 Alvaro Teixeira                          '
    '                Adaptado por Fabio Paes                        '
    '           Em 12/02/2017 para MAXIMOACCESS                     '

    Dim strP As String
    On Error Resume Next
    Dim i As Long, j As Long
    i = InStr(strTotal, strInicio)
        'Aqui ele separa o Texto para determinar o Fim da Extração.
        strP = Mid(strTotal, i + (Len(strInicio)), Len(strTotal))
        j = InStr(strP, strFim)
        separaEntreDuasStringsXML = Mid(strTotal, i + Len(strInicio), j - 1)
        If Nz(Len(separaEntreDuasStringsXML), 0) = 0 Then
            separaEntreDuasStringsXML = 0
        End If
    End Function

    Chame a função assim:

    separaEntreDuasStringsXML(xProd, "< uCom >", "< /uCom >")

    xProd String onde tem o Texto a ser Extraido
    < uCom > é o Delimitador de Inicio da Extração
    < /uCom > é o Delimitador Fim da Extração.

    Exemplo para a linha a cima:

    xProd= Qualquer texto... xxsdskdjsdkjsjdh < uCom > Esse é o texto que me interessa < /uCom> fim valor da String

    Será extraído apenas o valor: Esse é o texto que me interessa


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Sáb 01 Abr 2017, 23:26

    Amigo desculpe minha falta de conhecimento, mais não consegui entender como posso aplicar essa função em um PDF para extrair seu texto para uma caixa de texto do meu form, será possível adaptar?
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  FabioPaes Dom 02 Abr 2017, 16:21

    Não amigo, essa função e para separação de dados...
    O PDF terá que ser convertido para .txt e então sera feito a leitura de txt e utilizado a função para extrair. Pesquise por: Importar TXT

    Lendo direto o PDF eu desconheço algo que faça isso!



    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Dom 02 Abr 2017, 17:21

    OK, acontece que a conversão de PDF para TXT terá que ser automatizado, nada manual entende, tudo através do VBA, Manipular o TXT eu sei, estou quase chegando em uma maneira de extrair o texto do PDF, se conseguir posto aqui a solução ou se faltar algum detalhe eu irei expor aqui pra tentar a char a solução...
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Seg 03 Abr 2017, 08:04

    Bom dia, finalmente depois de uma semana consegui chegar na resolução do meu problema, deixarei aqui para poder ajudar outros que como eu que precisam de uma solução igual ou similar a minha...

    Primeiro será necessário ter instalado na máquina uma versão full e pro do Adobe Reader, a versão que estou usando é "Adobe Acrobat Pro DC 2016", após instalado terá que fazer referência a seguinte biblioteca "Adobe Acrobat 10.0 Type Library" que faz referência ao arquivo "Acrobat.tlb", feito isso insira o seguinte código e adapte a sua realidade...

    Código:
    Dim objPDFPage As AcroPDPage
    Dim objPDFDoc As New AcroPDDoc
    Dim objPDFAVDoc As AcroAVDoc
    Dim objAcroApp As AcroApp
    Dim objPDFRectTemp As Object
    Dim objPDFRect As New AcroRect
    Dim lngTextRangeCount As Long
    Dim objPDFTextSelection As AcroPDTextSelect
    Dim temptextcount As Long
    Dim strText As String

    Dim lngPageCount As Long
    Dim Page As Long

    objPDFDoc.Open ("C:\SeuArquivo.pdf")

    lngPageCount = objPDFDoc.GetNumPages

    For Page = 0 To lngPageCount - 1

       Set objPDFPage = objPDFDoc.AcquirePage(Page)
       Set objPDFRectTemp = objPDFPage.GetSize
       objPDFRect.Left = 0
       objPDFRect.Right = objPDFRectTemp.x
       objPDFRect.Top = objPDFRectTemp.y
       objPDFRect.bottom = 0

       Set objPDFTextSelection = objPDFDoc.CreateTextSelect(Page, objPDFRect)

       temptextcount = objPDFTextSelection.GetNumText
       For lngTextRangeCount = 1 To objPDFTextSelection.GetNumText
           doctextdoctext = doctext & objPDFTextSelection.GetText(lngTextRangeCount - 1)

           strText = strText & doctextdoctext

       Next

       doctextdoctext = doctext & vbCrLf

    Next
    1
    bdoctype = "PDF"


    Essa função abrirá o documento em segundo plano, selecionará todo o texto de todas as páginas existentes no PDF, copia e transfere para a String "strText" e !!!Voilà!!! você terá todo o texto do PDF em uma string para manipular como quiser dentro do seu banco de dados, daí é só estudar as técnicas de manipulação de strings para poder extrair exatamente o que precisa!!!

    Abraço a todos e bons estudos.
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Seg 03 Abr 2017, 08:09

    Obs: insira uma função para selecionar um arquivo e capturar seu caminho completo para automatizar todo o processo para o usuário final de acordo com a necessidade do procedimento...
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  FabioPaes Seg 03 Abr 2017, 16:48

    Que bom que conseguiu! É uma pena que so funcione com a versão Paga do Adobe.

    Tetei aqui com versão Read e deu erro ao abrir o arquivo.


    Grato pelo retorno amigo, até a próxima se Deus Quiser!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Clebergyn Dom 12 Jul 2020, 23:36

    Bom dia Amigos!

    Tem uma forma de converter PDF para TXT

    Baixando o programa: XPDF no site "procure no google (nao pode colocar link aqui)"  seria http www(ponto)xpdfreader(ponto)com/download(ponto)html
    e tambem as suas ferramentas (apos baixar as ferramentas, salve elas na pasta do sistema e depois voce vai usar o arquivo pdftotext.exe na função abaixo)

    e usando o codigo abaixo:

    Private Sub PdfToText(ByVal PdfPath As String, ByVal TextPath As String)
    Const PathToPdfToText As String =  "path\pdftotext.exe" 'adicione o endereço onde esta o arquivo pdftotext.exe
    With CreateObject("wscript.shell")
       .Run Chr(34) & PathToPdfToText & "pdftotext.exe" & Chr(34) & " " & Chr(34) & PdfPath & Chr(34) & " " & Chr(34) & TextPath & Chr(34), 1, 1
    End With
    End Sub

    use a funçao assim:  PdfToText arquivo.pdf, arquivo.txt

    Obs: lembrando que o caminho do arquivo.pdf e arquivo.txt tem que ser com poucas pastas, se for um caminho tipo:c:\dados\arquivo1\arquivo2\arquivo.pdf  comigo nao funcionou o codigo
    agora se colocar: c:\arquivo\arquivo.pdf  assim com poucas pastas no diretorio funcionou

    lembrando tambem, que pdf provindo de fotos ou scaneamentos (em forma de figura) nao vai gerar direito o arquivo texto.

    espero que ajude galera!

    Bons estudos!


    Última edição por Clebergyn em Sex 24 Jul 2020, 18:15, editado 2 vez(es)
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Qua 15 Jul 2020, 14:18

    Obrigado pelo feed back, irei fazer o teste como forma alternativa e gratuita.
    avatar
    override
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 25/10/2013

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  override Seg 01 Nov 2021, 21:39

    Conseguiu fazer com o XpdfReader?

    Não consegui aplicar nem com o acrobat PRO nem com o XpdfReader.

    Dá para postar cópia da bd para ver o que estou a falhar?

    Obrigado.
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Qua 03 Nov 2021, 20:33

    Boa Noite, não testei com o XPDF, só uso o acrobat, porém precisa ter a versão registrada do mesmo se não, não irá funcionar, posso tentar adaptar algo para o XPDF, agora se tiver o Acrobat PRO versão paga posso te orientar como fazer, postar o DB não é possível porque está em um projeto bem maior, posso de parrar o módulo que desenvolvi, que uso no meu projeto!
    avatar
    override
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 25/10/2013

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  override Qua 03 Nov 2021, 21:16

    Boa noite,

    Eu tenho o acrobat PRO registado. Mas no trabalho não... E a bd é para usar no trabalho.

    Se puder adaptar e ajudar agradeço.
    avatar
    Ednardo
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 30
    Registrado : 19/11/2015

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Ednardo Qua 03 Nov 2021, 21:45

    Posso te ajudar sim, terei todo prazer, o problema de usar a biblioteca do adobe é que em qualquer máquina que for usar ele terá que estar instalado e registrado, isso é um problema, se não for um computador de uso pessoal, pensando nisso use o "pdftotext", consegui implementar aqui o uso dele e funcionou, extrai para txt e html, vou fazer um db de projeto e envio aqui para vc implementar no seu trabalho, só vou verificar se o XpdfReader precisa estar instalado na máquina ou não, te passo o feed back assim que possível!
    avatar
    override
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 3
    Registrado : 25/10/2013

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  override Qui 04 Nov 2021, 06:53

    Obrigado pela ajuda. Fico a aguardar.
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 79
    Registrado : 23/02/2016

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  alexjc Seg 15 Ago 2022, 19:50

    desculpe a falta de conhecimento, mas coloquei este código em um botão e ao clicar da erro ! sei que o erro deve estar bem nada cara de vocês que entende bem, poderiam me dizer o que esta errado ?


    Private Sub PdfToText_Click(ByVal PdfPath As String, ByVal TextPath As String)
    Const PathToPdfToText As String = "C:\Nova pasta\bin64\pdftotext.exe" 'adicione o endereço onde esta o arquivo pdftotext.exe
    With CreateObject("wscript.shell")
    .Run Chr(34) & PathToPdfToText & "pdftotext.exe" & Chr(34) & " " & Chr(34) & "C:\Nova pasta\bin64\1.pdf" & Chr(34) & " " & Chr(34) & "C:\Nova pasta\bin64\1.txt" & Chr(34), 1, 1
    End With
    End Sub



    note que coloquei todos os arquivos na mesma pasta para facilitar meu aprendizado C:\Nova pasta\bin64 eu coloquei tanto o arquivo pdftotext quento o arquivo 1.pdf que desejo converter.
    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Clebergyn Ter 16 Ago 2022, 21:18


    Código:

    ' tente assim
    Private Sub PdfToText_Click(ByVal PdfPath As String, ByVal TextPath As String)
    Const PathToPdfToText As String = "C:\Nova pasta\bin64\" 'adicione o endereço (a pasta) onde esta o arquivo pdftotext.exe
    With CreateObject("wscript.shell")
    .Run Chr(34) & PathToPdfToText & "pdftotext.exe" & Chr(34) & " " & Chr(34) & PdfPath & Chr(34) & " " & Chr(34) & TextPath  & Chr(34), 0, true
    End With
    End Sub



    Código:
     
    'use a funçao assim: 

    PdfToText "C:\Nova pasta\bin64\1.pdf", "C:\Nova pasta\bin64\1.txt"


    Lembrando que se o arquivo pdf tiver uma figura com letras, dentre outras figuras, nao vai ser convertido em txt. Somente será convertido textos que realmente são textos (provindo de dígitos) dentro do pdf. Para transformar as letras de figuras em puros dígitos, tem que ser com uma ferramenta chamada OCR.
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 79
    Registrado : 23/02/2016

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  alexjc Ter 16 Ago 2022, 21:46

    Primeiramente obrigado por me ajuda, mas o que eu não estou sabendo é se eu copiar todo esse código e incluir direto em um botão ele não funciona, como devo fazer ?


    avatar
    Clebergyn
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 788
    Registrado : 29/08/2012

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Clebergyn Ter 16 Ago 2022, 21:51


    então

    tente então na linha
    Const PathToPdfToText As String = "C:\Nova pasta\bin64\pdftotext.exe"
    deixar assim
    Const PathToPdfToText As String = "C:\Nova pasta\bin64\"

    e teste
    avatar
    alexjc
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 79
    Registrado : 23/02/2016

    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  alexjc Ter 16 Ago 2022, 21:52

    Clebergyn Obrigado porme ajudar,

    depois de tentar muito, eu consegui, seu código esta correto, é que eu estava usando o nome ( pdftotext )

    só foi eu mudar para outro nome ai funcionou

    valew !!!!!


    Conteúdo patrocinado


    [Resolvido]Importar Texto do PDF para String Empty Re: [Resolvido]Importar Texto do PDF para String

    Mensagem  Conteúdo patrocinado


      Data/hora atual: Qui 07 Nov 2024, 20:38