Bonjour, je connais plusieurs PDF Générateurs pour php (fpdf, dompdf, etc.) Ce que je veux savoir, c’est un analyseur.
Pour des raisons indépendantes de ma volonté, certaines informations dont j'ai besoin ne se trouvent que dans un tableau au sein d'un fichier pdf Je dois extraire ce tableau et le convertir en tableau.
Aucune suggestion?
J'en ai déjà écrit un (pour des besoins similaires), et je peux dire ceci: Amusez-vous. C'est une tâche assez complexe. La spécification PDF est large et difficile à manier. Il existe plusieurs méthodes pour stocker du texte à l'intérieur de celui-ci. Et le kicker est que chaque générateur PDF est différent dans son fonctionnement. Ainsi, bien que quelque chose comme TFPDF ou DOMPDF crée des PDF vraiment faciles à lire (du point de vue de la machine), Acrobat crée des documents vraiment infernaux.
La raison en est comment il écrit le texte. La plupart des moteurs de rendu basés sur le DOM - que j'ai utilisés - écrivent la ligne entière sous la forme d'une chaîne et la positionnent une fois (ce qui est très facile à lire). Acrobat tente d’être plus efficace (et c’est le cas) en n’écrivant qu’un ou quelques caractères à la fois et en les positionnant de manière indépendante. Bien que cela simplifie VRAIMENT le rendu, cela rend la lecture BEAUCOUP plus difficile.
Le bon côté ici est que le format PDF en lui-même est vraiment simple. Vous avez des "objets" qui suivent une syntaxe régulière. Ensuite, vous pouvez les lier pour générer le contenu. La spécification fait un bon travail pour décrire le format de fichier. Mais la lecture dans le monde réel va demander un peu de puissance cérébrale ...
Quelques conseils utiles que j'ai dû apprendre à la dure si vous voulez l'écrire vous-même:
65
ne sera probablement pas A
... Vous devez trouver un objet de carte et en déduire ce qu'il fait en fonction des caractères qu'il contient. Et c'est efficace car si un caractère n'apparaît pas dans le document pour cette police, il ne l'inclut pas (ce qui rend la vie difficile si vous essayez de modifier un PDF par programme) ...strlen
. Utilisez mb_strlen($string, '8bit')
car il compensera pour différents jeux de caractères (et autorisera les caractères potentiellement non valides dans d'autres jeux de caractères).Sinon, bonne chance ...
J'utilise PDFBox pour cela ( http://pdfbox.Apache.org/ ). Ce logiciel est javabasé et indépendant de la plate-forme. Cela fonctionne rapidement et fiable. Vous pouvez l'utiliser via exec ou Shell execute ou via un pont PHP/Java ( http://php-Java-bridge.sourceforge.net/ )
Avez-vous déjà examiné xPDF ? Il existe un programme appelé pdftotext qui effectuera la conversion. Vous pouvez l'appeler à partir de PHP, puis lire la version texte du PDF. Vous devrez avoir la possibilité d’exécuter exec () ou system () à partir de php. Il est donc possible que cela ne fonctionne pas sur toutes les solutions hébergées.
En outre, il existe quelques exemples sur le site PHP qui convertiront PDF en texte, bien que ce soit un peu approximatif. Vous voudrez peut-être aussi essayer certains de ces exemples. Sur cette page PHP , recherchez luc sur phpt dot org.
Jetez un coup d’œil à GhostScript ou ITextSharp, il existe différentes versions multiplateformes des deux.
Zend_Pdf fait partie du Zend Framework . Leur manuel dit:
Le composant
Zend_Pdf
est un PDF (Portable Document Format) moteur de manipulation. Il peut charger, créer, modifier et sauvegarder des documents . Ainsi, il peut aider toute application PHP créer dynamiquement des documents PDF par modifier des documents existants ou générer de nouvelles à partir de zéro.
Il se peut que ce ne soit pas vraiment un tableau à l'intérieur du PDF car le PDF perd ce type d'informations ...
Ceci est un analyseur syntaxique PHP PDF, qui existe en deux versions: