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
ExternalResourceHandlermůž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
Parserpro 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
- Systémy pro správu dokumentů – načtěte jen potřebné obrázky ze skenovaných smluv pro vytvoření náhledů.
- Služby pro extrakci dat – přeskočte dekorativní grafiku a zaměřte se na grafy, které obsahují cenná data.
- 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
Parserzůstane v jednom vlákně.
Časté problémy a řešení
| Problém | Proč k tomu dochází | Řešení |
|---|---|---|
| Žádné obrázky nejsou vráceny | Handler omylem přeskočil všechny zdroje | Ověř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ěť heap | Zvyšte heap JVM (-Xmx2g) nebo zpracovávejte stránky v menších blocích. |
| Licence není rozpoznána | Použití trial DLL v produkčním kódu | Nastavte 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
- Dokumentace: GroupDocs.Parser Documentation
- API Reference: API Details
- Stahování: Latest Versions