Kami dengan senang hati mengumumkan rilis GroupDocs.Parser for Java 26.10, tersedia sejak Oktober 2026. Ini adalah rilis pemeliharaan yang berfokus pada ketepatan: pencarian teks kembali berfungsi untuk setiap overload, ekstraksi struktur dokumen menangani lebih banyak dokumen Word, informasi file melaporkan enkripsi dengan akurat, dan koordinat gambar PDF kini cocok dengan API lainnya. Lisensi kini ditangani oleh GroupDocs.Foundation, dan komponen Aspose yang dibundel telah diperbarui.

Apa yang baru di rilis ini

Kunci Ringkasan Kategori
PARSERJAVA-491 Parser.search tidak lagi melempar NullPointerException ketika pencarian tidak dibatasi pada halaman Perbaikan
PARSERJAVA-513 Parser.getStructure() berfungsi untuk dokumen Word dengan tabel header atau footer dan mengembalikan XML yang terstruktur dengan baik Perbaikan
— Parser.getFileInfo(String) melaporkan file DOCX, XLSX, dan PPTX yang dilindungi kata sandi sebagai terenkripsi Perbaikan
— FileInfo.isEncrypted() bernilai true hanya untuk dokumen PDF yang terenkripsi Perbaikan
— Persegi panjang gambar PDF diukur dari atas halaman, seperti area halaman lainnya Perbaikan
PARSERJAVA-154 Lisensi dilakukan oleh GroupDocs.Foundation, inti lisensi yang dibagikan oleh produk GroupDocs Pembaruan
PARSERJAVA-512 Komponen Aspose yang dibundel diperbarui Pembaruan
PARSERJAVA-509 POM yang dipublikasikan: nama produk, deskripsi singkat, <url>, <organization> dan <scm> Pembaruan

Perubahan perilaku yang perlu diperiksa sebelum memperbarui

Dua perubahan memengaruhi apa yang diamati kode yang ada:

  1. Koordinat gambar PDF. Koordinat atas persegi panjang gambar PDF kini diukur dari atas halaman. Jika kode Anda mengonversinya dari bawah halaman, hapus konversi tersebut.
  2. XML struktur dokumen Word. Kata yang dipisahkan oleh karakter pemisah Word kini dipisahkan oleh spasi dalam XML struktur.

Perbaikan

Pencarian teks tidak dibatasi pada halaman

Sejak versi 25.5, setiap pemanggilan Parser.search yang tidak dibatasi pada halaman gagal dengan NullPointerException. Ini memengaruhi overload search(String keyword), search(String keyword, SearchOptions options) dengan searchByPages disetel ke false (default), dan pencarian yang meminta sorotan. Pencarian dengan searchByPages disetel ke true tidak terpengaruh.

Pada 26.10 panggilan ini kembali mengembalikan hasil pencarian:

try (Parser parser = new Parser("sample.pdf")) {
    Iterable<SearchResult> results = parser.search("lorem");
    if (results == null) {
        return; // Search isn't supported for this document
    }

    for (SearchResult result : results) {
        System.out.println(result.getPosition() + ": " + result.getText());
    }
}

Struktur dokumen Word

Parser.getStructure() dulu melempar pada dokumen pengolah kata yang berisi tabel di header atau footer, dan dapat mengembalikan XML yang tidak dapat diparse ketika teks dokumen mengandung karakter kontrol. Kedua masalah tersebut telah diperbaiki:

  • tabel di header dan footer dijelaskan oleh grid logisnya: indeks baris dalam tabel, indeks sel dalam baris, dan rentang sebesar 1;
  • karakter pemisah Word (akhir sel, tab vertikal, pemisah halaman, pemisah kolom) menjadi spasi, sehingga kata yang dipisahnya tidak lagi menempel bersama;
  • karakter yang tidak diizinkan oleh XML 1.0 dihapus;
  • nilai atribut di-escape dengan cara yang sama seperti teks.

Informasi file untuk dokumen yang dilindungi kata sandi

