stef_dobermann Personne n'est parfait ... | Bonjour, Après quelque temps de recherche et de refléxion j'ai finalement opté pour la solution XPDF qui fonctionne à merveille, J'ai trouvé ça en PHP qui ne fonctionne pas très bien : Code :
- $test = pdf2string("fichier-a-traiter.pdf" );
- echo $test;
- function pdf2string($sourcefile)
- {
- $fp = fopen($sourcefile, 'rb');
- $content = fread($fp, filesize($sourcefile));
- fclose($fp);
- # Locate all text hidden within the stream and endstream tags
- $searchstart = 'stream';
- $searchend = 'endstream';
- $pdfdocument = "";
- $pos = 0;
- $pos2 = 0;
- $startpos = 0;
- # Iterate through each stream block
- while( $pos !== false && $pos2 !== false )
- {
- # Grab beginning and end tag locations if they have not yet been parsed
- $pos = strpos($content, $searchstart, $startpos);
- $pos2 = strpos($content, $searchend, $startpos + 1);
- if( $pos !== false && $pos2 !== false )
- {
- # Extract compressed text from between stream tags and uncompress
- $textsection = substr($content, $pos + strlen($searchstart) + 2, $pos2 - $pos - strlen($searchstart) - 1);
- $data = @gzuncompress($textsection);
- # Clean up text via a special function
- $data = ExtractText($data);
- # Increase our PDF pointer past the section we just read
- $startpos = $pos2 + strlen($searchend) - 1;
- if( $data === false ) { return -1; }
- $pdfdocument = $pdfdocument . $data;
- }
- }
- return $pdfdocument;
- }
- function ExtractText($postScriptData)
- {
- while( (($textStart = strpos($postScriptData, '(', $textStart)) && ($textEnd = strpos($postScriptData, ')', $textStart + 1)) && substr($postScriptData, $textEnd - 1) != '\\') )
- {
- $plainText .= substr($postScriptData, $textStart + 1, $textEnd - $textStart - 1);
- if( substr($postScriptData, $textEnd + 1, 1) == ']' ) // This adds quite some additional spaces between the words
- {
- $plainText .= ' ';
- }
- $textStart = $textStart < $textEnd ? $textEnd : $textStart + 1;
- }
- // Translate special characters and put back brackets.
- $trans = array(
- '...' => '…',
- '\205' => '…',
- '\221' => chr(145),
- '\222' => chr(146),
- '\223' => chr(147),
- '\224' => chr(148),
- '\226' => '-',
- '\267' => '•',
- '\222' => "'",
- '\351' => 'é',
- '\350' => 'è',
- '\347' => 'ç',
- '\253' => '"',
- '\273' => '"',
- '\(' => '(',
- '\[' => '[',
- '##ENDBRACKET##' => ')',
- '##ENDSBRACKET##' => ']',
- chr(133) => '-',
- chr(141) => chr(147),
- chr(142) => chr(148),
- chr(143) => chr(145),
- chr(144) => chr(146),
- );
- $plainText = strtr($plainText, $trans);
- return stripslashes($plainText);
- }
- ?>
| Vola pour le retour sur information.
---------------
Tout à commencé par un rêve...
|