Extract Images from Documents and Filter Resources with GroupDocs.Parser Java

Das Extrahieren von Bildern aus Dokumenten ist ein häufiges Anliegen beim Aufbau von Dokumenten‑Verarbeitungspipelines. In diesem Tutorial erfahren Sie wie Sie Bilder aus Dokumenten extrahieren mit GroupDocs.Parser für Java und lernen wie Sie Ressourcen filtern, sodass nur die benötigten Dateien geladen werden. Wir gehen Schritt für Schritt durch die Einrichtung der Bibliothek, das Erstellen eines benutzerdefinierten ExternalResourceHandler und die Anwendung von Filterlogik, um Ihre Anwendung schnell und sicher zu halten.

Quick Answers

  • What does GroupDocs.Parser do? Es analysiert eine breite Palette von Dokumentformaten und gibt Ihnen Zugriff auf Text, Bilder und andere eingebettete Ressourcen.
  • Can I skip unwanted images? Ja – durch Implementierung eines benutzerdefinierten ExternalResourceHandler können Sie entscheiden, welche Ressourcen geladen werden.
  • Which Maven version is required? Verwenden Sie GroupDocs.Parser Java 25.5 oder neuer.
  • Do I need a license? Eine kostenlose Testversion reicht für die Evaluierung; für den Produktionseinsatz ist eine permanente Lizenz erforderlich.
  • Is this approach thread‑safe? Parsing‑Objekte werden nicht über Threads hinweg geteilt; erstellen Sie pro Thread eine neue Parser‑Instanz.

What is “extract images from documents”?

Wenn ein Dokument eingebettete Bilder, Diagramme oder andere Medien enthält, bedeutet „Bilder aus Dokumenten extrahieren“, dass Sie diese Binärdateien programmgesteuert abrufen, um sie außerhalb der Originaldatei zu speichern, anzuzeigen oder weiterzuverarbeiten.

Why filter resources while extracting images?

Das Filtern von Ressourcen hilft Ihnen:

  • Den Speicherverbrauch zu reduzieren, indem große oder irrelevante Dateien ignoriert werden.
  • Die Sicherheit zu verbessern, indem das Laden potenziell unsicheren Inhalts verhindert wird.
  • Die Verarbeitung zu beschleunigen, insbesondere bei riesigen Dokumenten mit vielen eingebetteten Objekten.

Prerequisites

  • Java Development Kit (JDK) – Version 8 oder höher.
  • Maven – für das Abhängigkeitsmanagement.
  • Grundlegende Kenntnisse in Java‑I/O und Ausnahmebehandlung.

Setting Up GroupDocs.Parser for Java

Fügen Sie das GroupDocs‑Repository und die Parser‑Abhängigkeit zu Ihrer pom.xml hinzu:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

Alternativ können Sie die neueste Version von GroupDocs.Parser for Java releases herunterladen.

License Acquisition

  • Free Trial – erkunden Sie die Kernfunktionen kostenlos.
  • Temporary License – schalten Sie die volle Funktionalität während der Evaluierung frei.
  • Purchased License – erforderlich für den kommerziellen Einsatz.

How to filter resources while extracting images

Step 1: Create a custom handler

Definieren Sie eine Klasse, die ExternalResourceHandler erweitert. In der Methode onLoading entscheiden Sie, welche Ressourcen behalten werden.

import com.groupdocs.parser.options.ExternalResourceHandler;
import com.groupdocs.parser.data.ExternalResourceLoadingArgs;

class Handler extends ExternalResourceHandler {
    @Override
    public void onLoading(ExternalResourceLoadingArgs args) {
        if (!args.getUri().endsWith("installation.png")) {
            args.setSkipped(true);
        }
        super.onLoading(args);
    }
}

Step 2: Configure ParserSettings with the handler

Übergeben Sie Ihre Handler‑Instanz an ParserSettings und verwenden Sie sie beim Öffnen eines Dokuments.

import com.groupdocs.parser.Parser;
import com.groupdocs.parser.data.PageImageArea;
import com.groupdocs.parser.exceptions.IOException;
import com.groupdocs.parser.options.ParserSettings;

public class LoadExternalResources {
    public static void run() throws IOException {
        ParserSettings settings = new ParserSettings(new Handler());
        
        try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY", settings)) {
            Iterable<PageImageArea> images = parser.getImages();
            
            for (PageImageArea image : images) {
                System.out.println(image.getFileType());
            }
        }
    }
}

Step 3: Fine‑tune the filtering logic

Falls Sie komplexere Regeln benötigen – etwa das Filtern nach Bildgröße, Format oder URI‑Muster – erweitern Sie die Methode onLoading entsprechend:

@Override
public void onLoading(ExternalResourceLoadingArgs args) {
    if (!args.getUri().endsWith("installation.png")) {
        args.setSkipped(true);
    }
}

Practical Applications

  1. Document Management Systems – Extrahieren Sie nur die notwendigen Bilder aus gescannten Verträgen, um Thumbnails zu erzeugen.
  2. Data Extraction Services – Überspringen Sie dekorative Grafiken und konzentrieren Sie sich auf Diagramme, die wertvolle Daten enthalten.
  3. Web Scraping Tools – Filtern Sie Tracking‑Pixel heraus, während Sie sinnvolle Medien aus HTML‑basierten Dokumenten abrufen.

Performance Considerations

  • Filter early: Wenden Sie Ihren benutzerdefinierten Handler an, bevor Sie über Ressourcen iterieren, um das Laden unerwünschter Daten in den Speicher zu vermeiden.
  • Dispose promptly: Nutzen Sie try‑with‑resources (try (Parser parser = …)) zum Freigeben nativer Ressourcen.
  • Async processing: Für große Stapel verarbeiten Sie Dokumente in parallelen Streams, wobei jede Parser‑Instanz auf einen einzelnen Thread beschränkt bleibt.

Common Issues & Solutions

IssueWhy it HappensFix
No images returnedHandler skips all resources inadvertentlyVerify the if condition and ensure args.setSkipped(true) is only called for unwanted URIs.
IOException on large filesInsufficient heap memoryIncrease JVM heap (-Xmx2g) or process pages in smaller chunks.
License not recognizedUsing trial DLL with production codeApply the correct license file path via License.setLicense("path/to/license").

Frequently Asked Questions

Q: What is the primary purpose of using a custom `ExternalResourceHandler
A: It lets you control which external resources are loaded, enhancing security and performance by filtering out unnecessary files.

Q: Can I use GroupDocs.Parser for Java without a license?
A: Yes, a free trial is available, but some advanced features may be limited until you obtain a temporary or purchased license.

Q: How do I handle exceptions during parsing with GroupDocs.Parser?
A: Wrap parsing calls in try‑catch blocks for IOException and other specific exceptions to gracefully handle errors.

Q: What are common pitfalls when filtering resources?
A: Incorrect URI checks can skip needed files; use logging or breakpoints to verify your conditions.

Q: Is it possible to parse non‑HTML documents using GroupDocs.Parser for Java?
A: Absolutely—GroupDocs.Parser supports PDFs, Word, Excel, PowerPoint, and many other formats.

Next Steps

Vertiefen Sie sich in die Bibliothek, indem Sie die API Reference erkunden oder mit zusätzlichen Einstellungen wie ParserSettings.setDetectTables(true) für die Tabellenerkennung experimentieren.


Last Updated: 2025-12-29
Tested With: GroupDocs.Parser 25.5 for Java
Author: GroupDocs

Resources