我们很高兴宣布 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> 更新

升级前需检查的行为更改

有两项更改会影响现有代码的观察结果:

  1. PDF 图像坐标。 PDF 图像矩形的顶部坐标现在相对于页面顶部测量。如果你的代码之前是从页面底部转换的,请去除该转换。
  2. 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; // 此文档不支持搜索
    }

    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 文件:它返回大小为 0,且 isEncrypted() 对 DOCX、XLSX 为 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")) {
    // 每页左上角 400 x 400 点范围内的图像
    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 包。

资源