Мы рады объявить о выпуске GroupDocs.Conversion for Java v26.9. Этот выпуск сентября 2026 года вводит кооперативную отмену для конвертации документов, добавляет конвертации между форматами сжатых потоков и предоставляет стабильное имя Java‑модуля. Также обновлены рекламируемые пары конвертации архивов, поэтому приложения, которые динамически выбирают конвертации, должны проверить доступные пары перед обновлением.
Что нового в этом выпуске
Ключи .NET ниже идентифицируют функции, портированные в Java; описания отражают форматы, поддерживаемые этим выпуском Java.
| Ключ | Категория | Изменение |
|---|---|---|
| CONVERSIONNET-6880 | Feature | Поддержка кооперативной отмены через токены отмены |
| CONVERSIONNET-7032 | Feature | Конвертация Bzip2, Gzip, XZ и Unix Z в LZMA |
| CONVERSIONNET-7019 | Feature | Конвертация LZMA в Bzip2 и Gzip |
| CONVERSIONNET-7020 | Feature | Конвертация Unix Z в Bzip2 и Gzip |
| CONVERSIONNET-7030 | Feature | Конвертация Bzip2, Gzip, LZMA и Unix Z в XZ |
| CONVERSIONNET-7029 | Feature | Конвертация XZ в Bzip2 и Gzip |
| CONVERSIONNET-7028 | Feature | Конвертация Gzip в Bzip2 |
| CONVERSIONNET-7021 | Feature | Конвертация Bzip2 в Gzip |
| CONVERSIONJAVA-3238 | Task | Устранить проблемы проверки пакета в groupdocs-conversion-26.7.jar |
JAR‑файл выпуска также объявляет Automatic-Module-Name: com.groupdocs.conversion для приложений, использующих систему модулей Java.
Изменения публичного 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")) {
// Обработчик отмены приложения может вызвать cancellationSource.cancel()
// из другого потока, пока выполняется эта конвертация.
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
Добавьте репозиторий GroupDocs и зависимость 26.9 в ваш pom.xml, либо обновите версию в существующей зависимости:
<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 repository.
Прямое скачивание
Скачайте Java‑пакет со страницы GroupDocs.Conversion for Java releases.