Lire un fichier PDF - PHP - Programmation
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!
Marsh Posté le 18-03-2005 à 15:35:57
tu peux lire ça déja :
http://www.zend.com/zend/spotlight [...] c=0&view=1
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 ??
Marsh Posté le 18-03-2005 à 15:54:08
http://sourceforge.net/projects/pdftohtml/ apparement j'ai trouvé mon bonheur
Marsh Posté le 18-03-2005 à 15:55:24
Dans PhpDig, ils utilisent pdftotext : http://public.planetmirror.com/pub/xpdf/
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. |
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!
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.
Marsh Posté le 03-09-2008 à 12:33:32
Bonjour,
+1 pour l'explication, ça m'intéresse aussi
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;
?>
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..