Java-dokumentparsing: Extrahera bilder från dokument med GroupDocs.Parser

I den här omfattande guiden kommer du att lära dig java document parsing-tekniker för att extrahera bilder från en mängd olika filtyper med hjälp av GroupDocs.Parser för Java. Vi går igenom bibliotekskonfiguration, skapar en anpassad ExternalResourceHandler och tillämpar smart filtrering så att du bara laddar de resurser du verkligen behöver—vilket hjälper dig att reducera minnesanvändning och påskynda bearbetningen.

Snabba svar

  • Vad gör GroupDocs.Parser? Det analyserar över 50 filformat och exponerar text, bilder och andra inbäddade resurser för programmatisk användning.
  • Kan jag hoppa över oönskade bilder? Ja—implementera en anpassad ExternalResourceHandler för att filtrera resurser i realtid.
  • Vilken Maven-version krävs? Använd GroupDocs.Parser Java 25.5 eller nyare.
  • Behöver jag en licens? En gratis provversion fungerar för utvärdering; en permanent licens krävs för produktion.
  • Är detta tillvägagångssätt trådsäkert? Skapa en separat Parser-instans per tråd; objekt delas inte.

Vad betyder “extrahera bilder från dokument”?

Att extrahera bilder från dokument innebär att programmässigt hämta inbäddade bildfiler så att du kan lagra, visa eller vidarebearbeta dem utanför den ursprungliga filen. Denna operation är avgörande när du behöver miniatyrbilder, datavisualisering eller återanvända medie‑tillgångar utan att behålla hela källdokumentet.

Varför filtrera resurser vid extrahering av bilder?

Att filtrera resurser medan du extraherar bilder låter dig reducera minnesanvändningen med upp till 70 % när du bearbetar stora filer, eftersom oönskade binärfiler aldrig hamnar i JVM‑heapen. Det förbättrar också säkerheten genom att förhindra potentiellt osäkert innehåll från att laddas, och påskyndar pipeline‑processen—stora kontrakt med hundratals dekorativa grafik kan analyseras på en bråkdel av den ursprungliga tiden.

Förutsättningar

  • Java Development Kit (JDK) – version 8 eller högre.
  • Maven – för beroendehantering.
  • Grundläggande kunskap om Java I/O och undantagshantering.

Konfigurera GroupDocs.Parser för Java

Lägg till GroupDocs‑arkivet och parser‑beroendet i din 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>

Alternativt, ladda ner den senaste versionen från GroupDocs.Parser for Java releases.

Licensinnehav

  • Free Trial – utforska kärnfunktioner utan kostnad.
  • Temporary License – lås upp full funktionalitet under utvärdering.
  • Purchased License – krävs för kommersiell distribution.

Hur man filtrerar resurser vid extrahering av bilder

För att filtrera resurser, implementera en ExternalResourceHandler som bestämmer vilka inbäddade filer som laddas. Registrera denna hanterare i ParserSettings innan du öppnar dokumentet, och anropa sedan parsern. Hanteraren får varje resurs metadata, vilket gör att du kan acceptera eller avvisa den baserat på kriterier som typ, storlek eller namn, så att endast nödvändiga bilder bearbetas.

Steg 1: Skapa en anpassad hanterare

ExternalResourceHandler är ett gränssnitt som låter dig bestämma om en specifik extern resurs—t.ex. en bild—ska laddas. Implementera onLoading‑metoden och returnera true för resurser du vill behålla, false för att hoppa över dem. onLoading‑metoden får resursens metadata och bör returnera true för att ladda eller false för att hoppa över resursen.

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

Steg 2: Konfigurera ParserSettings med hanteraren

ParserSettings är en konfigurationsklass som innehåller alternativ som anpassade hanterare, detekteringsinställningar och prestandajusteringar för parsern. Skicka din hanterarinstans till ParserSettings innan du öppnar ett dokument.

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

Steg 3: Finjustera filtreringslogiken

Om du behöver mer sofistikerade regler—t.ex. filtrering efter bildstorlek, format eller URI‑mönster—utöka onLoading‑metoden därefter. Till exempel kan du hoppa över alla bilder som är större än 2 MB eller ignorera alla PNG‑filer.

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

Praktiska tillämpningar

  1. Document Management Systems – Hämta endast de nödvändiga bilderna från skannade kontrakt för att generera miniatyrbilder.
  2. Data Extraction Services – Hoppa över dekorativ grafik och fokusera på diagram som innehåller värdefull data.
  3. Web Scraping Tools – Filtrera bort spårningspixlar medan du hämtar meningsfull media från HTML‑baserade dokument.

Prestandaöverväganden

Parser är kärnklassen som öppnar ett dokument och ger åtkomst till dess innehåll.

  • Filtrera tidigt: Använd din anpassade hanterare innan du itererar över resurser för att undvika att ladda oönskad data i minnet.
  • Frigör snabbt: Använd try‑with‑resources (try (Parser parser = …)) för att frigöra inhemska resurser.
  • Asynkron bearbetning: För stora batcher, bearbeta dokument i parallella strömmar samtidigt som varje Parser‑instans hålls till en enda tråd.

Vanliga problem & lösningar

ProblemVarför det händerLösning
Inga bilder returneradeHanteraren hoppar oavsiktligt över alla resurserVerifiera if‑villkoret och se till att args.setSkipped(true) endast anropas för oönskade URI:er.
IOException på stora filerOtillräckligt heap‑minneÖka JVM‑heapen (-Xmx2g) eller bearbeta sidor i mindre delar.
Licens känns inte igenAnvänder prov‑DLL med produktionskodAnge rätt licensfilssökväg via License.setLicense("path/to/license").

Vanliga frågor

Q: Vad är huvudsyftet med att använda en anpassad ExternalResourceHandler?
A: Den låter dig kontrollera vilka externa resurser som laddas, vilket förbättrar säkerhet och prestanda genom att filtrera bort onödiga filer.

Q: Kan jag använda GroupDocs.Parser för Java utan licens?
A: Ja, en gratis provversion finns tillgänglig, men avancerade funktioner och storskaliga distributioner kräver en giltig licens.

Q: Hur hanterar jag undantag under parsning med GroupDocs.Parser?
A: Omge parsningsanrop med try‑catch‑block för IOException och andra specifika undantag för att hantera fel på ett smidigt sätt.

Q: Vilka vanliga fallgropar finns vid filtrering av resurser?
A: Felaktiga URI‑kontroller kan hoppa över nödvändiga filer; använd loggning eller brytpunkter för att verifiera dina villkor.

Q: Är det möjligt att parsra icke‑HTML‑dokument med GroupDocs.Parser för Java?
A: Absolut—GroupDocs.Parser stöder PDF, Word, Excel, PowerPoint och många andra format.

Nästa steg

Utforska den fullständiga API Reference för ytterligare inställningar såsom ParserSettings.setDetectTables(true) för att extrahera tabeller, eller experimentera med ParserSettings.setExtractEmbeddedFonts(true) för teckensnittsextraktion.


Senast uppdaterad: 2026-06-22
Testat med: GroupDocs.Parser 25.5 för Java
Författare: GroupDocs

Resurser

Relaterade handledningar