Мы рады объявить о выпуске GroupDocs.Viewer for Python 26.9, доступном с сентября 2026 года. В этом выпуске движок GroupDocs.Viewer обновлён с 26.4 до 26.8, добавлена поддержка рендеринга файлов Microsoft Project на Linux и macOS, введены возможности нумерации страниц и управления разрешением для документов Word, удалена зависимость от libgdiplus на платформах, отличных от Windows, и восстановлена совместимость с Python 3.5–3.7. Встроенная среда .NET обновлена до 10.0.12, а API Python теперь содержит полные docstrings с примерами кода.
Что нового в этом выпуске
- [Feature] Добавить
WordProcessingOptions.page_number_locationи перечислениеWordsPageNumberLocationдля нанесения номеров страниц на отрендеренные документы Word (VIEWERPYTHON-153) - [Feature] Добавить
WordProcessingOptions.horizontal_resolution/vertical_resolutionдля установки DPI PNG и JPEG при выводе документов Word (VIEWERPYTHON-154) - [Feature] Добавить поддержку рендеринга файлов Microsoft Project (MPP, MPT, MPX) на Linux и macOS (VIEWERPYTHON-155)
- [Enhancement] Обновить движок GroupDocs.Viewer с 26.4 до 26.8 (VIEWERPYTHON-156)
- [Enhancement] Обновить встроенную среду .NET с 10.0.0 до 10.0.12 (VIEWERPYTHON-157)
- [Enhancement] Удалить требование
libgdiplus/mono-libgdiplusна Linux и macOS (VIEWERPYTHON-158) - [Enhancement] Предоставлять одинаковый Python‑API на всех платформах — пакеты для Linux и macOS получают
ProjectManagementOptionsи членыFileTypeдля Project, Photoshop, Illustrator и OneNote (VIEWERPYTHON-159) - [Enhancement] Добавить docstrings с описаниями, параметрами и примерами кода в Python‑API (VIEWERPYTHON-160)
- [Enhancement] Добавить раздел «Developer Guide» в справочник API (VIEWERPYTHON-161)
- [Fix] Невозможность использовать пакет с Python 3.5 – 3.7 (VIEWERPYTHON-162)
- [Fix]
pipустанавливает пакет на Linux и macOS версиях, которые не могут его запустить (VIEWERPYTHON-163)
Public API changes
Никакие типы не удалены и не переименованы.
Новые типы
| Тип | Модуль | Описание |
|---|---|---|
WordsPageNumberLocation |
groupdocs.viewer.options |
Где наносить номера страниц в отрендеренном документе Word: NOT_APPLY (по умолчанию), TOP_LEFT, TOP_CENTER, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT |
Новые члены в существующих классах
| Класс | Член | Описание |
|---|---|---|
WordProcessingOptions |
page_number_location |
Нумерация страниц, применяемая при рендеринге (WordsPageNumberLocation) |
WordProcessingOptions |
horizontal_resolution |
Горизонтальное DPI PNG / JPEG, 72 – 600 (по умолчанию 96) |
WordProcessingOptions |
vertical_resolution |
Вертикальное DPI PNG / JPEG, 72 – 600 (по умолчанию 96) |
Новое для Linux и macOS
ProjectManagementOptions, BaseViewOptions.project_management_options и FileType.MPP, MPT, MPX, PSD, PSB, AI, ONE уже были доступны в Windows и теперь также включены в пакеты для Linux и macOS — см. One Python API on every platform.
Новые возможности
Файлы Microsoft Project на Linux и macOS
Файлы MPP, MPT и MPX ранее рендерились только в Windows; на Linux и macOS они выдавали ошибку Failed to detect file type. Движок 26.8 рендерит их на любой платформе, используя те же ProjectManagementOptions, что и в Windows:
from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions, TimeUnit
with Viewer("project.mpp") as viewer:
options = HtmlViewOptions.for_embedded_resources("page_{0}.html")
options.project_management_options.time_unit = TimeUnit.DAYS
viewer.view(options)
На Linux сначала установите шрифты Microsoft (ttf-mscorefonts-installer): без них рендеринг проекта завершится ошибкой Cannot find fallback font 'Generic Sans Serif', а шрифты‑заменители вроде Liberation не удовлетворяют этому требованию.
Номера страниц в отрендеренных документах Word
WordProcessingOptions.page_number_location наносит номера страниц на документ Word во время рендеринга, даже если в документе их нет. Выберите одну из шести позиций из нового перечисления WordsPageNumberLocation; значение по умолчанию NOT_APPLY оставляет документ без изменений.
from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PdfViewOptions, WordsPageNumberLocation
with Viewer("document.docx") as viewer:
options = PdfViewOptions("output.pdf")
options.word_processing_options.page_number_location = WordsPageNumberLocation.BOTTOM_CENTER
viewer.view(options)
Разрешение PNG и JPEG при выводе документов Word
WordProcessingOptions.horizontal_resolution и vertical_resolution задают DPI изображений, получаемых из документов Word. Значение по умолчанию — 96 DPI; значения вне диапазона 72 – 600 DPI автоматически приводятся к границам диапазона.
from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PngViewOptions
with Viewer("document.docx") as viewer:
options = PngViewOptions("page_{0}.png")
options.word_processing_options.horizontal_resolution = 300
options.word_processing_options.vertical_resolution = 300
viewer.view(options)
Больше нет libgdiplus
Пакеты для Linux и macOS рендерятся через SkiaSharp и Aspose.Drawing, которые включены в wheel. Они никогда не вызывают libgdiplus: каждый документированный пример работает в Linux‑контейнере, где нет ни libgdiplus, ни его графических зависимостей. Удалите libgdiplus / mono-libgdiplus из ваших образов и скриптов развертывания.
Один Python‑API на всех платформах
Ранее пакеты для Linux и macOS предоставляли более ограниченный API, чем Windows‑версия. В 26.9 одинаковый API поставляется на всех платформах, поэтому код, написанный по документации, импортируется везде. Пакеты для Linux и macOS получают ProjectManagementOptions и члены FileType.MPP, MPT и MPX, которые теперь работают и там.
Они также получают FileType.PSD, PSB, AI и ONE. Эти форматы остаются только для Windows, и при попытке доступа к ним на Linux или macOS будет выброшено исключение GroupDocsViewerException: Member 'GroupDocs.Viewer.FileType.PSD' not found. Чтобы определить в рантайме, поддерживается ли формат, используйте FileType.get_supported_file_types(), который возвращает только те типы, которые может отрендерить текущий движок:
from groupdocs.viewer import FileType
supported = {file_type.extension for file_type in FileType.get_supported_file_types()}
print(".psd" in supported) # True в Windows, False в Linux и macOS
print(".mpp" in supported) # True везде
Пример кода
Рендеринг файла Microsoft Project на Linux или macOS с ежедневными единицами времени:
from groupdocs.viewer import Viewer
from groupdocs.viewer.options import HtmlViewOptions, TimeUnit
with Viewer("project.mpp") as viewer:
options = HtmlViewOptions.for_embedded_resources("page_{0}.html")
options.project_management_options.time_unit = TimeUnit.DAYS
viewer.view(options)
Применение нумерации страниц к документу Word и вывод в PDF:
from groupdocs.viewer import Viewer
from groupdocs.viewer.options import PdfViewOptions, WordsPageNumberLocation
with Viewer("document.docx") as viewer:
options = PdfViewOptions("output.pdf")
options.word_processing_options.page_number_location = WordsPageNumberLocation.BOTTOM_CENTER
viewer.view(options)
Как получить обновление
PyPI
Обновите пакет до последней версии через PyPI:
pip install groupdocs-viewer-net==26.9.0
Прямое скачивание
Скачайте wheel‑файлы для всех платформ со страницы GroupDocs.Viewer for Python via .NET 26.9.