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

Het extraheren van afbeeldingen uit documenten is een veelvoorkomende vereiste bij het bouwen van document‑verwerkingspijplijnen. In deze tutorial ontdek je hoe je afbeeldingen uit documenten kunt extraheren met GroupDocs.Parser voor Java, en leer je hoe je resources kunt filteren zodat alleen de bestanden die je nodig hebt worden geladen. We lopen door het instellen van de bibliotheek, het maken van een aangepaste ExternalResourceHandler en het toepassen van filterlogica om je applicatie snel en veilig te houden.

Quick Answers

  • What does GroupDocs.Parser do? Het parseert een breed scala aan documentformaten en geeft je toegang tot tekst, afbeeldingen en andere ingebedde resources.
  • Can I skip unwanted images? Ja—door een aangepaste ExternalResourceHandler te implementeren kun je bepalen welke resources worden geladen.
  • Which Maven version is required? Gebruik GroupDocs.Parser Java 25.5 of nieuwer.
  • Do I need a license? Een gratis proefversie werkt voor evaluatie; een permanente licentie is vereist voor productie.
  • Is this approach thread‑safe? Parsing‑objecten worden niet gedeeld tussen threads; maak per thread een nieuwe Parser‑instantie aan.

What is “extract images from documents”?

Wanneer een document ingebedde afbeeldingen, grafieken of andere media bevat, betekent “extract images from documents” dat je die binaire bestanden programmatisch ophaalt zodat je ze kunt opslaan, weergeven of verder verwerken buiten het originele bestand.

Why filter resources while extracting images?

Resources filteren helpt je:

  • Het geheugenverbruik te verminderen door grote of irrelevante bestanden te negeren.
  • De beveiliging te verbeteren door het laden van potentieel onveilige inhoud te voorkomen.
  • De verwerking te versnellen, vooral bij enorme documenten die veel ingebedde objecten bevatten.

Prerequisites

  • Java Development Kit (JDK) – versie 8 of hoger.
  • Maven – voor dependency‑beheer.
  • Basiskennis van Java I/O en exception handling.

Setting Up GroupDocs.Parser for Java

Voeg de GroupDocs‑repository en de parser‑dependency toe aan je pom.xml:

<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>

Of download de nieuwste versie via GroupDocs.Parser for Java releases.

License Acquisition

  • Free Trial – verken de kernfuncties zonder kosten.
  • Temporary License – ontgrendel de volledige functionaliteit tijdens evaluatie.
  • Purchased License – vereist voor commerciële inzet.

How to filter resources while extracting images

Step 1: Create a custom handler

Definieer een klasse die ExternalResourceHandler uitbreidt. Binnen de onLoading‑methode bepaal je welke resources behouden blijven.

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

Geef je Handler‑instantie door aan ParserSettings en gebruik deze bij het openen van een document.

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

Als je meer geavanceerde regels nodig hebt—bijvoorbeeld filteren op afbeeldingsgrootte, formaat of URI‑patroon—breid je de onLoading‑methode dienovereenkomstig uit:

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

Practical Applications

  1. Document Management Systems – Haal alleen de benodigde afbeeldingen uit gescande contracten om thumbnails te genereren.
  2. Data Extraction Services – Sla decoratieve grafieken over en focus op diagrammen die waardevolle data bevatten.
  3. Web Scraping Tools – Filter tracking‑pixels uit terwijl je betekenisvolle media uit HTML‑gebaseerde documenten haalt.

Performance Considerations

  • Filter early: Pas je aangepaste handler toe voordat je over resources iterereert om te voorkomen dat ongewenste data in het geheugen wordt geladen.
  • Dispose promptly: Gebruik try‑with‑resources (try (Parser parser = …)) om native resources vrij te geven.
  • Async processing: Voor grote batches, verwerk documenten in parallelle streams terwijl elke Parser‑instantie beperkt blijft tot één thread.

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: Het stelt je in staat te bepalen welke externe resources worden geladen, waardoor beveiliging en prestaties worden verbeterd door onnodige bestanden te filteren.

Q: Can I use GroupDocs.Parser for Java without a license?
A: Ja, er is een gratis proefversie beschikbaar, maar sommige geavanceerde functies kunnen beperkt zijn totdat je een tijdelijke of aangekochte licentie verkrijgt.

Q: How do I handle exceptions during parsing with GroupDocs.Parser?
A: Omring parse‑aanroepen met try‑catch‑blokken voor IOException en andere specifieke uitzonderingen om fouten netjes af te handelen.

Q: What are common pitfalls when filtering resources?
A: Onjuiste URI‑controles kunnen benodigde bestanden overslaan; gebruik logging of breakpoints om je voorwaarden te verifiëren.

Q: Is it possible to parse non‑HTML documents using GroupDocs.Parser for Java?
A: Absoluut—GroupDocs.Parser ondersteunt PDF’s, Word, Excel, PowerPoint en vele andere formaten.

Next Steps

Duik dieper in de bibliotheek door de API Reference te verkennen of experimenteer met extra instellingen zoals ParserSettings.setDetectTables(true) voor tabel‑extractie.


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

Resources