Parsing di un file PDF con Java

Effettuare il parsing di un file PDF in Java è un'operazione utile quando si desidera estrarre testo o metadati da documenti PDF. Una delle librerie più utilizzate per questo scopo è Apache PDFBox. In questo articolo vedremo come configurare il progetto e leggere il contenuto di un PDF in pochi semplici passaggi.

Aggiunta della dipendenza Maven

Per utilizzare Apache PDFBox, è necessario aggiungere la relativa dipendenza al file pom.xml del progetto Maven:


<dependency>
  <groupId>org.apache.pdfbox</groupId>
  <artifactId>pdfbox</artifactId>
  <version>2.0.30</version>
</dependency>

Codice Java per leggere un file PDF

Una volta aggiunta la dipendenza, possiamo scrivere il codice per leggere e stampare il contenuto testuale di un PDF:


import java.io.File;
import java.io.IOException;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;

public class PdfParser {

    public static void main(String[] args) {
        File file = new File("documento.pdf");
        try (PDDocument document = PDDocument.load(file)) {
            if (!document.isEncrypted()) {
                PDFTextStripper stripper = new PDFTextStripper();
                String text = stripper.getText(document);
                System.out.println(text);
            } else {
                System.out.println("Il file è criptato e non può essere letto.");
            }
        } catch (IOException e) {
            System.err.println("Errore durante la lettura del PDF: " + e.getMessage());
        }
    }
}

Considerazioni

Apache PDFBox è una soluzione robusta per il parsing di file PDF. Supporta anche la lettura dei metadati, l'estrazione delle immagini e la modifica dei documenti. Tuttavia, per documenti complessi o generati male, l'output potrebbe non essere sempre perfettamente strutturato.

Conclusione

Con poche righe di codice e una libreria ben mantenuta come Apache PDFBox, è possibile leggere facilmente il contenuto testuale dei file PDF in Java. Questo è utile per applicazioni di indicizzazione, ricerca o automazione dei documenti.

Torna su