GroupDocs.Viewer for Python via .NET 26.9 Release Notes
This release upgrades the GroupDocs.Viewer engine from 26.4 to 26.8. Microsoft Project files now render on Linux and macOS as well as Windows, Word documents gain options for page numbering and output resolution, and the Linux and macOS packages no longer need libgdiplus. The Python API now carries full docstrings with code examples, and the package works on Python 3.5 – 3.7 again. The embedded .NET runtime moves from 10.0.0 to 10.0.12, the latest of the twelve servicing updates Microsoft has shipped for .NET 10, nine of them security releases.
The upgrade is additive: nothing is removed or renamed. On Linux, rendering MS Project files needs the Microsoft core fonts. On Linux and macOS the wheels now state the oldest system they run on, so installing needs pip 20.3 or newer — see Requirements.
Full List of Changes in This Release
| Key | Category | Summary |
|---|---|---|
| VIEWERPYTHON‑153 | Feature | Add WordProcessingOptions.page_number_location and the WordsPageNumberLocation enum to stamp page numbers on rendered Word documents |
| VIEWERPYTHON‑154 | Feature | Add WordProcessingOptions.horizontal_resolution / vertical_resolution to set the DPI of PNG and JPEG output for Word documents |
| VIEWERPYTHON‑155 | Feature | Add support for rendering Microsoft Project files (MPP, MPT, MPX) on Linux and macOS |
| VIEWERPYTHON‑156 | Enhancement | Update GroupDocs.Viewer engine from 26.4 to 26.8 |
| VIEWERPYTHON‑157 | Enhancement | Update the embedded .NET runtime from 10.0.0 to 10.0.12 |
| VIEWERPYTHON‑158 | Enhancement | Remove the libgdiplus / mono-libgdiplus requirement on Linux and macOS |
| VIEWERPYTHON‑159 | Enhancement | Ship the same Python API on every platform — the Linux and macOS packages gain ProjectManagementOptions and the Project, Photoshop, Illustrator and OneNote FileType members |
| VIEWERPYTHON‑160 | Enhancement | Add docstrings with summaries, parameters and code examples to the Python API |
| VIEWERPYTHON‑161 | Enhancement | Add a Developer Guide section to the API reference |
| VIEWERPYTHON‑162 | Fix | Cannot use the package on Python 3.5 – 3.7 |
| VIEWERPYTHON‑163 | Fix | pip installs the package on Linux and macOS versions that cannot run it |
Major Features
Microsoft Project files on Linux and macOS
MPP, MPT and MPX files used to render on Windows only; on Linux and macOS they failed with Failed to detect file type. The 26.8 engine renders them on every platform, with the same ProjectManagementOptions as on 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)
On Linux, install the Microsoft core fonts (ttf-mscorefonts-installer) first: without them Project rendering fails with Cannot find fallback font 'Generic Sans Serif', and metric-compatible substitutes such as Liberation do not satisfy that lookup.
Page numbers on rendered Word documents
WordProcessingOptions.page_number_location stamps page numbers on a Word document as it renders, even if the document has none. Choose one of six positions from the new WordsPageNumberLocation enum; the default, NOT_APPLY, leaves the document as it is.
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)
Resolution of PNG and JPEG output for Word documents
WordProcessingOptions.horizontal_resolution and vertical_resolution set the DPI of images rendered from Word documents. The default is 96 DPI; values outside 72 – 600 DPI are clamped to that range.
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)
No more libgdiplus
The Linux and macOS packages render through SkiaSharp and Aspose.Drawing, which ship inside the wheel. They never call libgdiplus: every documented example passes in a Linux container that has neither libgdiplus nor its graphics dependencies. Drop libgdiplus / mono-libgdiplus from your images and provisioning scripts.
One Python API on every platform
Earlier Linux and macOS packages exposed a smaller API than the Windows one. 26.9 ships the same API everywhere, so code written against the documentation imports on every platform. The Linux and macOS packages gain ProjectManagementOptions and the FileType.MPP, MPT and MPX members, which now work there too.
They also gain FileType.PSD, PSB, AI and ONE. Those formats remain Windows-only, and on Linux and macOS accessing one of these members raises GroupDocsViewerException: Member 'GroupDocs.Viewer.FileType.PSD' not found. To decide at runtime whether a format can render, check FileType.get_supported_file_types(), which lists only what the running engine renders:
from groupdocs.viewer import FileType
supported = {file_type.extension for file_type in FileType.get_supported_file_types()}
print(".psd" in supported) # True on Windows, False on Linux and macOS
print(".mpp" in supported) # True everywhere
API Changes
Nothing is removed or renamed.
New types
| Type | Module | Description |
|---|---|---|
WordsPageNumberLocation | groupdocs.viewer.options | Where to stamp page numbers on a rendered Word document: NOT_APPLY (default), TOP_LEFT, TOP_CENTER, TOP_RIGHT, BOTTOM_LEFT, BOTTOM_CENTER, BOTTOM_RIGHT |
New members on existing classes
| Class | Member | Description |
|---|---|---|
WordProcessingOptions | page_number_location | Page numbering to apply while rendering (WordsPageNumberLocation) |
WordProcessingOptions | horizontal_resolution | Horizontal DPI of PNG / JPEG output, 72 – 600 (default 96) |
WordProcessingOptions | vertical_resolution | Vertical DPI of PNG / JPEG output, 72 – 600 (default 96) |
New on Linux and macOS
ProjectManagementOptions, BaseViewOptions.project_management_options and FileType.MPP, MPT, MPX, PSD, PSB, AI, ONE were already available on Windows and are now in the Linux and macOS packages as well — see One Python API on every platform.
Fixed
- Cannot use the package on Python 3.5 – 3.7. In 26.5
import groupdocs.viewerfailed on Python 3.5 and 3.6 withSyntaxError: future feature annotations is not defined, and on Python 3.7 calls that pass an enum argument failed withAttributeError: module 'typing' has no attribute 'get_origin'. Both work in 26.9. - pip installs the package on Linux and macOS versions that cannot run it. The 26.5 wheels were tagged
manylinux1_x86_64(glibc 2.5),macosx_10_14_x86_64andmacosx_11_0_arm64. The .NET runtime inside them needs glibc 2.27 and macOS 12, so on an older system the install succeeded and the first call failed — on glibc 2.24, for example, withversion 'GLIBC_2.27' not found. The 26.9 wheels are taggedmanylinux_2_27_x86_64,macosx_12_0_x86_64andmacosx_12_0_arm64, and pip refuses an older system up front. An unpinnedpip installon such a system still falls back to 26.5 or older, which keep the old tags.
Known Issues
VisioRenderingOptions.render_figures_onlyrenders each Visio stencil figure as flat lines instead of the figure itself. Rendering whole Visio pages is not affected.- On Windows, HTML output that uses the Cambria Math font embeds the whole font instead of the subset the page needs, so such pages are noticeably larger.
Documentation
- Supported File Formats — MS Project on all platforms; Photoshop, Illustrator and OneNote marked Windows-only.
- System Requirements —
libgdiplusremoved; ICU, fontconfig and fonts, with the Microsoft core fonts required for MS Project files; glibc 2.27+ and macOS 12+, and pip 20.3+ to install. - Do I need libgdiplus? — replaces the libgdiplus installation guide.
- Installation — wheel file names for each platform, with the oldest system each runs on. The Windows command no longer uses a
*wildcard, which PowerShell does not expand. - The
AGENTS.mdinside the package, and the matching Agents and LLM Integration page, carry the new platform notes.
Requirements
- Python 3.5 – 3.14 (
python_requires = ">=3.5,<3.15") and pip 20.3 or newer - Linux x64 with glibc 2.27 or newer; macOS 12 or newer, Intel or Apple Silicon. On an Intel Mac, a Python built against a pre-11 macOS SDK reports the system as macOS 10.16 — use pip 24.1 or newer there, or
SYSTEM_VERSION_COMPAT=0 pip install groupdocs-viewer-net - Windows: no additional packages
- Linux: ICU, fontconfig and fonts —
apt-get install libicu-dev fontconfig ttf-mscorefonts-installer(on Debian, enable thecontribcomponent first). The Microsoft core fonts are required for MS Project files.libgdiplusis not needed. - macOS (Intel and Apple Silicon): no additional packages
- The .NET 10.0.12 runtime is embedded in the wheel; no separate install is needed
Wheel Distribution
| Platform | Wheel |
|---|---|
| Windows x64 | groupdocs_viewer_net-26.9.0-py3-none-win_amd64.whl |
| Linux x64 | groupdocs_viewer_net-26.9.0-py3-none-manylinux_2_27_x86_64.whl |
| macOS Intel | groupdocs_viewer_net-26.9.0-py3-none-macosx_12_0_x86_64.whl |
| macOS Apple Silicon | groupdocs_viewer_net-26.9.0-py3-none-macosx_12_0_arm64.whl |
pip install groupdocs-viewer-net==26.9.0
Additional Resources
Feedback
Questions and issues are welcome on the GroupDocs.Viewer forum.