Chúng tôi rất vui mừng thông báo việc phát hành GroupDocs.Parser for Java 26.10, có sẵn từ tháng 10 năm 2026. Đây là bản phát hành bảo trì tập trung vào độ chính xác: tìm kiếm văn bản hoạt động trở lại cho mọi overload, việc trích xuất cấu trúc tài liệu hỗ trợ nhiều tài liệu Word hơn, thông tin tệp báo cáo mã hóa một cách chính xác, và tọa độ hình ảnh PDF hiện khớp với phần còn lại của API. Việc cấp phép hiện được xử lý bởi GroupDocs.Foundation, và các thành phần Aspose được đóng gói đã được cập nhật.

Những điểm mới trong bản phát hành này

Key Tóm tắt Thể loại
PARSERJAVA-491 Parser.search không còn ném NullPointerException khi tìm kiếm không được giới hạn trong một trang Sửa
PARSERJAVA-513 Parser.getStructure() hoạt động cho tài liệu Word có bảng trong header hoặc footer và trả về XML đúng cấu trúc Sửa
— Parser.getFileInfo(String) báo cáo các tệp DOCX, XLSX và PPTX được bảo vệ bằng mật khẩu là đã mã hóa Sửa
— FileInfo.isEncrypted() chỉ trả về true đối với các tài liệu PDF đã mã hóa Sửa
— Các hình chữ nhật hình ảnh PDF được đo từ phía trên của trang, giống như các khu vực trang khác Sửa
PARSERJAVA-154 Cấp phép được thực hiện bởi GroupDocs.Foundation, lõi cấp phép được chia sẻ bởi các sản phẩm GroupDocs Cập nhật
PARSERJAVA-512 Các thành phần Aspose được đóng gói đã được cập nhật Cập nhật
PARSERJAVA-509 POM đã xuất bản: tên sản phẩm, mô tả ngắn, <url>, <organization> và <scm> Cập nhật

Thay đổi hành vi cần kiểm tra trước khi nâng cấp

Hai thay đổi ảnh hưởng đến những gì mã hiện có quan sát:

  1. Tọa độ hình ảnh PDF. Tọa độ trên của các hình chữ nhật hình ảnh PDF hiện được đo từ phía trên của trang. Nếu mã của bạn đã chuyển đổi từ phía dưới của trang, hãy loại bỏ việc chuyển đổi đó.
  2. XML cấu trúc của tài liệu Word. Các từ được tách bằng ký tự ngắt Word hiện được tách bằng một dấu cách trong XML cấu trúc.

Các sửa lỗi

Tìm kiếm văn bản không giới hạn trong một trang

Kể từ phiên bản 25.5, mọi lời gọi Parser.search không được giới hạn trong một trang đã thất bại với NullPointerException. Điều này ảnh hưởng đến overload search(String keyword), search(String keyword, SearchOptions options) với searchByPages được đặt là false (mặc định), và các tìm kiếm yêu cầu đánh dấu nổi bật. Các tìm kiếm với searchByPages được đặt là true không bị ảnh hưởng.

Trong 26.10, các lời gọi này lại trả về kết quả tìm kiếm:

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

Cấu trúc tài liệu Word

Parser.getStructure() trước đây ném lỗi khi tài liệu xử lý văn bản chứa bảng trong header hoặc footer, và có thể trả về XML không thể phân tích khi văn bản tài liệu chứa ký tự điều khiển. Cả hai vấn đề đã được khắc phục:

  • các bảng trong header và footer được mô tả bằng lưới logic của chúng: chỉ số hàng trong bảng, chỉ số ô trong hàng và độ phủ là 1;
  • Các ký tự ngắt Word (kết thúc ô, tab dọc, ngắt trang, ngắt cột) trở thành một dấu cách, vì vậy các từ chúng tách ra không còn dính liền nhau;
  • các ký tự mà XML 1.0 không cho phép sẽ bị loại bỏ;
  • giá trị thuộc tính được escape theo cùng cách như văn bản.

Thông tin tệp cho tài liệu được bảo vệ bằng mật khẩu

overload Parser.getFileInfo(String filePath) không nhận ra các tệp DOCX, XLSX và PPTX được bảo vệ bằng mật khẩu: nó trả về kích thước 0 và isEncrypted() đặt là false cho DOCX và XLSX, và không có loại tệp cho PPTX. Bây giờ nó trả về kết quả giống như overload InputStream: kích thước thực tế của tệp, isEncrypted() đặt là true và FileType.Unknown (định dạng của tài liệu đã mã hóa không thể đọc được nếu không có mật khẩu).

Điều này giúp dễ dàng phát hiện tệp được bảo vệ và mở nó bằng mật khẩu:

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

Mã hóa tài liệu PDF

FileInfo.isEncrypted() trước đây trả về true cho mọi tài liệu PDF. Bây giờ nó chỉ trả về true đối với các tài liệu PDF thực sự đã được mã hóa.

Vị trí của hình ảnh PDF

Các hình chữ nhật của hình ảnh PDF trả về bởi Parser.getImages() đã được đo từ phía dưới của trang, trong khi văn bản, bảng và các khu vực trang khác được đo từ phía trên. Các hình ảnh hiện sử dụng cùng tọa độ dựa trên phía trên, vì vậy getImages(PageAreaOptions) tìm các hình ảnh bên trong hình chữ nhật đã cho:

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

Các cập nhật

Cấp phép trên GroupDocs.Foundation

Việc xác thực giấy phép, cấp phép theo mức tiêu thụ và việc cấp phép cho các thành phần Aspose được đóng gói hiện được thực hiện bởi GroupDocs.Foundation, cùng lõi cấp phép được sử dụng bởi các sản phẩm GroupDocs khác. API cấp phép không thay đổi: License.setLicense, Metered.setMeteredKey, Metered.getConsumptionQuantity và Metered.getConsumptionCredit được gọi chính xác như trước.

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

Các thành phần Aspose được đóng gói

Thành phần 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

Sản phẩm vẫn chạy trên Java 8.

Siêu dữ liệu artifact đã xuất bản

POM đã xuất bản hiện chứa tên GroupDocs.Parser for Java, mô tả ngắn gọn về những gì thư viện trích xuất và các định dạng nó đọc, trang sản phẩm dưới dạng <url>, và khai báo <organization> và <scm>. Đây là thông tin mà các chỉ mục phụ thuộc như MVNRepository hiển thị. Không có mã, hành vi hay API nào thay đổi.

Cách nhận bản cập nhật

Maven

Thêm repository GroupDocs và phụ thuộc vào pom.xml của bạn:

<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>

Tải trực tiếp

Tải JAR từ trang tải xuống GroupDocs.Parser for Java 26.10.

Tài nguyên