Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

Cautare in PDF
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Subiectul anterior :: Subiectul următor  
Autor Mesaj
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Vin Oct 08, 2004 5:38 pm    Titlul subiectului: Cautare in PDF  

Extragere text din PDF pentru functie de SEARCH

Salutare la toata lumea.

Lucrez de aproape 2 ani in PHP, si am trecut cu bine de multe provocari, insa acum m-am lovit de o problema la care sincer momentan nu am reusit sa gasesc o solutie. Unul din clienti mi-a cerut sa fac o functie de search pe niste fisiere PDF de pe server. Am reusit cu "succes" (ghilimele apar pentru ca aceasta cautare nu merge cu toate fisierele PDF - inca nu am reusit sa o standardizez) sa fac cautarea in fisiere PDF, insa nu am reusit sa returnez in nici un fel index-ul paginii de unde extrag textul pentru cautare.

Daca aveti idei, postatile aici, poate ajuta si pe altii. :wink:

Vesnic recunoscator, Christian
Sus  
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Dum Oct 10, 2004 12:17 pm    Titlul subiectului: Daca nu are nimeni idei postez eu una  

Dupa ce am petrecut ceva timp pe diverse forumuri am ajuns la urmatoarea concluzie.

Eu foloseam pentru cautarea in fisierele PDF clasa pdf_search pe care am gasit-o la http://www.phpclasses.org/browse/package/702.html, dar care se pare ca are unele bug-uri pe care nu am avut rabdarea necesara sa le analizez si sa le rezolv. In acest caz am luat-o pe alta directie, si anume. Am gasit XPDF care este o unealta foarte utila care extrage textul din fisierele PDF si il copiaza intr-un fisier txt pe server. Mie nu imi ramane decat sa fac un parsing pe fisierul respectiv si sa pun textul intr-o tabela in baza de date si fac cautarea acolo.

Oricum ar mai fi o problema insa nu asa de importanta. Cum se pot extrage thumbnail-uri ale paginilor dintr-un fisier PDF?
Sus  
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Dum Oct 10, 2004 11:15 pm    Titlul subiectului: Revenire  

Avand in vedere ca sunt nou in lumea linux si sincer sa fiu dezvolt cu succes cod PHP in win2k :oops: (cu toate ca trebuie sa fac la un moment dat trecerea la Linux definitiv), am fost nevoit sa fac functional XPDF-ul pe serverul de hosting. Aici nu au fost probleme datorita suportului oferit de cei de la hosting care s-au oferit sa-mi instaleze ei XPDF-ul. Iata si codul de test pe care il rulez pentru a extrage textul din PDF. Sper sa fie util la cineva, mie cu siguranta imi este.

<?php $file = "lipsum.pdf"; /* numele fisierului pdf (aici se afla in acelasi folder cu scriptul */ $file_name = substr($file,0,-4); /* extragerea rapida a numelui fisierului (fisierele nu pot avea decat extensia PDF) */ $view_encoding = "iso-8859-2"; /* extragerea se face dintr-un fisier pdf care contine diacritice */ exec("pdftotext ".$file); /* pdftotext este unealta din XPDF care extrage textul din fisierul $file si creeaza un fisier txt cu acelasi nume care contine textul*/ $infoDocument = shell_exec("pdfinfo ".$file); /* informatii despre fisierul pdf care pot fi mai tarziu utile */ $theDocument = $file_name.".txt"; /*  - verifica daca fisierul exista si il parcurge afisand rezultatele pe pagini - am stabilit ca daca pe pagina respectiva exista mai putzin de 30 de caractere pagina este o imagine sau cover sau pur si simplu are sub 30 de caractere :) */ if (file_exists($theDocument)) {     $fp = fopen($theDocument, "rb");     $content = fread($fp, filesize($theDocument));     fclose($fp);          $content = explode(chr(12), $content);          print ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset='.$view_encoding.'"> <title>PDF Document Text Extract Preview</title> <style> body {     font-family:verdana,arial;     font-size:11px; } </style> </head> <body>';     print '<pre>'.$infoDocument.'</pre>';          print 'Număr de pagini în fișierul PDF <b><a href="'.$file.'" target="_blank">'.$file.'</a></b> - <font color=#ff0000>'.(count($content)-1).'</font><hr><p></p>';          for($i=0; $i<count($content)-1; $i++) {         print '<b>Pagina '.($i+1).'</b>';         if (strlen(ereg_replace(" ","",trim($content[$i])))<30) {             print ' - <font color=#ff0000>posibila imagine sau cover</font>';         }         print '<br>'.$content[$i];         print '<hr>';     }          print ' </body> </html>'; } else { print ' <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset='.$view_encoding.'"> <title>PDF Document Text Extract Preview</title> <style> body {     font-family:verdana,arial;     font-size:11px; } </style> </head> <body> <center><font color=#ff0000><b>:: Extragerea textului nu a fost posibilă ::</b></font></center> </body> </html> '; } ?>
Sus  
apann



Data înscrierii: 17/Mai/2004
Mesaje: 93

Trimis: Lun Oct 11, 2004 9:48 am    Titlul subiectului:  

Ai noroc ca ai gasit un hosting care te lasa sa faci
an style="color: #000000"><?php exec() 
Sus  
PCPbSlack



Data înscrierii: 23/Noi/2003
Mesaje: 143
Locație: Ploiesti

Trimis: Lun Oct 11, 2004 9:51 am    Titlul subiectului: pai nu am gasit  

i-am imtrebat daca se poate face, le-am spus pentru ce il folosesc si mi-au dat voie.

acum totul tine de bunul simt :)

nu mi-au placut niciodata magariile, si nici nu le practic. le consider pierdere de vreme si de neuroni
Sus  
kristache



Data înscrierii: 19/Feb/2004
Mesaje: 45
Locație: Iasi

Trimis: Lun Oct 11, 2004 4:45 pm    Titlul subiectului:  

perfect de acord cu tine insa ma indoiesc ca multe hosturi vor fi la fel de "receptive".

multumim pentru postare. daca gasesti insa si o alta varianta te rog posteaz'o si pe aceasta.

numai bine
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Avansat
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community