Estrai testo e immagini da documenti PDF utilizzando Java

PDF è il formato di documento digitale più utilizzato. Possiamo analizzare documenti PDF ed estrarre testo e immagini da essi in modo programmatico. Potrebbe essere utile in diversi casi, come l’analisi del testo, il recupero di informazioni, la conversione di documenti, ecc. In questo articolo impareremo come estrarre testo e immagini da documenti PDF utilizzando Java.

In questo articolo verranno trattati i seguenti argomenti:

API Java per estrarre testo e immagini da documenti PDF

Per estrarre testo e immagini da documenti PDF, utilizzeremo l’API GroupDocs.Parser for Java. Consente l’estrazione di testo, metadati e immagini grezzi, formattati e strutturati da file dei formati supportati. Si prega di scaricare il JAR dell’API o aggiungere la seguente configurazione pom.xml in un’applicazione Java basata su Maven.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>22.3</version> 
</dependency>

Estrai testo da documenti PDF utilizzando Java

Possiamo analizzare qualsiasi documento PDF ed estrarre il testo seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica il file PDF utilizzando la classe Parser.
  • Quindi, chiama il metodo Parser.getText() per estrarre il testo dal documento caricato.
  • Quindi, ottieni i risultati nell’oggetto classe TextReader.
  • Infine, chiama il metodo TextReader.readToEnd() per leggere tutti i caratteri dalla posizione corrente alla fine del lettore di testo e restituirli come una stringa.

L’esempio di codice seguente mostra come estrarre il testo da un file PDF utilizzando Java.

