Extrahování obrázků z dokumentů a filtrování zdrojů pomocí GroupDocs.Parser Java

Extrahování obrázků z dokumentů je běžná požadavek při tvorbě pipeline pro zpracování dokumentů. V tomto tutoriálu se dozvíte jak extrahovat obrázky z dokumentů pomocí GroupDocs.Parser pro Java a také jak filtrovat zdroje, aby se načetly pouze soubory, které potřebujete. Provedeme vás nastavením knihovny, vytvořením vlastního ExternalResourceHandler a aplikací filtrační logiky, aby byla vaše aplikace rychlá a bezpečná.

Rychlé odpovědi

  • Co GroupDocs.Parser dělá? Parsuje širokou škálu formátů dokumentů a poskytuje přístup k textu, obrázkům a dalším vloženým zdrojům.
  • Mohu přeskočit nechtěné obrázky? Ano — implementací vlastního ExternalResourceHandler můžete rozhodnout, které zdroje se načtou.
  • Jaká verze Maven je požadována? Použijte GroupDocs.Parser Java 25.5 nebo novější.
  • Potřebuji licenci? Bezplatná zkušební verze funguje pro hodnocení; pro produkci je vyžadována trvalá licence.
  • Je tento přístup thread‑safe? Parsovací objekty nejsou sdíleny mezi vlákny; vytvořte novou instanci Parser pro každé vlákno.

Co znamená „extrahovat obrázky z dokumentů“?

Když dokument obsahuje vložené obrázky, grafy nebo jiná média, „extrahovat obrázky z dokumentů“ znamená programově získat tyto binární soubory, abyste je mohli uložit, zobrazit nebo dále zpracovat mimo původní soubor.

Proč filtrovat zdroje při extrahování obrázků?

Filtrování zdrojů vám pomůže:

  • Snížit spotřebu paměti ignorováním velkých nebo irelevantních souborů.
  • Zlepšit bezpečnost tím, že zabráníte načítání potenciálně nebezpečného obsahu.
  • Zrychlit zpracování, zejména u obrovských dokumentů, které obsahují mnoho vložených objektů.

Předpoklady

  • Java Development Kit (JDK) – verze 8 nebo vyšší.
  • Maven – pro správu závislostí.
  • Základní znalost Java I/O a zpracování výjimek.

Nastavení GroupDocs.Parser pro Java

Přidejte repozitář GroupDocs a závislost parseru do svého 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>

Alternativně si stáhněte nejnovější verzi z GroupDocs.Parser for Java releases.

Získání licence

  • Bezplatná zkušební verze – prozkoumejte základní funkce bez nákladů.
  • Dočasná licence – odemkne plnou funkčnost během hodnocení.
  • Zakoupená licence – vyžadována pro komerční nasazení.

Jak filtrovat zdroje při extrahování obrázků

Krok 1: Vytvořte vlastní handler

Definujte třídu, která rozšiřuje ExternalResourceHandler. V metodě onLoading rozhodnete, které zdroje ponechat.

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);
    }
}

Krok 2: Nakonfigurujte ParserSettings s handlerem

Předáte svou instanci Handler do ParserSettings a použijete ji při otevírání dokumentu.

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());
            }
        }
    }
}

Krok 3: Doladění filtrační logiky

Pokud potřebujete složitější pravidla — například filtrování podle velikosti obrázku, formátu nebo vzoru URI — rozšiřte metodu onLoading odpovídajícím způsobem:

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

Praktické aplikace

  1. Systémy pro správu dokumentů – načtěte jen potřebné obrázky ze skenovaných smluv pro vytvoření náhledů.
  2. Služby pro extrakci dat – přeskočte dekorativní grafiku a zaměřte se na grafy, které obsahují cenná data.
  3. Nástroje pro web scraping – odfiltrujte sledovací pixely při získávání smysluplných médií z HTML‑založených dokumentů.

Úvahy o výkonu

  • Filtrujte co nejdříve: Použijte vlastní handler před iterací přes zdroje, abyste se vyhnuli načítání nežádoucích dat do paměti.
  • Okamžitě uvolňujte: Používejte try‑with‑resources (try (Parser parser = …)) k uvolnění nativních zdrojů.
  • Asynchronní zpracování: Pro velké dávky zpracovávejte dokumenty v paralelních streamech, přičemž každá instance Parser zůstane v jednom vlákně.

Časté problémy a řešení

ProblémProč k tomu docházíŘešení
Žádné obrázky nejsou vrácenyHandler omylem přeskočil všechny zdrojeOvěřte podmínku v if a ujistěte se, že args.setSkipped(true) je voláno jen pro nechtěné URI.
IOException u velkých souborůNedostatečná paměť heapZvyšte heap JVM (-Xmx2g) nebo zpracovávejte stránky v menších blocích.
Licence není rozpoznánaPoužití trial DLL v produkčním kóduNastavte správnou cestu k licenčnímu souboru pomocí License.setLicense("path/to/license").

Často kladené otázky

Q: Jaký je hlavní účel použití vlastního ExternalResourceHandler?
A: Umožňuje vám řídit, které externí zdroje se načtou, čímž zvyšuje bezpečnost a výkon filtrováním nepotřebných souborů.

Q: Můžu používat GroupDocs.Parser pro Java bez licence?
A: Ano, je k dispozici bezplatná zkušební verze, ale některé pokročilé funkce mohou být omezené, dokud nezískáte dočasnou nebo zakoupenou licenci.

Q: Jak zacházet s výjimkami během parsování pomocí GroupDocs.Parser?
A: Obalte volání parsování do try‑catch bloků pro IOException a další specifické výjimky, abyste chyby ošetřili elegantně.

Q: Jaké jsou běžné úskalí při filtrování zdrojů?
A: Nesprávné kontroly URI mohou přeskočit potřebné soubory; použijte logování nebo breakpointy k ověření podmínek.

Q: Je možné parsovat ne‑HTML dokumenty pomocí GroupDocs.Parser pro Java?
A: Rozhodně — GroupDocs.Parser podporuje PDF, Word, Excel, PowerPoint a mnoho dalších formátů.

Další kroky

Prozkoumejte knihovnu podrobněji v API Reference nebo experimentujte s dalšími nastaveními, jako je ParserSettings.setDetectTables(true) pro extrakci tabulek.


Poslední aktualizace: 2025-12-29
Testováno s: GroupDocs.Parser 25.5 pro Java
Autor: GroupDocs

Zdroje