[PHP] transformer un fichier PDF en TXT ou HTML(idéalement)

transformer un fichier PDF en TXT ou HTML(idéalement) [PHP] - PHP - Programmation

Marsh Posté le 20-03-2006 à 17:09:02    

Bonjour,
 
je voudrais à partir de fichier PDF les transformer (de préférence à la voler) pour les faire afficher sur mon site en texte uniquement (dans un premier temps, juste pour avoir un appercu du contenu du fichier)
 
D'autre part, je cherche aussi à réccupérer les vignettes inclus des des fichiers PDF ou sinon pour les créer automatiquement, je sais que ce n'est pas facile :jap:
 
Je cherche à mettre dans mes fichiers d'administration un editeur html (simplier au max) pour insérer du code HTML dans mes pages, par exemple EDITOR-X, je crois qu'il s'appel comme ca, mais après téléchargement et et installation, cela ne fonstionne pas du tous, il me met des erreur javascript dans tout les sens :??:
 
d'avance, merci à vous  :jap:


Message édité par stef_dobermann le 20-03-2006 à 17:26:18

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

Marsh Posté le 20-03-2006 à 17:09:02   

Reply

Marsh Posté le 21-03-2006 à 13:14:12    

je sais qu'il y a des personnes qui savent le faire ;)
 
juste une piste alors :jap:


Message édité par stef_dobermann le 21-03-2006 à 13:14:34

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

Marsh Posté le 21-03-2006 à 13:32:13    

bin dans la doc tu as dans les commentaires une fonction pdf2string [:spamafote]

Reply

Marsh Posté le 21-03-2006 à 14:04:42    

dans la doc de PHP :??:
 
je file voir ca alors merci beaucoup


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

Marsh Posté le 21-03-2006 à 19:01:25    

je sais que tu as une lib fpdf qui permet de convertir de l'HTML en pdf, je sais pas si ca fait l'inverse.  
 
http://www.fpdf.org/
 
Pour un editeur HTML j'utilise tinymce
 
++


---------------
N'oubliez pas de mettre [RESOLU] dans le titre quand c'est fini - Pour poster vos sources : http://paste.clicksources.com/
Reply

Marsh Posté le 21-03-2006 à 19:50:53    

il y a des utilitaires de convertion fournis avec xpdf:
pdffonts: extraction fonts
pdfimages: extraction images
pdfinfo: extraction infos
pdftoppm: conversion en image
pdftops: conversion en fichier imprimante
pdftotext: conversion en fichiers text/html
 
Ils ne produisent pas toujours de très bon résultats.
 
http://www.foolabs.com/xpdf/

Reply

Marsh Posté le 22-03-2006 à 17:14:29    

merci pour l'info,  sur [lien=http://fr.php.net/pdf]http://fr.php.net/pdf[/lien] j'ai trouve tous ce dont j'avais besoin.
 
Merci à vous tous  :jap:
 


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