// Questo esempio di codice mostra come analizzare un PDF ed estrarre il testo.
// Crea un'istanza della classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Estrarre un testo nel lettore
try (TextReader reader = parser.getText()) {
    // Stampa un testo dal documento
    // Se l'estrazione del testo non è supportata, un lettore è null
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Estrai testo da documenti PDF utilizzando Java

Estrai testo da documenti PDF utilizzando Java

Estrai il testo da una pagina specifica di un documento PDF utilizzando Java

Puoi analizzare un documento PDF ed estrarre il testo da una pagina specifica seguendo i semplici passaggi indicati di seguito:

L’esempio di codice seguente mostra come estrarre il testo da una pagina specifica utilizzando Java.

// Questo esempio di codice mostra come analizzare un PDF ed estrarre il testo da una pagina specifica.
// Crea un'istanza della classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\sample.pdf");

// Ottieni le informazioni sul documento
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Controlla se il documento ha pagine
if (documentInfo == null || documentInfo.getRawPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

// Estrarre un testo nel lettore
try (TextReader reader = parser.getText(1)) {
    // Stampa un testo dal documento
    // Se l'estrazione del testo non è supportata, un lettore è null
    System.out.println(reader.readToEnd());
}

L’API consente inoltre di verificare se il documento supporta la funzione di estrazione del testo. A tale scopo, possiamo utilizzare la proprietà Parser.getFeatures().isText(). Si prega di leggere di più sulle funzionalità supportate.

Ottieni immagini da documenti PDF utilizzando Java

Possiamo analizzare qualsiasi documento PDF ed estrarre immagini seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica il file PDF utilizzando la classe Parser.
  • Quindi, chiama il metodo Parser.getImages() e ottieni la raccolta di oggetti PageImageArea dal documento caricato.
  • Quindi, controlla se la raccolta non è nulla.
  • Successivamente, scorrere tutte le immagini trovate.
  • Infine, mostra i dettagli delle immagini.

L’esempio di codice seguente mostra come ottenere i dettagli delle immagini da un file PDF utilizzando Java.

// Questo esempio di codice mostra come analizzare un PDF e ottenere immagini.
// Crea un'istanza della classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Estrai immagini
Iterable<PageImageArea> images = parser.getImages();

// Verifica se l'estrazione di immagini è supportata
if (images == null) {
    System.out.println("Images extraction isn't supported");
    return;
}

// Iterare sulle immagini
for (PageImageArea image : images) {
    // Stampa un indice di pagina, un rettangolo e un tipo di immagine:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}
Ottieni immagini da documenti PDF utilizzando Java

Ottieni immagini da documenti PDF utilizzando Java

Estrai immagini da una pagina specifica di un documento PDF utilizzando Java

Possiamo estrarre immagini da una pagina specifica seguendo i semplici passaggi indicati di seguito:

  • Innanzitutto, carica il file PDF utilizzando la classe Parser.
  • Quindi, ottieni le informazioni sul documento usando il metodo Parser.getDocumentInfo().
  • Quindi, controlla se IDocumentInfo.getPageCount() non è zero.
  • Successivamente, chiama il metodo Parser.getImages() con indice di pagina per estrarre le immagini da quella pagina specifica.
  • Infine, scorrere tutte le immagini trovate e mostrare i dettagli.

L’esempio di codice seguente mostra come estrarre immagini da una pagina specifica utilizzando Java.

// Questo esempio di codice mostra come analizzare un PDF e ottenere immagini da una pagina specifica.
// Crea un'istanza della classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Ottieni le informazioni sul documento
IDocumentInfo documentInfo = parser.getDocumentInfo();

// Controlla se il documento ha pagine
if (documentInfo.getPageCount() == 0) {
    System.out.println("Document hasn't pages.");
    return;
}

int pageIndex = 1;

// Iterare sulle immagini
// Ignoriamo il controllo null poiché abbiamo verificato in precedenza il supporto della funzione di estrazione delle immagini
for (PageImageArea image : parser.getImages(pageIndex)) {
  // Stampa un indice di pagina, un rettangolo e un tipo di immagine:
    System.out.println("Page: " + image.getPage().getIndex());
    System.out.println("Image Rectangle: " + image.getRectangle());
    System.out.println("Image Filetype: " + image.getFileType());
    System.out.println("----------------------------------------");
}

Estrai e salva le immagini su file utilizzando Java

Possiamo anche salvare le immagini estratte seguendo i passaggi indicati di seguito:

  • Innanzitutto, carica il file PDF utilizzando la classe Parser.
  • Quindi, chiama il metodo Parser.getImages() e ottieni la raccolta di oggetti PageImageArea dal documento caricato.
  • Quindi, crea un’istanza della classe ImageOptions e imposta il formato dell’immagine.
  • Successivamente, scorrere tutte le immagini trovate.
  • Infine, salva usando il metodo save(). Prende il percorso del file di output e ImageOptions come argomenti.

L’esempio di codice seguente mostra come estrarre e salvare le immagini in file usando Java.

// Questo esempio di codice mostra come estrarre e immagini nella directory.
// Crea un'istanza della classe Parser
Parser parser = new Parser("D:\\Files\\Parser\\images.pdf");

// Estrai le immagini dal documento
Iterable<PageImageArea> images = parser.getImages();

// Verifica se l'estrazione di immagini è supportata
if (images == null) {
    System.out.println("Page images extraction isn't supported");
    return;
}

// Crea le opzioni per salvare le immagini in formato PNG
ImageOptions options = new ImageOptions(ImageFormat.Png);

int imageNumber = 0;

// Iterare sulle immagini
for (PageImageArea image : images)
{
    // Salva l'immagine nel file PNG
    image.save(String.format("D:\\Files\\Parser\\Images\\%d.png", imageNumber), options);
    imageNumber++;
}
Estrai e salva le immagini su file utilizzando Java

Estrai e salva le immagini su file utilizzando Java

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo abbiamo imparato a:

  • estrarre tutto il testo da un intero documento PDF o da pagine specifiche del documento utilizzando Java;
  • estrarre le immagini da un file PDF in modo programmatico;
  • salvare le immagini estratte su un disco locale.

Inoltre, puoi saperne di più sull’API GroupDocs.Parser per Java utilizzando la documentazione. In caso di ambiguità, non esitare a contattarci sul forum.

Guarda anche