Wyodrębnianie obrazów z dokumentów i filtrowanie zasobów przy użyciu GroupDocs.Parser Java
Wyodrębnianie obrazów z dokumentów jest powszechnym wymaganiem przy budowaniu potoków przetwarzania dokumentów. W tym samouczku odkryjesz jak wyodrębnić obrazy z dokumentów przy użyciu GroupDocs.Parser dla Javy oraz dowiesz się jak filtrować zasoby, aby załadowane zostały tylko potrzebne pliki. Przejdziemy przez konfigurację biblioteki, tworzenie własnego ExternalResourceHandler oraz zastosowanie logiki filtrowania, aby Twoja aplikacja była szybka i bezpieczna.
Szybkie odpowiedzi
- Co robi GroupDocs.Parser? Parsuje szeroką gamę formatów dokumentów i zapewnia dostęp do tekstu, obrazów oraz innych osadzonych zasobów.
- Czy mogę pominąć niechciane obrazy? Tak — poprzez implementację własnego
ExternalResourceHandlermożesz zdecydować, które zasoby załadować. - Jaką wersję GroupDocs.Parser Java wymaga się? Użyj GroupDocs.Parser Java 25.5 lub nowszej.
- Czy potrzebna jest licencja? Bezpłatna wersja próbna działa w celach oceny; stała licencja jest wymagana w środowisku produkcyjnym.
- Czy to podejście jest bezpieczne wątkowo? Obiekty parsujące nie są współdzielone między wątkami; utwórz nową instancję
Parserdla każdego wątku.
Co oznacza „wyodrębnić obrazy z dokumentów”?
Gdy dokument zawiera osadzone obrazy, wykresy lub inne media, „wyodrębnić obrazy z dokumentów” oznacza programowe pobranie tych plików binarnych, aby można je było przechowywać, wyświetlać lub dalej przetwarzać poza oryginalnym plikiem.
Dlaczego filtrować zasoby podczas wyodrębniania obrazów?
Filtrowanie zasobów pomaga:
- Zmniejszyć zużycie pamięci, ignorując duże lub nieistotne pliki.
- Poprawić bezpieczeństwo, zapobiegając ładowaniu potencjalnie niebezpiecznej zawartości.
- Przyspieszyć przetwarzanie, szczególnie przy ogromnych dokumentach zawierających wiele osadzonych obiektów.
Wymagania wstępne
- Java Development Kit (JDK) – wersja 8 lub wyższa.
- Maven – do zarządzania zależnościami.
- Podowa znajomość Java I/O oraz obsługi wyjątków.
Konfiguracja GroupDocs.Parser dla Java
Dodaj repozytorium GroupDocs oraz zależność parsera do swojego 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>
Alternatywnie, pobierz najnowszą wersję z GroupDocs.Parser for Java releases.
Uzyskanie licencji
- Free Trial – przetestuj podstawowe funkcje bez kosztów.
- Temporary License – odblokuj pełną funkcjonalność podczas oceny.
- Purchased License – wymagana przy wdrożeniu komercyjnym.
Jak filtrować zasoby podczas wyodrębniania obrazów
Krok 1: Utwórz własny handler
Zdefiniuj klasę, która rozszerza ExternalResourceHandler. W metodzie onLoading decydujesz, które zasoby zachować.
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: Skonfiguruj ParserSettings z handlerem
Przekaż swoją instancję Handler do ParserSettings i użyj jej przy otwieraniu 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: Dostosuj logikę filtrowania
Jeśli potrzebujesz bardziej zaawansowanych reguł — np. filtrowania według rozmiaru obrazu, formatu lub wzorca URI — rozszerz metodę onLoading odpowiednio:
@Override
public void onLoading(ExternalResourceLoadingArgs args) {
if (!args.getUri().endsWith("installation.png")) {
args.setSkipped(true);
}
}
Praktyczne zastosowania
- Document Management Systems – Pobieraj tylko niezbędne obrazy ze skanowanych umów, aby generować miniatury.
- Data Extraction Services – Pomijaj ozdobne grafiki i koncentruj się na wykresach zawierających cenne dane.
- Web Scraping Tools – Filtruj piksele śledzące podczas pobierania istotnych mediów z dokumentów opartych na HTML.
Rozważania dotyczące wydajności
- Filtruj wcześnie: Zastosuj własny handler przed iteracją po zasobach, aby uniknąć ładowania niepotrzebnych danych do pamięci.
- Zwalniaj szybko: Używaj try‑with‑resources (
try (Parser parser = …)) aby zwolnić zasoby natywne. - Przetwarzanie asynchroniczne: Przy dużych partiach przetwarzaj dokumenty w strumieniach równoległych, utrzymując każdą instancję
Parserw jednym wątku.
Typowe problemy i rozwiązania
| Problem | Dlaczego się pojawia | Rozwiązanie |
|---|---|---|
| Brak zwróconych obrazów | Handler pomija wszystkie zasoby nieświadomie | Sprawdź warunek if i upewnij się, że args.setSkipped(true) jest wywoływane tylko dla niechcianych URI. |
IOException on large files | Niewystarczająca pamięć heap | Zwiększ pamięć heap JVM (-Xmx2g) lub przetwarzaj strony w mniejszych fragmentach. |
| Licencja nie rozpoznana | Używanie trial DLL w kodzie produkcyjnym | Ustaw poprawną ścieżkę do pliku licencji za pomocą License.setLicense("path/to/license"). |
Najczęściej zadawane pytania
Q: Jaki jest główny cel używania własnego ExternalResourceHandler?
A: Pozwala kontrolować, które zasoby zewnętrzne są ładowane, zwiększając bezpieczeństwo i wydajność poprzez filtrowanie niepotrzebnych plików.
Q: Czy mogę używać GroupDocs.Parser dla Java bez licencji?
A: Tak, dostępna jest wersja próbna, ale niektóre zaawansowane funkcje mogą być ograniczone, dopóki nie uzyskasz licencji tymczasowej lub zakupionej.
Q: Jak obsługiwać wyjątki podczas parsowania przy użyciu GroupDocs.Parser?
A: Otaczaj wywołania parsowania blokami try‑catch dla IOException i innych konkretnych wyjątków, aby elegancko obsłużyć błędy.
Q: Jakie są typowe pułapki przy filtrowaniu zasobów?
A: Nieprawidłowe sprawdzanie URI może pominąć potrzebne pliki; używaj logowania lub breakpointów, aby zweryfikować warunki.
Q: Czy można parsować dokumenty nie‑HTML przy użyciu GroupDocs.Parser dla Java?
A: Oczywiście — GroupDocs.Parser obsługuje PDF‑y, Word, Excel, PowerPoint i wiele innych formatów.
Kolejne kroki
Zanurz się głębiej w bibliotekę, przeglądając API Reference lub eksperymentując z dodatkowymi ustawieniami, takimi jak ParserSettings.setDetectTables(true) do wyodrębniania tabel.
Ostatnia aktualizacja: 2025-12-29
Testowano z: GroupDocs.Parser 25.5 for Java
Autor: GroupDocs
Zasoby
- Documentation: GroupDocs.Parser Documentation
- API Reference: API Details
- Downloads: Latest Versions