我们很高兴宣布 GroupDocs.Conversion for Java v26.9 的发布。此 2026 年 9 月的版本引入了文档转换的协作取消功能,新增了压缩流格式之间的转换,并提供了稳定的 Java 模块名称。它还更新了宣传的归档转换对,因此动态选择转换的应用程序在升级前应检查可用的转换对。

本次发布的新功能

键 类别 更改
CONVERSIONNET-6880 功能 支持通过取消令牌进行协作取消
CONVERSIONNET-7032 功能 将 Bzip2、Gzip、XZ 和 Unix Z 转换为 LZMA
CONVERSIONNET-7019 功能 将 LZMA 转换为 Bzip2 和 Gzip
CONVERSIONNET-7020 功能 将 Unix Z 转换为 Bzip2 和 Gzip
CONVERSIONNET-7030 功能 将 Bzip2、Gzip、LZMA 和 Unix Z 转换为 XZ
CONVERSIONNET-7029 功能 将 XZ 转换为 Bzip2 和 Gzip
CONVERSIONNET-7028 功能 将 Gzip 转换为 Bzip2
CONVERSIONNET-7021 功能 将 Bzip2 转换为 Gzip
CONVERSIONJAVA-3238 任务 解决 groupdocs-conversion-26.7.jar 中的包验证问题

此发布的 JAR 还为使用 Java 模块系统的应用程序声明了 Automatic-Module-Name: com.groupdocs.conversion。

公共 API 更改

协作取消

两个新类 com.groupdocs.conversion.CancellationToken 和 com.groupdocs.conversion.CancellationTokenSource 允许应用程序请求停止转换。所有公共的 Converter.convert(...) 和 Converter.convertPageByPage(...) 方法现在都有带有最终 CancellationToken 参数的重载。流式转换执行器还新增了 ConversionExecutor.convert(CancellationToken)。

现有的重载仍然可用,并使用 CancellationToken.NONE,因此现有的转换调用无需更改。

创建一个令牌源并将其令牌传递给转换:

import com.groupdocs.conversion.CancellationTokenSource;
import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.options.convert.PdfConvertOptions;
import java.util.concurrent.CancellationException;

CancellationTokenSource cancellationSource = new CancellationTokenSource();

try (Converter converter = new Converter("input.docx")) {
    // An application cancellation handler can call cancellationSource.cancel()
    // from another thread while this conversion runs.
    converter.convert(
        "converted.pdf",
        new PdfConvertOptions(),
        cancellationSource.getToken()
    );
} catch (CancellationException ex) {
    System.out.println("Conversion was cancelled.");
}

当用户取消作业或应用程序决定停止时,调用 cancellationSource.cancel()。取消检查在 转换操作之间 进行:已经在运行的操作会在观察到取消之前完成。随后转换会抛出 java.util.concurrent.CancellationException。

已写入的输出不会回滚,因此在取消作业时应用程序应处理部分输出。已取消的源无法重置;请为新作业创建新的源。传递 null 令牌会抛出 NullPointerException。

压缩流转换

版本 26.9 支持以下压缩流来源和目标,包括相同格式的转换:

方向 支持的格式
来源 Bzip2 (Bz2)、Gzip (Gz 和 Gzip)、LZMA (Lzma)、XZ (Xz)、Unix Z (Z)
目标 Bzip2、Gzip、LZMA、XZ

Unix Z 在本版本中支持作为来源,但不作为目标。

使用 CompressionConvertOptions.setFormat(...) 选择输出格式。例如,将 Gzip 流转换为 LZMA:

import com.groupdocs.conversion.Converter;
import com.groupdocs.conversion.filetypes.CompressionFileType;
import com.groupdocs.conversion.options.convert.CompressionConvertOptions;

CompressionConvertOptions options = new CompressionConvertOptions();
options.setFormat(CompressionFileType.Lzma);

try (Converter converter = new Converter("input.gz")) {
    converter.convert("converted.lzma", options);
}

归档转换兼容性

宣传的归档转换对现在仅限于 ZIP、7z、TAR 和 CPIO 之间的转换。依赖之前宣传的归档到压缩流对的应用程序在升级前应检查可用的转换。上面列出的压缩流来源和目标格式描述的是另一组受支持的转换。

稳定的 Java 模块名称

此发布的 JAR 声明了以下清单条目:

Automatic-Module-Name: com.groupdocs.conversion

这为使用 Java 模块系统的应用程序提供了稳定的模块名称。模块化应用程序可以在 module-info.java 中引用它:

module example.conversion {
    requires com.groupdocs.conversion;
}

如何获取更新

Maven

在 pom.xml 中添加 GroupDocs 仓库和 26.9 依赖,或更新现有依赖的版本:

<repositories>
    <repository>
        <id>groupdocs-artifacts-repository</id>
        <url>https://repository.groupdocs.com/repo/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-conversion</artifactId>
        <version>26.9</version>
    </dependency>
</dependencies>

您也可以浏览 GroupDocs.Conversion for Java Maven 仓库。

直接下载

从 GroupDocs.Conversion for Java 发布页面 下载 Java 包。

资源