web-dev-qa-db-fra.com

Lire des fichiers pdf avec php

J'ai un gros fichier PDF qui est une carte pour un bâtiment. Il comporte des couches pour tous les meubles de bureau, y compris les zones de texte indiquant l’emplacement du siège.

Mon objectif est de lire ce fichier avec PHP, de rechercher dans le document des calques de texte, d’obtenir leur contenu et leurs coordonnées dans le fichier. De cette façon, je peux tracer les emplacements des sièges -> coordonnées x/y.

Est-il possible de le faire via PHP? (Ou même Ruby ou Python si c'est ce qui est nécessaire)

47
Ryan Doherty

Découvrez FPDF (avec FPDI):

http://www.fpdf.org/

http://www.setasign.de/products/pdf-php-solutions/fpdi/

Cela vous permettra d’ouvrir un pdf et d’y ajouter du contenu en PHP. J'imagine que vous pouvez également utiliser leurs fonctionnalités pour rechercher dans le contenu existant les valeurs dont vous avez besoin.

Une autre bibliothèque possible est TCPDF: http://www.tecnick.com/public/code/cp_dpage.php?aiocp_dp=tcpdf

Mise à jour pour ajouter une bibliothèque plus moderne: PDF Parser

31
Jay

Il existe une bibliothèque php (pdfparser) qui fait exactement ce que vous voulez. 

site web du projet

http://www.pdfparser.org/

github

https://github.com/smalot/pdfparser

Page de démonstration/api

http://www.pdfparser.org/demo

Après avoir inclus pdfparser dans votre projet, vous pouvez obtenir tout le texte de mypdf.pdf comme suit:

<?php
$parser = new \installpath\PdfParser\Parser();
$pdf    = $parser->parseFile('mypdf.pdf');  
$text = $pdf->getText();
echo $text;//all text from mypdf.pdf

?>

Simular vous pouvez obtenir les métadonnées du fichier pdf ainsi que les objets pdf (par exemple, des images).

21
kasper Taeymans

Hmm ... pas exactement php, mais vous pouvez appeler un programme depuis php pour convertir le pdf en fichier HTML temporaire, puis analyser le fichier résultant avec php. J'ai fait quelque chose de similaire pour un de mes projets et voici le programme que j'ai utilisé:

PdfToHtml

Ce qui est génial avec le programme, c'est qu'il va cracher les éléments de texte dans les balises <div> avec les coordonnées de position absolue. Il semble que c'est exactement ce que vous essayez de faire. 

0
Rado

votre demande initiale est "J'ai un gros fichier PDF qui est une carte pour un bâtiment". 

J'ai peur de vous dire que cela pourrait être plus difficile que vous ne le pensez.

Cause la dernière bibliothèque connue utilisée par tout le monde pour analyser les fichiers pdf est petite, et on sait que celui-ci rencontre des problèmes concernant les fichiers volumineux.

Ici aussi, on cherche une vraie bibliothèque php pour analyser le pdf, sans aucun pic de mémoire nécessitant une configuration php pour désactiver la limite de mémoire comme le font beaucoup de "développeurs" (ce qui, à mon avis, n'est vraiment pas conseillé).

voir ce post pour plus de détails sur les performances de smalot: https://github.com/smalot/pdfparser/issues/163

0
jmo

Vous voudrez peut-être aussi essayer cette application http://pdfbox.Apache.org/ . Un exemple de travail peut être trouvé à https://www.jinises.com

0
Mike