Java analýza dokumentů: Extrahování obrázků z dokumentů pomocí GroupDocs.Parser
V tomto komplexním průvodci se naučíte techniky java document parsing pro extrahování obrázků z různých typů souborů pomocí GroupDocs.Parser pro Java. Provedeme vás nastavením knihovny, vytvořením vlastního ExternalResourceHandler a aplikací inteligentního filtrování, takže načítáte pouze zdroje, které skutečně potřebujete—což vám pomůže snížit využití paměti a urychlit zpracování.
Rychlé odpovědi
- Co dělá GroupDocs.Parser? Parsuje více než 50 formátů souborů a zpřístupňuje text, obrázky a další vložené zdroje pro programové použití.
- Mohu přeskočit nechtěné obrázky? Ano—implementujte vlastní
ExternalResourceHandlerpro filtrování zdrojů za běhu. - Jaká verze Maven je vyž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? Vytvořte samostatnou instanci
Parserpro každé vlákno; objekty nejsou sdílené.
Co znamená „extrahovat obrázky z dokumentů“?
Extrahování obrázků z dokumentů znamená programově získávat vložené soubory obrázků, abyste je mohli uložit, zobrazit nebo dále zpracovat mimo původní soubor. Tato operace je nezbytná, když potřebujete miniatury, vizualizaci dat nebo znovu použít mediální aktiva bez zachování celého zdrojového dokumentu.
Proč filtrovat zdroje při extrahování obrázků?
Filtrování zdrojů při extrahování obrázků vám umožní snížit využití paměti až o 70 % při zpracování velkých souborů, protože nechtěné binární soubory nikdy ne vstoupí do haldy JVM. Také to zvyšuje bezpečnost tím, že zabraňuje načítání potenciálně nebezpečného obsahu, a urychluje pipeline—velké smlouvy se stovkami dekorativních grafik mohou být parsovány během zlomku původního času.
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 vašeho 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ě stáhněte nejnovější verzi z GroupDocs.Parser for Java releases.
Získání licence
- Free Trial – prozkoumejte základní funkce bez nákladů.
- Temporary License – odemkněte plnou funkčnost během hodnocení.
- Purchased License – vyžadována pro komerční nasazení.
Jak filtrovat zdroje při extrahování obrázků
Pro filtrování zdrojů implementujte ExternalResourceHandler, který rozhoduje, které vložené soubory jsou načteny. Zaregistrujte tento handler v ParserSettings před otevřením dokumentu a poté zavolejte parser. Handler získá metadata každého zdroje, což vám umožní jej přijmout nebo odmítnout na základě kritérií, jako je typ, velikost nebo název, a zajistí, že budou zpracovány pouze potřebné obrázky.
Krok 1: Vytvořte vlastní handler
ExternalResourceHandler je rozhraní, které vám umožní rozhodnout, zda má být konkrétní externí zdroj—například obrázek—načten. Implementujte metodu onLoading a vraťte true pro zdroje, které chcete zachovat, false pro jejich přeskočení. Metoda onLoading získá metadata zdroje a měla by vrátit true pro načtení nebo false pro přeskočení zdroje.
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
ParserSettings je konfigurační třída, která obsahuje možnosti jako vlastní handlery, nastavení detekce a optimalizace výkonu pro parser. Před otevřením dokumentu předáte svou instanci handleru do ParserSettings.
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: Doladit logiku filtrování
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. Například můžete přeskočit jakýkoli obrázek větší než 2 MB nebo ignorovat všechny soubory PNG.
@Override
public void onLoading(ExternalResourceLoadingArgs args) {
if (!args.getUri().endsWith("installation.png")) {
args.setSkipped(true);
}
}
Praktické aplikace
- Document Management Systems – Načtěte pouze potřebné obrázky ze skenovaných smluv pro generování miniatur.
- Data Extraction Services – Přeskočte dekorativní grafiku a zaměřte se na grafy, které obsahují cenná data.
- Web Scraping Tools – Filtrovat sledovací pixely při získávání smysluplných médií z HTML‑založených dokumentů.
Úvahy o výkonu
Parser je hlavní třída, která otevírá dokument a poskytuje přístup k jeho obsahu.
- Filtrujte brzy: Použijte svůj vlastní handler před iterací přes zdroje, abyste se vyhnuli načítání nechtěných dat do paměti.
- Okamžitě uvolněte: Použijte 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 a udržujte každou instanci
Parseromezenou na jedno vlákno.
Časté problémy a řešení
| Problém | Proč k tomu dochází | Řešení |
|---|---|---|
| Žádné obrázky nebyly vráceny | Handler neúmyslně přeskočí všechny zdroje | Ověřte podmínku if a ujistěte se, že args.setSkipped(true) je voláno pouze pro nechtěné URI. |
IOException u velkých souborů | Nedostatečná paměť haldy | Zvyšte haldu JVM (-Xmx2g) nebo zpracovávejte stránky v menších částech. |
| Licence nebyla rozpoznána | Použití trial DLL v produkčním kódu | Použijte 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 kontrolovat, které externí zdroje jsou načteny, čímž zvyšuje bezpečnost a výkon filtrováním nepotřebných souborů.
Q: Mohu použít GroupDocs.Parser pro Java bez licence?
A: Ano, je k dispozici bezplatná zkušební verze, ale pokročilé funkce a rozsáhlá nasazení vyžadují platnou licenci.
Q: Jak mohu zpracovávat výjimky během parsování s GroupDocs.Parser?
A: Zabalte volání parsování do bloků try‑catch 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 kompletní API Reference pro další nastavení, jako je ParserSettings.setDetectTables(true) pro extrahování tabulek, nebo experimentujte s ParserSettings.setExtractEmbeddedFonts(true) pro extrahování fontů.
Poslední aktualizace: 2026-06-22
Testováno s: GroupDocs.Parser 25.5 for Java
Autor: GroupDocs
Zdroje
- Dokumentace: GroupDocs.Parser Documentation
- API Reference: API Details
- Stahování: Latest Versions