Parsing di un file PDF con Go

Il parsing di file PDF in Go è un'attività utile quando si ha la necessità di estrarre testo o metadati da documenti PDF per analisi o trasformazioni. In questo articolo vedremo come leggere un file PDF utilizzando la libreria open source rsc.io/pdf.

Installazione della libreria

La libreria rsc.io/pdf è una delle soluzioni più semplici e immediate per effettuare il parsing di PDF in Go. Per installarla, è sufficiente eseguire:

go get rsc.io/pdf

Lettura del testo da un PDF

Una volta installata la libreria, possiamo scrivere un semplice programma per aprire un file PDF ed estrarre il testo da ogni pagina. Ecco un esempio completo:

package main

import (
    "fmt"
    "log"
    "rsc.io/pdf"
)

func main() {
    reader, err := pdf.Open("documento.pdf")
    if err != nil {
        log.Fatalf("Errore nell'apertura del file: %v", err)
    }

    for pageIndex := 1; pageIndex <= reader.NumPage(); pageIndex++ {
        page := reader.Page(pageIndex)
        if page.V.IsNull() {
            continue
        }

        content := page.Content()
        for _, text := range content.Text {
            fmt.Print(text.S)
        }
    }
}

Considerazioni

La libreria rsc.io/pdf è sufficiente per operazioni base di parsing del testo, ma ha delle limitazioni. Ad esempio, non supporta perfettamente tutti i formati PDF complessi o cifrati. In tali casi, si può considerare l'uso di alternative come unidoc/unipdf, che offre anche funzionalità di modifica e generazione di PDF, ma è a pagamento per usi commerciali.

Conclusione

Con pochi passi è possibile leggere e analizzare il contenuto di un file PDF in Go utilizzando rsc.io/pdf. Questa soluzione è ideale per task semplici come l’estrazione del testo da documenti PDF.

Torna su