Parsing Dokumen Java: Ekstrak Gambar dari Dokumen dengan GroupDocs.Parser
Dalam panduan komprehensif ini Anda akan mempelajari teknik java document parsing untuk mengekstrak gambar dari berbagai jenis file menggunakan GroupDocs.Parser untuk Java. Kami akan menjelaskan penyiapan pustaka, membuat ExternalResourceHandler khusus, dan menerapkan penyaringan cerdas sehingga Anda hanya memuat sumber daya yang benar‑benar diperlukan—membantu Anda mengurangi penggunaan memori dan mempercepat pemrosesan.
Jawaban Cepat
- Apa yang dilakukan GroupDocs.Parser? Ia mem-parsing lebih dari 50 format file, menampilkan teks, gambar, dan sumber daya tersemat lainnya untuk penggunaan programatik.
- Bisakah saya melewatkan gambar yang tidak diinginkan? Ya—implementasikan
ExternalResourceHandlerkhusus untuk menyaring sumber daya secara langsung. - Versi Maven mana yang diperlukan? Gunakan GroupDocs.Parser Java 25.5 atau yang lebih baru.
- Apakah saya memerlukan lisensi? Versi percobaan gratis dapat digunakan untuk evaluasi; lisensi permanen diperlukan untuk produksi.
- Apakah pendekatan ini thread‑safe? Buat instance
Parserterpisah per thread; objek tidak dibagikan.
Apa itu “ekstrak gambar dari dokumen”?
Mengekstrak gambar dari dokumen berarti secara programatik mengambil file gambar yang tersemat sehingga Anda dapat menyimpan, menampilkan, atau memprosesnya lebih lanjut di luar file asli. Operasi ini penting ketika Anda memerlukan thumbnail, visualisasi data, atau ingin menggunakan kembali aset media tanpa menyimpan seluruh dokumen sumber.
Mengapa menyaring sumber daya saat mengekstrak gambar?
Menyaring sumber daya saat mengekstrak gambar memungkinkan Anda mengurangi penggunaan memori hingga 70 % saat memproses file besar, karena biner yang tidak diinginkan tidak pernah masuk ke heap JVM. Ini juga meningkatkan keamanan dengan mencegah konten yang berpotensi tidak aman dimuat, dan mempercepat alur kerja—kontrak besar dengan ratusan grafik dekoratif dapat diparsing dalam sebagian kecil waktu aslinya.
Prasyarat
- Java Development Kit (JDK) – versi 8 atau lebih tinggi.
- Maven – untuk manajemen dependensi.
- Familiaritas dasar dengan Java I/O dan penanganan pengecualian.
Menyiapkan GroupDocs.Parser untuk Java
Tambahkan repositori GroupDocs dan dependensi parser ke pom.xml Anda:
<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>
Atau, unduh versi terbaru dari GroupDocs.Parser for Java releases.
Akuisisi Lisensi
- Free Trial – jelajahi fitur inti tanpa biaya.
- Temporary License – buka semua fungsi selama evaluasi.
- Purchased License – diperlukan untuk penyebaran komersial.
Cara menyaring sumber daya saat mengekstrak gambar
Untuk menyaring sumber daya, implementasikan ExternalResourceHandler yang menentukan file tersemat mana yang dimuat. Daftarkan handler ini di ParserSettings sebelum membuka dokumen, kemudian panggil parser. Handler menerima metadata setiap sumber daya, memungkinkan Anda menerima atau menolak berdasarkan kriteria seperti tipe, ukuran, atau nama, sehingga hanya gambar yang diperlukan yang diproses.
Langkah 1: Buat handler khusus
ExternalResourceHandler adalah antarmuka yang memungkinkan Anda memutuskan apakah sumber daya eksternal tertentu—seperti gambar—harus dimuat. Implementasikan metode onLoading dan kembalikan true untuk sumber daya yang ingin Anda pertahankan, false untuk melewatkannya. Metode onLoading menerima metadata sumber daya dan harus mengembalikan true untuk memuat atau false untuk melewati sumber daya.
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);
}
}
Langkah 2: Konfigurasikan ParserSettings dengan handler
ParserSettings adalah kelas konfigurasi yang menyimpan opsi seperti handler khusus, pengaturan deteksi, dan penyesuaian kinerja untuk parser. Berikan instance handler Anda ke ParserSettings sebelum membuka dokumen.
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());
}
}
}
}
Langkah 3: Sesuaikan logika penyaringan
Jika Anda memerlukan aturan yang lebih canggih—seperti penyaringan berdasarkan ukuran gambar, format, atau pola URI—perluas metode onLoading sesuai. Misalnya, Anda dapat melewatkan gambar apa pun yang lebih besar dari 2 MB atau mengabaikan semua file PNG.
@Override
public void onLoading(ExternalResourceLoadingArgs args) {
if (!args.getUri().endsWith("installation.png")) {
args.setSkipped(true);
}
}
Aplikasi Praktis
- Document Management Systems – Ambil hanya gambar yang diperlukan dari kontrak yang dipindai untuk menghasilkan thumbnail.
- Data Extraction Services – Lewati grafik dekoratif dan fokus pada diagram yang berisi data berharga.
- Web Scraping Tools – Saring pixel pelacakan saat mengambil media yang bermakna dari dokumen berbasis HTML.
Pertimbangan Kinerja
Parser adalah kelas inti yang membuka dokumen dan memberikan akses ke isinya.
- Filter lebih awal: Terapkan handler khusus Anda sebelum iterasi sumber daya untuk menghindari memuat data yang tidak diinginkan ke memori.
- Buang segera: Gunakan try‑with‑resources (
try (Parser parser = …)) untuk membebaskan sumber daya native. - Pemrosesan async: Untuk batch besar, proses dokumen dalam aliran paralel sambil memastikan setiap instance
Parserterbatas pada satu thread.
Masalah Umum & Solusi
| Masalah | Mengapa Terjadi | Solusi |
|---|---|---|
| Tidak ada gambar yang dikembalikan | Handler secara tidak sengaja melewatkan semua sumber daya | Verifikasi kondisi if dan pastikan args.setSkipped(true) hanya dipanggil untuk URI yang tidak diinginkan. |
IOException pada file besar | Memori heap tidak cukup | Tingkatkan heap JVM (-Xmx2g) atau proses halaman dalam potongan lebih kecil. |
| Lisensi tidak dikenali | Menggunakan trial DLL dengan kode produksi | Terapkan jalur file lisensi yang benar via License.setLicense("path/to/license"). |
Pertanyaan yang Sering Diajukan
Q: Apa tujuan utama menggunakan ExternalResourceHandler khusus?
A: Ini memungkinkan Anda mengontrol sumber daya eksternal mana yang dimuat, meningkatkan keamanan dan kinerja dengan menyaring file yang tidak diperlukan.
Q: Bisakah saya menggunakan GroupDocs.Parser untuk Java tanpa lisensi?
A: Ya, percobaan gratis tersedia, tetapi fitur lanjutan dan penyebaran skala besar memerlukan lisensi yang valid.
Q: Bagaimana cara menangani pengecualian selama parsing dengan GroupDocs.Parser?
A: Bungkus pemanggilan parsing dalam blok try‑catch untuk IOException dan pengecualian spesifik lainnya agar dapat menangani kesalahan dengan elegan.
Q: Apa jebakan umum saat menyaring sumber daya?
A: Pemeriksaan URI yang salah dapat melewatkan file yang diperlukan; gunakan logging atau breakpoint untuk memverifikasi kondisi Anda.
Q: Apakah memungkinkan untuk mem-parsing dokumen non‑HTML menggunakan GroupDocs.Parser untuk Java?
A: Tentu—GroupDocs.Parser mendukung PDF, Word, Excel, PowerPoint, dan banyak format lainnya.
Langkah Selanjutnya
Jelajahi lengkap API Reference untuk pengaturan tambahan seperti ParserSettings.setDetectTables(true) untuk mengekstrak tabel, atau coba ParserSettings.setExtractEmbeddedFonts(true) untuk ekstraksi font.
Terakhir Diperbarui: 2026-06-22
Diuji Dengan: GroupDocs.Parser 25.5 for Java
Penulis: GroupDocs
Sumber Daya
- Dokumentasi: GroupDocs.Parser Documentation
- Referensi API: API Details
- Unduhan: Latest Versions