Marsh Posté le 15-04-2006 à 10:20:47    

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 :
  1. $test = pdf2string("fichier-a-traiter.pdf" );
  2. echo $test;
  3. function pdf2string($sourcefile)
  4. {
  5.    $fp = fopen($sourcefile, 'rb');
  6.    $content = fread($fp, filesize($sourcefile));
  7.    fclose($fp);
  8.    # Locate all text hidden within the stream and endstream tags
  9.    $searchstart = 'stream';
  10.    $searchend = 'endstream';
  11.    $pdfdocument = "";
  12.    $pos = 0;
  13.    $pos2 = 0;
  14.    $startpos = 0;
  15.    # Iterate through each stream block
  16.    while( $pos !== false && $pos2 !== false )
  17.    {
  18.      # Grab beginning and end tag locations if they have not yet been parsed
  19.      $pos = strpos($content, $searchstart, $startpos);
  20.      $pos2 = strpos($content, $searchend, $startpos + 1);
  21.      if( $pos !== false && $pos2 !== false )
  22.      {
  23.          # Extract compressed text from between stream tags and uncompress
  24.          $textsection = substr($content, $pos + strlen($searchstart) + 2, $pos2 - $pos - strlen($searchstart) - 1);
  25.          $data = @gzuncompress($textsection);
  26.          # Clean up text via a special function
  27.          $data = ExtractText($data);
  28.          # Increase our PDF pointer past the section we just read
  29.          $startpos = $pos2 + strlen($searchend) - 1;
  30.          if( $data === false ) { return -1; }
  31.          $pdfdocument = $pdfdocument . $data;
  32.      }
  33.    }
  34.    return $pdfdocument;
  35. }
  36. function ExtractText($postScriptData)
  37. {
  38.    while( (($textStart = strpos($postScriptData, '(', $textStart)) && ($textEnd = strpos($postScriptData, ')', $textStart + 1)) && substr($postScriptData, $textEnd - 1) != '\\') )
  39.    {
  40.      $plainText .= substr($postScriptData, $textStart + 1, $textEnd - $textStart - 1);
  41.      if( substr($postScriptData, $textEnd + 1, 1) == ']' ) // This adds quite some additional spaces between the words
  42.      {
  43.          $plainText .= ' ';
  44.      }
  45.      $textStart = $textStart < $textEnd ? $textEnd : $textStart + 1;
  46.    }
  47.       // Translate special characters and put back brackets.
  48.    $trans = array(
  49.        '...'                => '&hellip;',
  50.        '\205'                => '&hellip;',
  51.        '\221'                => chr(145),
  52.        '\222'                => chr(146),
  53.        '\223'                => chr(147),
  54.        '\224'                => chr(148),
  55.        '\226'                => '-',
  56.        '\267'                => '&bull;',
  57.        '\222'                => "'",
  58.        '\351'                => '&eacute;',
  59.        '\350'                => '&egrave;',
  60.        '\347'                => '&ccedil;',
  61.        '\253'                => '&quot;',
  62.        '\273'                => '&quot;',     
  63.        '\('                => '(',
  64.        '\['                => '[',
  65.        '##ENDBRACKET##'    => ')',
  66.        '##ENDSBRACKET##'    => ']',
  67.        chr(133)            => '-',
  68.        chr(141)            => chr(147),
  69.        chr(142)            => chr(148),
  70.        chr(143)            => chr(145),
  71.        chr(144)            => chr(146),
  72.    );
  73.    $plainText = strtr($plainText, $trans);
  74.    return stripslashes($plainText);
  75. }
  76. ?>
 


Vola pour le retour sur information.


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

Marsh Posté le 11-08-2007 à 08:43:53    

En effet ce script présente quelques défauts, notamment dans le cas de présence de parenthèses dans le texte.
 
Pour améliorer le script, on peut ajouter ce code entre la ligne 41 et 42 :

Code :
  1. $postScriptData=str_replace("\(","parentheseG",$postScriptData);
  2. $postScriptData=str_replace("\)","parentheseD",$postScriptData);

...et d'ajouter en ligne 81 :

Code :
  1. $plainText=str_replace("parentheseG","(",$plainText);
  2. $plainText=str_replace("parentheseD"," )",$plainText);


 
...et je trouve que ce script fonctionne plutôt pas mal... On peut ajouter également les lettres accentuées de la langue de Molière dans le tableau $trans, et ça roule...

Reply

Marsh Posté le 07-08-2008 à 13:52:34    

Bonjour,
 
Je déterre ce post car je suis également à la recherche d'une fonction de ce genre.
 
Je viens de tester celle-ci, mais le résultat est très moyen.
En effet, des tas de caractères spéciaux s'affichent parfois entre les paragraphes.
Je pense que c les images du pdf.
 
Comment avez-vous procéder pour avoir une sortie en texte seulement ?
De plus est-il possible d'utiliser xpdf en php ?
 
Merci


Message édité par mazou le 07-08-2008 à 13:54:01
Reply

Sujets relatifs:

Leave a Replay

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