Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

tigredonorte

como realizar busca em arquivos pdf via php?

Recommended Posts

Olá a todos,

 

estou desenvolvendo um sistema, no qual preciso procurar informações em um arquivo pdf, que acreditem... cada arquivo é muito extenso.

 

Uma solução que pensei foi em transformá-lo em .doc e então realizar a busca, mas novamente não encontrei uma forma de fazer isto automaticamente.

 

Outra solução seria conseguir realizar a pesquisa diretamente no arquivo, mas neste caso simplesmente abrir o arquivo não funciona, pois a codificação de arquivo pdf faz com que leiamos binário o arquivo codificado e não texto.

 

Para arquivos de texto, uma busca pode ser feita assim:

function execute() {

       //ARQUIVO A SER PESQUISADO
       $arquivo = getcwd() . "/arquivo.pdf";

       //ABRE O ARQUIVO
       $arq = fopen($arquivo, "r");

       //Lê o arquivo
       $conteudo = fread($arq , filesize($arquivo) );

       //FECHA O ARQUIVO
       fclose($ponteiro);

       $procurando = "Texto";
       $busca = stripos($conteudo, $procurando);

       if($busca === false)
       {
           return "Nenhuma ocorrencia encontrada";
       }
       else
       {
           return "Encontramos os resultados" ;
       }
   }

 

Procurei também referências as bibliotecas de manipulaçao de pdf existentes, tais como fpdf, mas nenhuma resolve meu problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oppa, resolveu o problema? pois estou com um problema parecido, quero fazer pesquisa em pdf, exemplo nesse pdf tem 400 leis, quero fazer pesquisa onde nela encontra a lei do texto em digito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oppa, resolveu o problema? pois estou com um problema parecido, quero fazer pesquisa em pdf, exemplo nesse pdf tem 400 leis, quero fazer pesquisa onde nela encontra a lei do texto em digito.

 

Bom.. não resolvi completamente.. Pelo que pesquisei existem pdfs que são criptografados, e estes é impossível fazer alguma coisa neles, para outros pdfs você pode tratálo como arquivo de texto, desta forma basta abri-lo e fazer a pesquisa normalmente...

 

Bom, uma outra solução não muito razoavel é converter o seu pdf para arquivo de texto usando o acrobat reader por exemplo. Mas, se forem muitos pdfs não sei se essa é uma boa solução. Talvez dê para converter em um servidor linux usando algo via linha de comando.... Aí seria criada alguma rotina que automatize isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Oppa, resolveu o problema? pois estou com um problema parecido, quero fazer pesquisa em pdf, exemplo nesse pdf tem 400 leis, quero fazer pesquisa onde nela encontra a lei do texto em digito.

 

Bom.. não resolvi completamente.. Pelo que pesquisei existem pdfs que são criptografados, e estes é impossível fazer alguma coisa neles, para outros pdfs você pode tratálo como arquivo de texto, desta forma basta abri-lo e fazer a pesquisa normalmente...

 

Bom, uma outra solução não muito razoavel é converter o seu pdf para arquivo de texto usando o acrobat reader por exemplo. Mas, se forem muitos pdfs não sei se essa é uma boa solução. Talvez dê para converter em um servidor linux usando algo via linha de comando.... Aí seria criada alguma rotina que automatize isto.

 

Entendo. dei uma verificada tambem, mas de qualquer modo para mim ainda é inviável, no caso eu quero digitar como ex:. a palavra "organica" e apareça todas as leis que contenha essa palavra. Pelo jeito a forma mais viável é cadastrar essas leis uma por uma no BD. o que você acha?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo depende... Você terá que abrir muitos pdfs e sair cadastrando um por um? Você terá que consultar cada documento várias vezes? Pois se tiver que copiar o conteúdo de cada pdf um por um mas o número de pesquisas não é alto, converte ele para texto plano usando o adobe 9 do windows ou o convert do linux. E faz a pesquisa no arquivo usando algum algoritmo tipo o shift and aproximado que postei no laboratorio de scripts. Agora, se esses arquivos gerarão muitas consultas, aí é melhor salvar no banco de dados mesmo, pois é mais rápido, ele usa estruturas mais eficientes para indexar palavras. Claro, depende do seu banco de dados também, tudo depende. Pensa bem no que dará menos trabalho e sera mais simples de azer, geralmente é a melhor solução. Simples e elegante.

Compartilhar este post


Link para o post
Compartilhar em outros sites

De fato o que deve ser indexado para busca é apenas o texto, pensando neste aspecto vocês podem fazer uso de um extrator (um código pronto ou programa externo) para extrair o texto puro e armazenar no banco de dados. Não há necessidade de preservar formatação e/ou pontuação, além de outros caracteres especiais, uma vez que estes recursos não vão apresentar resultados mais precisos para a busca.

 

Algumas possibilidades:

http://www.phpclasses.org/package/6155-PHP-Extract-text-from-PDF-files.html

http://community.livejournal.com/php/295413.html

http://php.net/manual/en/ref.pdf.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.