Pesquisar texto em vários pdf sem abri los

Tire suas dúvidas sobre programação em AutoHotkey

Moderator: Gio

Alexjc
Posts: 5
Joined: 07 Oct 2020, 22:17

Pesquisar texto em vários pdf sem abri los

Post by Alexjc » 11 Aug 2022, 20:07

recentemente descobri uma funcionalidade no Foxit Reader que achei incrível.

A funcionalidade é Pesquisar texto em centenas de pdf sem abri los.
para fazer isso
1º - Abra qualquer arquivo pdf no Foxit Reader
2º - aperte ( Shift + Ctrl + F )
3º - Escolher a Pasta
4º - Só fazer a pesquisa

Obs.: ele encontra todos da pastas e subpastas também.

pois bem sera que alguém saberia como pegar a Biblioteca do Reader e fazer esta mesma operação por AutoHotKeys ?

isso seria ótimo, pois assim eu poderia criar um robô que ficava lendo, renomeando, e salvando os arquivos .PDF nas pastas corretas.

User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Pesquisar texto em vários pdf sem abri los

Post by Gio » 12 Aug 2022, 09:13

Bom dia Alexjc.

Tenho um script interno na empresa fazendo algo semelhante a isso, mas ao invés de usar Foxit Reader, ele usa o PdftoText, um aplicativo controlável por linha de comando que permite converter um PDF em TXT.