Overload Parser.getFileInfo(String filePath) tidak mengenali file DOCX, XLSX, dan PPTX yang dilindungi kata sandi: ia mengembalikan ukuran 0 dan isEncrypted() disetel ke false untuk DOCX dan XLSX, serta tidak ada tipe file untuk PPTX. Sekarang ia mengembalikan hasil yang sama seperti overload InputStream: ukuran file sebenarnya, isEncrypted() disetel ke true dan FileType.Unknown (format dokumen terenkripsi tidak dapat dibaca tanpa kata sandi).

Ini memudahkan mendeteksi file yang dilindungi dan membukanya dengan kata sandi:

FileInfo info = Parser.getFileInfo("protected.docx");
if (info.isEncrypted()) {
    LoadOptions options = new LoadOptions("password");
    try (Parser parser = new Parser("protected.docx", options);
         TextReader reader = parser.getText()) {
        System.out.println(reader.readToEnd());
    }
}

Enkripsi dokumen PDF

FileInfo.isEncrypted() sebelumnya mengembalikan true untuk setiap dokumen PDF. Sekarang hanya true untuk dokumen PDF yang memang terenkripsi.

Posisi gambar PDF

Persegi panjang gambar PDF yang dikembalikan oleh Parser.getImages() diukur dari bawah halaman, sementara teks, tabel, dan area halaman lainnya diukur dari atas. Gambar kini menggunakan koordinat berbasis atas yang sama, sehingga getImages(PageAreaOptions) menemukan gambar di dalam persegi panjang yang diberikan:

try (Parser parser = new Parser("images.pdf")) {
    // Images in the top-left 400 x 400 points of each page
    PageAreaOptions options = new PageAreaOptions(new Rectangle(new Point(0, 0), new Size(400, 400)));
    for (PageImageArea image : parser.getImages(options)) {
        System.out.println(image.getPage().getIndex() + ": " + image.getRectangle());
    }
}

Pembaruan

Lisensi pada GroupDocs.Foundation

Validasi lisensi, lisensi berbasis meter, dan lisensi komponen Aspose yang dibundel kini dilakukan oleh GroupDocs.Foundation, inti lisensi yang sama yang digunakan oleh produk GroupDocs lainnya. API lisensi tidak berubah: License.setLicense, Metered.setMeteredKey, Metered.getConsumptionQuantity, dan Metered.getConsumptionCredit dipanggil persis seperti sebelumnya.

License license = new License();
license.setLicense("GroupDocs.Parser.Java.lic");

try (Parser parser = new Parser("document.docx");
     TextReader reader = parser.getText()) {
    System.out.println(reader.readToEnd());
}

Komponen Aspose yang dibundel

Komponen 26.9 26.10
Aspose.Cells 26.3 26.9
Aspose.Email 26.1 26.8
Aspose.PDF 26.2 26.8.1
Aspose.Slides 26.2 26.9
Aspose.Words 26.3 26.8
Aspose.BarCode 26.4 26.6
Aspose.Imaging 25.12 25.12
Aspose.ZIP 25.10 25.10
Aspose.Note 23.3 23.3

Produk ini masih berjalan pada Java 8.

Metadata artefak yang dipublikasikan

POM yang dipublikasikan kini memuat nama GroupDocs.Parser for Java, deskripsi singkat tentang apa yang diekstrak oleh perpustakaan dan format apa yang dibacanya, halaman produk sebagai <url>, serta mendeklarasikan <organization> dan <scm>. Ini adalah informasi yang ditampilkan oleh indeks dependensi seperti MVNRepository. Tidak ada kode, perilaku, atau API yang berubah.

Cara mendapatkan pembaruan

Maven

Tambahkan repositori GroupDocs dan dependensi ke pom.xml Anda:

<repositories>
    <repository>
        <id>groupdocs-artifacts-repository</id>
        <name>GroupDocs Artifacts Repository</name>
        <url>https://releases.groupdocs.com/java/repo/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-parser</artifactId>
        <version>26.10</version>
    </dependency>
</dependencies>

Unduhan langsung

Unduh JAR dari halaman unduhan GroupDocs.Parser for Java 26.10.

Sumber Daya