Il parsing di un file PDF in PHP è un’operazione utile quando si ha la necessità di estrarre dati testuali da documenti PDF per analisi, indicizzazione o archiviazione. In questo articolo vedremo come farlo utilizzando una delle librerie più popolari: smalot/pdfparser.
1. Installazione della libreria
La libreria smalot/pdfparser
può essere installata facilmente tramite Composer, il gestore di pacchetti per PHP.
composer require smalot/pdfparser
2. Esempio di utilizzo base
Dopo l’installazione, è possibile utilizzare la libreria per leggere e analizzare un file PDF come mostrato nel seguente esempio.
<?php
require 'vendor/autoload.php';
use Smalot\PdfParser\Parser;
$parser = new Parser();
$pdf = $parser->parseFile('documento.pdf');
$text = $pdf->getText();
echo nl2br(htmlentities($text));
3. Estrazione di metadati
Oltre al contenuto testuale, è anche possibile accedere ai metadati del PDF, come titolo, autore, soggetto, ecc.
<?php
$details = $pdf->getDetails();
foreach ($details as $key => $value) {
echo $key . ': ' . (is_array($value) ? implode(', ', $value) : $value) . '<br>';
}
4. Parsing pagina per pagina
Se si desidera elaborare il contenuto di ogni pagina separatamente, è possibile farlo accedendo all’array di pagine:
<?php
$pages = $pdf->getPages();
foreach ($pages as $index => $page) {
echo 'Pagina ' . ($index + 1) . ':<br>';
echo nl2br(htmlentities($page->getText()));
echo '<hr>';
}
5. Considerazioni
Il parsing di PDF può non essere sempre perfetto, poiché il formato PDF è complesso e può contenere testo incorporato in modi non convenzionali. La qualità dell’estrazione dipende dalla struttura del file PDF e da come il testo è stato inserito originariamente.
Conclusione
Utilizzando smalot/pdfparser
, è possibile estrarre in modo relativamente semplice testo e metadati dai file PDF in PHP. Per esigenze più complesse, come l’estrazione di immagini o la modifica dei file PDF, potrebbero essere necessarie librerie più avanzate come TCPDF
o FPDI
.