Lire un fichier PDF

Lire un fichier PDF - PHP - Programmation

Marsh Posté le 18-03-2005 à 14:40:04    

Dans un intranet ou les utilisateurs vont uploader des docs, je dois accéder par mes scripts PHP au contenu de leurs docs (pour une indexation).
Pour les documents RTF et DOC j'ai trouvé comment faire, mais je bloque pour les PDF.
Est ce que ca serais possible ? car j'ai trouvé pas mal de doc sur comment  écrire un PDF avec PHP, mais je n'ai rien trovué pour le lire...
 
need help..

Reply

Marsh Posté le 18-03-2005 à 14:40:04   

Reply

Marsh Posté le 18-03-2005 à 15:01:27    

pdf c'est du binaire. donc ?

Reply

Marsh Posté le 18-03-2005 à 15:03:41    

jagstang a écrit :

pdf c'est du binaire. donc ?


 
Donc en se tapant les specs du format ça doit être faisable, mais bon courage! [:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-03-2005 à 15:10:38    

peut être que qqun d'autre l'a fait avant :o

Reply

Marsh Posté le 18-03-2005 à 15:13:04    

solution da facilité :o

Reply

Marsh Posté le 18-03-2005 à 15:35:57    

Reply

Marsh Posté le 18-03-2005 à 15:42:31    

je veux lire le pdf, pas l'écrire, mais merci qd même...
 
techniqueemnt ca doit être possible car google indexe bien les pdf par exemple.
il y a certainement qqchose de libre qui fait ca ??

Reply

Marsh Posté le 18-03-2005 à 15:54:08    

http://sourceforge.net/projects/pdftohtml/ apparement j'ai trouvé mon bonheur :love:

Reply

Marsh Posté le 18-03-2005 à 15:55:24    

Dans PhpDig, ils utilisent pdftotext : http://public.planetmirror.com/pub/xpdf/

Reply

Marsh Posté le 18-03-2005 à 16:14:07    

merci, c'est encore mieux !

Reply

Marsh Posté le 18-03-2005 à 16:14:07   

Reply

Marsh Posté le 18-03-2005 à 16:18:34    

http://www.phpdig.net/navigation.php?action=doc
 

Citation :

PhpDig indexes HTML and text files by itself. PhpDig could index PDF, MS-Word, MS-Excel, and MS-PowerPoint files if you install external binaries on the server for this purpose. PhpDig is configured to use catdoc, xls2csv, pstotext or pdftotext, and ppt2text programs.
 
- You can find catdoc and xls2csv at this link: http://www.45.free.net/~vitus/ice/catdoc/
 
- You can find pstotext at this link: http://research.compaq.com/SRC/vir [...] otext.html
 
- You can find pdftotext at this link: http://public.planetmirror.com/pub/xpdf/
 
- You can query for ppt2text at this link: http://www.google.com/search?q=ppt2text

Reply

Marsh Posté le 24-05-2005 à 09:53:40    


Bonjours.
J'aurais voulu savoir si tu as trouvé ton bonheur, si oui peux tu me donner une bref explmication.
Merci!

Reply

Marsh Posté le 29-08-2008 à 20:19:24    


 
bonsoir ,
 
on me demande faire la meme chose que vos pour les fichiers doc.,  auriez vous la gentillesse de m'envoyer votre
 
applicatif car je n'ai pas les competence suffisante en php.
 
En vous remerciant d'avance de votre votre réponse.

Reply

Marsh Posté le 29-08-2008 à 20:21:13    

hum :)

Reply

Marsh Posté le 03-09-2008 à 12:33:32    

Bonjour,
 
+1 pour l'explication, ça m'intéresse aussi :)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 17-10-2010 à 22:30:55    

Voici ce que j'ai trouvé après plusieurs jours de recherche. En fait, je crois qu'il n'y a pas de moyen direct de lire un fichier pdf sur internet en php. J'ai commencé par trouvé PDFLib TET (Text Extraction Toolkit), qui extrait un fichier pdf en texte. Malheureusement, il ne peut pas lire des fichiers directement du web. Donc, on charge d'abord le contenu du fichier pdf web dans un fichier virtuel, ensuite on peut lire ce fichier virtuel pdf, et finalement on l'extrait pour obtenir un fichier texte.
 