Uma vez executado o comando de conversão (usando Run, %ComSpec% /c), o script aguarda o arquivo txt ser gerado, depois lê o conteúdo usando FileRead e no seu caso depois disso ele simplesmente iria decidir para qual nome renomear e em qual pasta colocar o arquivo original (você pode renomear arquivos usando FileMove.

O Pdftotext hoje faz parte de uma suite chamada xpdf. Sendo assim, basta instalar o xpdf na máquina que a linha de comando do pdftotext será habilitada.


:arrow: OBS: Só pra dizer o óbvio: o xpdf é um programa de terceiros, e embora eu esteja comentando que uso ele, isso não significa que a comunidade do autohotkey ou a fundação recomende ou endosse ele. Estou apenas compartilhando minha experiência pessoal como usuário, pois todo programa de terceiros, ainda que comentado por alguém aqui do fórum, será sempre usado a seu próprio risco por quem quer que deseje usar. Eu NÃO sou desenvolvedor do xpdf para poder dizer com certeza se ele é totalmente livre de bundlewares ou quaisquer códigos maliciosos. Se quiser usar, use a seu próprio risco assim com eu faço. Da útima vez que verifiquei, este programa é open-source e tem um bom histórico (26 anos).

sofista
Posts: 645
Joined: 24 Feb 2020, 13:59
Location: Buenos Aires

Re: Pesquisar texto em vários pdf sem abri los

Post by sofista » 12 Aug 2022, 10:09

Olá: Se a utilização da linha de comando for um problema, este wrapper de PdftoText pode ser útil - não o utilizei muito, mas as vezes que o fiz funcionaram satisfatoriamente:

viewtopic.php?p=81126#p81126

Alexjc
Posts: 5
Joined: 07 Oct 2020, 22:17

Re: Pesquisar texto em vários pdf sem abri los

Post by Alexjc » 13 Aug 2022, 08:17

Obrigado Gio, como vc pode ver, essa e minha primeira publicação no fórum, eu utilizo o MS Access onde ja utilizo mais de 10 anos onde faço muitas automações, mas ultimamente venho abrindo o lek de opções e descobri o AHK e to achando incrível , obrigado vou estudar um pouco sobre o que vc me respondeu e vou tentar utilizar

Alexjc
Posts: 5
Joined: 07 Oct 2020, 22:17

Re: Pesquisar texto em vários pdf sem abri los

Post by Alexjc » 15 Aug 2022, 18:02

então peguei este codigo, ele até abre uma aba pedepra mim escolher o arquivo pdf, ai depois ele da um erro na linha6

Code: Select all

FileSelectFile, MyFile ; Select a pdf file
MsgBox, % PdfToText(MyFile)
return

PdfToText(PdfPath) {
    static XpdfPath := """" A_ScriptDir "C:\Nova pasta\bin64\pdftotext.exe"""
    objShell := ComObjCreate("WScript.Shell")
 
    ;--------- Building CmdString (look in the .txt docs incuded with xpdf):
    ; From the xpdf docs in [ScriptDir]\xpdfbin-win-3.04\doc\pdftotext.txt:
    ;   SYNOPSIS
    ;       pdftotext [options] [PDF-file [text-file]]
    ;   ...
    ;       If text-file is '-', the text is sent to stdout.
    ; Options (Example option. Look in the xpdf docs for more):
    ;   -nopgbrk    Don't insert page breaks (form feed characters)  between  pages.
    ;---------
    CmdString := XpdfPath " -nopgbrk """ PdfPath """ -"
    objExec := objShell.Exec(CmdString)
    while, !objExec.StdOut.AtEndOfStream ; Wait for the program to finish
        strStdOut := objExec.StdOut.ReadAll()
    return strStdOut
}
[Mod edit: [code][/code] tags added.]

User avatar
Gio
Posts: 1247
Joined: 30 Sep 2013, 10:54
Location: Brazil

Re: Pesquisar texto em vários pdf sem abri los

Post by Gio » 15 Aug 2022, 18:07

Boa tarde.

Você instalou o Xpdf? Ele é necessário para que a linha de comando pdftotext funcione na máquina.

Se não resolver: Pode colocar um print do erro que aparece?

Guest

Re: Pesquisar texto em vários pdf sem abri los

Post by Guest » 17 Aug 2022, 17:18

Uma alternativa que considero muito boa e faz parte do meu dia a dia é o Everything https://www.voidtools.com/:
- ele permite indexar todo o conteúdo do HD e atualiza os índices em realtime
- aceita múltiplos argumentos e operadores logicos(e,ou,não)
- é possível pesquisar em arquivos que possuam preview nativo pelo windows (pdf,doc,docx,txt,rtf), tornando a busca para o script muito simples, não será preciso criar uma rotina para recuperar o conteúdo para cada formato
- possui acesso pela linha de comando utilizando o executável es.exe
- tem servidor web básico com autenticação simples(usuario e senha) em que a url é composta pelo caminho do arquivo.

por exemplo para procurar scripts "ahk" exceto no ultimo dia e que tenha o texto "Persistent" no conteúdo mas não gui: "*.ahk !dm:yesterday content:persistent !content:gui"
outro exemplo relacionando o tópico "*.pdf dm:last30days content:Danfe"

imhere
Posts: 2
Joined: 17 Aug 2022, 17:20

Re: Pesquisar texto em vários pdf sem abri los

Post by imhere » 17 Aug 2022, 17:45

Eu uso bastante o Everything https://www.voidtools.com/
Ele indexa todo o HD se quiser, com atualização em realtime, e pode procurar o conteúdo de qualquer arquivo que tenha preview nativo no windows.
Há um programa auxiliar para buscas pela linha de comando chamado es.exe.
As buscas podem ser compostas por vários argumentos e podem ser usados operadores lógicos.
A vantagem é de que não é preciso criar um rotina para manipular cada extensão, salvo se o objetivo for manipular as informações contidas dentro do arquivo.
por exemplo:
buscar todos os arquivos pdf na ultima semana que contenham o texto "danfe" mas não sejam de ontem e que não contenham como path a pasta \arquivados, usando o comando clip do windows a lista de arquivos é para a Clipboard

Code: Select all

es.exe *.pdf dm:lastweek content:danfe !dm:yesterday !\arquivados | clip

Alexjc
Posts: 5
Joined: 07 Oct 2020, 22:17

Re: Pesquisar texto em vários pdf sem abri los

Post by Alexjc » 19 Aug 2022, 17:47

obrigado ! Funciono perfeitamente !

Post Reply

Return to “Ajuda e Suporte Geral”