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:
- 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 đó.
- 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.