<?php
 
//1-download fichier à http://www.pdflib.com/download/tet/ (version windows xp 32 bits, TET-4.0p2-MSWin32.msi)
//2-installer sur un ordi, pas obliger d'être le serveur
//3-aller C:\Program Files (x86)\PDFlib\TET 4.0p2 32-bit\bind\php, il y a les versions de php
//4-prendre libtet_php.dll dans le bon répertoire représentant la version de php installé
//5-mettre ce fichier dans le répertoire de php\ext et modifier php.ini pour mettre extension=libtet_php.dll
// il doit y avoir une section TET lorsqu'on fait php phpinfo();  
 
 
// ***   $Id: extractor.php,v 1.11 2010/07/21 19:58:35 rjs Exp $ Simple PDF text extractor based on PDFlib TET   ***
$globaloptlist = "searchpath={../data ../../data ../../../resource/cmap}"; //global option list
$docoptlist = "";       // document-specific option list
$pageoptlist = "granularity=page";     // page-specific option list
$separator = "\n";    // separator to emit after each chunk of text. This depends on the application's needs; for granularity=word a space character may be useful
 
$pageno = 0;
 
try {
 
    $tet = new TET();
 
//mettre ici les infos nécessaire
$filepdf = file_get_contents('http://www.irs.gov/pub/irs-pdf/fw4.pdf'); //adresse web du fichier PDF
$pvf_filename = "/pvf/virt.pdf";     //nom du fichier virtuel, peux laisser tel quel
$tet->create_pvf($pvf_filename, $filepdf,"" );    //ici c'est la création dufichier virtuel, donc pas touche
$infilename = $pvf_filename;
$outfilename = "fichier.txt";      //nom du fichier de sortie
 
 
    if (!$outfp = fopen("$outfilename", "wb" )) {
 die("Couldn't open output file '" . $outfilename . "'\n" );
    }
 
 
    $tet->set_option($globaloptlist);
 
    $doc = $tet->open_document($infilename, $docoptlist);
 
    if ($doc == -1) {
 die("Error ". $tet->get_errnum() . " in " . $tet->get_apiname()
     . "(): " . $tet->get_errmsg() . "\n" );
    }
 
    /* get number of pages in the document */
    $n_pages = $tet->pcos_get_number($doc, "length:pages" );
 
    /* loop over pages in the document */
    for ($pageno = 1; $pageno <= $n_pages; ++$pageno) {
 
 $page = $tet->open_page($doc, $pageno, $pageoptlist);
 
 if ($page == -1) {
     print("Error ". $tet->get_errnum() ." in ". $tet->get_apiname()
  . "(): " . $tet->get_errmsg() . "\n" );
     next;                        /* try next page */
 }
 
 /* Retrieve all text fragments; This is actually not required
  * for granularity=page, but must be used for other granularities.
  */
 while (($text = $tet->get_text($page)) != "" ) {
 
     fwrite($outfp, $text);  /* print the retrieved text */
 
     /* print a separator between chunks of text */
     fwrite($outfp, $separator);
 }
 
 
 if ($tet->get_errnum() != 0) {
     print("Error ". $tet->get_errnum() . " in " .  
      $tet->get_apiname() . "(): on page $pageno"  
      . $tet->get_errmsg() . "\n" );
 }
 
 $tet->close_page($page);
    }
 
    fclose($outfp);
 
    $tet->close_document($doc);
}
catch (TETException $e) {
    if ($pageno == 0) {
 die("TET exception occurred in extractor sample:\n" .
     "[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
     $e->get_errmsg() . "\n" );
    } else {
 die("TET exception occurred in extractor sample:\n" .
     "[" . $e->get_errnum() . "] " . $e->get_apiname() .
     "on page $pageno: " .  $e->get_errmsg() . "\n" );
    }
}
catch (Exception $e) {
    die($e);
}
 
$tet = 0;
 
?>


Message édité par waldo955 le 17-10-2010 à 22:38:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed