我們很高興宣布 GroupDocs.Parser for Java 26.10 已於 2026年10月 發佈。這是一個以正確性為重點的維護版本:文字搜尋在所有重載中再次正常工作,文件結構提取支援更多 Word 文件,檔案資訊正確報告加密狀態,且 PDF 圖像座標現在與 API 其他部分保持一致。授權現在由 GroupDocs.Foundation 處理,且捆綁的 Aspose 元件已更新。
此版本的新功能
| 鍵 | 摘要 | 類別 |
|---|---|---|
| PARSERJAVA-491 | Parser.search 不再在搜尋未限定於頁面時拋出 NullPointerException |
修復 |
| PARSERJAVA-513 | Parser.getStructure() 能夠處理含有頁首或頁尾表格的 Word 文件,並返回格式正確的 XML |
修復 |
| — | Parser.getFileInfo(String) 將受密碼保護的 DOCX、XLSX 和 PPTX 檔案報告為已加密 |
修復 |
| — | FileInfo.isEncrypted() 僅在加密的 PDF 文件上返回 true |
修復 |
| — | PDF 圖像矩形的測量從頁面頂部開始,與其他頁面區域相同 | 修復 |
| PARSERJAVA-154 | 授權由 GroupDocs.Foundation 執行,這是 GroupDocs 產品共用的授權核心 | 更新 |
| PARSERJAVA-512 | 捆綁的 Aspose 元件已更新 | 更新 |
| PARSERJAVA-509 | 已發布的 POM:產品名稱、簡短說明、<url>、<organization> 與 <scm> |
更新 |
升級前需檢查的行為變更
有兩項變更會影響現有程式碼的觀察結果:
- PDF 圖像座標。 PDF 圖像矩形的頂部座標現在從頁面頂部測量。如果您的程式碼是從頁面底部轉換的,請移除該轉換。
- Word 文件的結構 XML。 由 Word 換行字元分隔的單詞現在在結構 XML 中以空格分隔。
修復
未限定於頁面的文字搜尋
自 25.5 版起,所有未限定於頁面的 Parser.search 呼叫都會拋出 NullPointerException。這影響了 search(String keyword) 重載、search(String keyword, SearchOptions options)(searchByPages 設為 false,預設值)以及請求高亮的搜尋。將 searchByPages 設為 true 的搜尋則不受影響。
在 26.10 版中,這些呼叫再次返回搜尋結果:
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());
}
}
Word 文件的結構
Parser.getStructure() 以前在包含頁首或頁尾表格的文字處理文件上會拋出例外,且當文件文字包含控制字元時可能返回無法解析的 XML。這兩個問題已修復:
- 頁首與頁尾的表格以其邏輯格線描述:表格中的行索引、行內的儲存格索引,且跨距皆為 1;
- Word 換行字元(儲存格結束、垂直定位、分頁、分欄)會轉換為空格,因而分隔的單詞不再連在一起;
- XML 1.0 不允許的字元會被刪除;
- 屬性值的跳脫方式與文字相同。
受密碼保護文件的檔案資訊
Parser.getFileInfo(String filePath) 重載未能辨識受密碼保護的 DOCX、XLSX 與 PPTX 檔案:對於 DOCX 與 XLSX 會回傳大小為 0 且 isEncrypted() 為 false,而 PPTX 則沒有檔案類型。現在它會返回與 InputStream 重載相同的結果:實際檔案大小、isEncrypted() 為 true,以及 FileType.Unknown(加密文件的格式在未提供密碼時無法讀取)。
這使得偵測受保護檔案並使用密碼開啟變得簡單:
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());
}
}
PDF 文件的加密
FileInfo.isEncrypted() 先前對所有 PDF 文件皆回傳 true。現在僅對實際加密的 PDF 文件回傳 true。
PDF 圖像的位置
Parser.getImages() 回傳的 PDF 圖像矩形先前是從頁面底部測量,而文字、表格及其他頁面區域則是從頂部測量。現在圖像使用相同的以頂部為基準的座標,因此 getImages(PageAreaOptions) 能在給定的矩形內找到圖像:
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());
}
}
更新
在 GroupDocs.Foundation 上的授權
授權驗證、計量授權以及捆綁的 Aspose 元件的授權現在由 GroupDocs.Foundation 執行,這與其他 GroupDocs 產品使用的授權核心相同。授權 API 未變更:License.setLicense、Metered.setMeteredKey、Metered.getConsumptionQuantity 與 Metered.getConsumptionCredit 仍如以往呼叫。
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());
}
捆綁的 Aspose 元件
| 元件 | 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 |
此產品仍可在 Java 8 上執行。
已發布的構件中繼資料
已發布的 POM 現在包含名稱 GroupDocs.Parser for Java、對庫提取內容與支援格式的簡短說明、產品頁面的 <url>,並聲明 <organization> 與 <scm>。這些資訊會在 MVNRepository 等相依性索引中顯示。程式碼、行為或 API 均未變更。
如何取得更新
Maven
在您的 pom.xml 中加入 GroupDocs 儲存庫與相依性:
<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>
直接下載
從 GroupDocs.Parser for Java 26.10 下載頁面 下載 JAR。