Pdf-bestanden lezen met php

Ik heb een groot pdf-bestand dat een plattegrond van een gebouw is. Het heeft lagen voor al het kantoormeubilair, inclusief tekstvakken met de locatie van de stoel.

Mijn doel is om dit bestand met PHP te lezen, het document te doorzoeken op tekstlagen en hun inhoud en coördinaten in het bestand te krijgen. Op deze manier kan ik stoellocaties in kaart brengen -> x/y-coördinaten.

Is er een manier om dit via PHP te doen? (Of zelfs Ruby of Python als dat nodig is)


Antwoord 1, autoriteit 100%

Bekijk FPDF (met FPDI):

http://www.fpdf.org/

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

Hiermee kunt u een pdf openen en er inhoud aan toevoegen in PHP. Ik vermoed dat je hun functionaliteit ook kunt gebruiken om door de bestaande inhoud te zoeken naar de waarden die je nodig hebt.

Een andere mogelijke bibliotheek is TCPDF: https://tcpdf.org/

Update om een ​​modernere bibliotheek toe te voegen: PDF Parser


Antwoord 2, autoriteit 73%

Er is een php-bibliotheek (pdfparser) die precies doet wat je wilt.

projectwebsite

http://www.pdfparser.org/

github

https://github.com/smalot/pdfparser

Demopagina/api

http://www.pdfparser.org/demo

Nadat je pdfparser in je project hebt opgenomen, kun je alle tekst van mypdf.pdfals volgt ophalen:

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

Op dezelfde manier kunt u zowel de metadata uit de pdf halen als de pdf-objecten (bijvoorbeeld afbeeldingen).


Antwoord 3, autoriteit 12%

Niet echt php, maar je zou een programma van php kunnen uitvoeren om de pdf naar een tijdelijk html-bestand te converteren en het resulterende bestand vervolgens te parseren met php. Ik heb iets soortgelijks gedaan voor een project van mij en dit is het programma dat ik heb gebruikt:

PdfToHtml

De resulterende HTML omhult tekstelementen in < div > tags met absolute positiecoördinaten. Het lijkt erop dat dit precies is wat je probeert te doen.


Antwoord 4, autoriteit 7%

je eerste verzoek is “Ik heb een groot pdf-bestand dat een plattegrond van een gebouw is.”

Ik ben bang om je te vertellen dat dit misschien moeilijker is dan je denkt.

Oorzaak het laatst bekende lib dat iedereen gebruikt om pdf te ontleden is smalot, en het is bekend dat deze een probleem tegenkomt met betrekking tot grote bestanden.

Ook hier, zoek naar een echte php-lib om pdf te ontleden, zonder enige geheugenpiek die een php-configuratie nodig heeft om de geheugenlimiet uit te schakelen, zoals veel “ontwikkelaars” doen (wat volgens mij echt niet aan te raden is).

zie dit bericht voor meer details over smalot-prestaties: https://github.com/smalot /pdfparser/issues/163


Antwoord 5

Misschien wil je deze applicatie ook proberen http://pdfbox.apache.org/. Een werkend voorbeeld is te vinden op https://www.jinises.com

Other episodes