Hvordan analysere PDF i PHP

Hvordan analysere PDF i PHP
Har du noen gang prøvd å åpne en PDF -fil for å søke etter en bestemt linje eller ord? Det fungerer ikke. Alt du finner er binære data som absolutt ikke gir noen mening.

Parsing PDF -filer er veldig kjedelig og komplisert for enhver programvareutvikler, ikke fordi det er komplekst, men på grunn av arten av PDF -filer. PDF -filer inneholder objekter som er identifisert med et unikt tall. PDF -objekter kan samle inn informasjon som bilder, tekst og mer. Disse objektene er kryptert og komprimert, noe som gjør det nesten umulig å behandle PDF -er som tekstdokumenter.

Denne guiden vil lære å analysere PDF -dokumenter ved hjelp av PHP -programmeringsspråket.

Oppsett

Det første trinnet er å sette opp et utviklingsmiljø. Vi starter med å installere PHP og de nødvendige bibliotekene.

For å installere PHP, åpne terminalen og skriv inn kommandoen:

$ sudo apt-get install php7.5 -y

Når PHP er installert, bruk den til å installere komponist som vist i kommandoene:

php -r "copy ('https: // getcomposer.org/installasjonsprogram ',' komponist-setup.php '); "
php -r "if (hash_file ('sha384', 'komponist -setup.php ') ===
'906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b
8a03482574915d1a8 ') ekko' installasjonsprogram bekreftet '; annet ekko 'installasjonsprogram korrupt';
unlink ('komponist-setup.php '); ekko php_eol; "
PHP Composer-Setup.PHP
php -r "unlink ('komponist -setup.php '); "

Når vi har fått komponisten installert og satt opp, kan vi fortsette å bruke PDFParser -biblioteket.

Åpne terminalen og skriv inn kommandoen:

$ sudo php komponist.Phar krever smalot/pdfparser

Generere PDF -fil

Neste trinn er å velge en PDF -fil for bruk. Det er forskjellige måter og ressurser du kan bruke til å opprette en PDF -fil. For eksempel, hvis du er på Windows, kan du eksportere en .DOC/DOCX -dokument til PDF.

For dette eksemplet vil vi imidlertid bruke gratis filer som er lett tilgjengelige på internett. Åpne nettleseren din og naviger til ressursen som er gitt nedenfor:

https: // filesamples.com/formater/pdf

Velg en av de tilgjengelige PDF -filene og lagre den på systemet ditt.

MERK: Forsikre deg om å se etter ondsinnede filer før du bruker slike dokumenter. Verktøy som Virustotal er gode ressurser.

https: // www.virustotal.com/gui/

Følgende er en skanningsrapport av Sample1.PDF -fil.

https: // www.virustotal.COM/GUI/FIL/6B22904A7DE5B77BF40598C37E94E01771485E1B900651B58BF50AF7009F8056

Pakk ut PDF -metadata

For å trekke ut metadata fra PDF ved hjelp av PDF -parser -biblioteket, kan vi implementere prøvekode som vist nedenfor:

// inkluderer komponist Autoloader
inkluderer 'leverandør/autoload.php ';
// Parse PDF
$ parser = new \ smalot \ pdfParser \ parser ();
$ pdf = $ parser-> Parsefile ("Sample1.pdf ");
// Få metadata
$ metadata = $ pdf-getDetails ();
// sløyfe hver eiendom
foreach ($ metadata som meta => $ verdi)
if (is_array ($ verdi))
$ verdi.implodere (",", $ verdi);

Echo $ meta . "=>" . $ verdi . "\ n";

?>

Ovennevnte kode skal hente metadatainformasjon om filen. Slik informasjon inkluderer:

CreationDate: 2016-12-22T11: 43: 55-05: 00
Skaper: Adobe Indesign CC 2015 (Macintosh)
Moddate: 2016-12-29T15: 47: 20-05: 00
Produsent: Adobe PDF Library 15.0
Fanget: falsk
Side 1

Pakk ut tekst

For å trekke ut tekst fra hver side i den innsendte PDF, kan vi implementere koden som vist nedenfor:

inkluderer "leverandør/autoload.php ";
$ parser = new \ smalot \ pdfParser \ parser ();
$ pdf = $ parser-> Parsefile ("Sample1.pdf ");
$ tekst = $ pdf-> getText ();
ekko $ tekst;
?>

Når vi har kjørt koden over, bør vi se teksten trukket ut fra prøven1.PDF -fil. Eksempel Ouput er som vist nedenfor:

Lukking

Denne guiden viser deg hvordan du kan analysere PDF -filer ved hjelp av PHP og PDFParser -biblioteket. Sjekk dokumentasjonen for å lære mer.