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

KeyCategorySummary
VIEWERPYTHON‑153FeatureAdd WordProcessingOptions.page_number_location and the WordsPageNumberLocation enum to stamp page numbers on rendered Word documents
VIEWERPYTHON‑154FeatureAdd WordProcessingOptions.horizontal_resolution / vertical_resolution to set the DPI of PNG and JPEG output for Word documents
VIEWERPYTHON‑155FeatureAdd support for rendering Microsoft Project files (MPP, MPT, MPX) on Linux and macOS
VIEWERPYTHON‑156EnhancementUpdate GroupDocs.Viewer engine from 26.4 to 26.8
VIEWERPYTHON‑157EnhancementUpdate the embedded .NET runtime from 10.0.0 to 10.0.12
VIEWERPYTHON‑158EnhancementRemove the libgdiplus / mono-libgdiplus requirement on Linux and macOS
VIEWERPYTHON‑159EnhancementShip the same Python API on every platform — the Linux and macOS packages gain ProjectManagementOptions and the Project, Photoshop, Illustrator and OneNote FileType members
VIEWERPYTHON‑160EnhancementAdd docstrings with summaries, parameters and code examples to the Python API
VIEWERPYTHON‑161EnhancementAdd a Developer Guide section to the API reference
VIEWERPYTHON‑162FixCannot use the package on Python 3.5 – 3.7
VIEWERPYTHON‑163Fixpip 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

TypeModuleDescription
WordsPageNumberLocationgroupdocs.viewer.optionsWhere 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

ClassMemberDescription
WordProcessingOptionspage_number_locationPage numbering to apply while rendering (WordsPageNumberLocation)
WordProcessingOptionshorizontal_resolutionHorizontal DPI of PNG / JPEG output, 72 – 600 (default 96)
WordProcessingOptionsvertical_resolutionVertical 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.viewer failed on Python 3.5 and 3.6 with SyntaxError: future feature annotations is not defined, and on Python 3.7 calls that pass an enum argument failed with AttributeError: 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_64 and macosx_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, with version 'GLIBC_2.27' not found. The 26.9 wheels are tagged manylinux_2_27_x86_64, macosx_12_0_x86_64 and macosx_12_0_arm64, and pip refuses an older system up front. An unpinned pip install on such a system still falls back to 26.5 or older, which keep the old tags.

Known Issues

  • VisioRenderingOptions.render_figures_only renders 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 — libgdiplus removed; 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.md inside 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 the contrib component first). The Microsoft core fonts are required for MS Project files. libgdiplus is 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

PlatformWheel
Windows x64groupdocs_viewer_net-26.9.0-py3-none-win_amd64.whl
Linux x64groupdocs_viewer_net-26.9.0-py3-none-manylinux_2_27_x86_64.whl
macOS Intelgroupdocs_viewer_net-26.9.0-py3-none-macosx_12_0_x86_64.whl
macOS Apple Silicongroupdocs_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.