GroupDocs.Conversion for Python via .NET 26.3 Release Notes

This release brings per-page conversion, in-memory stream output, Python 3.14 support, AI agent integration, improved format metadata, and multiple bug fixes.

Full List of Changes in This Release

KeyCategorySummary
CONVERSIONPYTHON‑65FeaturePer-page conversion via convert_by_page(output_dir, convert_options)
CONVERSIONPYTHON‑66FeatureIn-memory conversion via convert_to_stream(convert_options)
CONVERSIONPYTHON‑62FeaturePython 3.14 support
CONVERSIONPYTHON‑64FeatureShip AGENTS.md inside package for AI Agent integration
CONVERSIONPYTHON‑67EnhancementFormat objects expose .extension, .file_format, .description properties
CONVERSIONPYTHON‑68EnhancementExplicit macOS classifier in PyPI metadata

Major Features

Per-Page Conversion — convert_by_page

The Converter.convert_by_page(output_dir, convert_options) method is now fully functional. It splits a multi-page document into individual output files — one per page — saved to the specified directory. Page files are named page_1.ext, page_2.ext, and so on.

This was previously declared in the API but raised NotImplementedError. It is now operational for all ConvertOptions classes that support page-based output, including ImageConvertOptions, PdfConvertOptions, WordProcessingConvertOptions, PresentationConvertOptions, and others.

import os
from groupdocs.conversion import Converter
from groupdocs.conversion.filetypes import ImageFileType
from groupdocs.conversion.options.convert import ImageConvertOptions

output_dir = "./converted-pages"
os.makedirs(output_dir, exist_ok=True)

with Converter("./presentation.pptx") as converter:
    options = ImageConvertOptions()
    options.format = ImageFileType.PNG
    converter.convert_by_page(output_dir, options)
    # produces: page_1.png, page_2.png, ...

In-Memory Conversion — convert_to_stream

The Converter.convert_to_stream(convert_options) method now returns the converted document as a Python bytes object, enabling in-memory conversion pipelines without writing to disk. This is useful for cloud functions, web applications, and streaming architectures where filesystem access is limited or undesirable.

from groupdocs.conversion import Converter
from groupdocs.conversion.options.convert import PdfConvertOptions

with Converter("./report.docx") as converter:
    pdf_bytes = converter.convert_to_stream(PdfConvertOptions())
    # pdf_bytes is a bytes object containing the converted PDF
    print(f"Converted PDF size: {len(pdf_bytes)} bytes")

Python 3.14 Support

The supported Python version range is extended from 3.5–3.13 (25.12) to 3.5–3.14. The Requires-Python metadata now reads >=3.5,<3.15, and the PyPI page explicitly lists classifiers for Python 3.8 through 3.14.

AGENTS.md — AI Agent and LLM Integration

The groupdocs-conversion-net pip package now ships an AGENTS.md file at groupdocs/conversion/AGENTS.md inside the wheel. AI coding assistants that scan installed packages — such as Claude Code, Cursor, and GitHub Copilot — can automatically discover the API surface, usage patterns, import paths, and troubleshooting tips without manual guidance.

pip show -f groupdocs-conversion-net | grep AGENTS

See the Agents and LLM Integration documentation page for MCP server setup, machine-readable documentation URLs, and example pipelines for RAG and document preprocessing.

Enhancements

Format Object Properties

Format objects returned by get_possible_conversions() and get_all_possible_conversions() now expose human-readable properties:

PropertyTypeExample
.extensionstr'pdf'
.file_formatstr'Portable Document Format'
.descriptionstr'Portable Document Format File (pdf)'

Previously, these objects rendered as opaque <NetObject handle=NNN> when printed. They now display as <NetObject pdf> in repr() and provide clean string values through the properties listed above.

from groupdocs.conversion import Converter

with Converter("./report.docx") as converter:
    conversions = converter.get_possible_conversions()
    for c in conversions.all:
        if c.is_primary:
            print(f"{c.format.extension}: {c.format.file_format}")
            # pdf: Portable Document Format
            # docx: Microsoft Word Open XML Document

Explicit macOS Classifier

The PyPI metadata now includes the Operating System :: MacOS classifier alongside the existing Windows and Linux classifiers. This improves discoverability for users filtering packages by platform on PyPI.

API Changes

New Functional Methods

These methods were declared in 25.12 but raised NotImplementedError. They are now operational:

MethodReturnsDescription
Converter.convert_by_page(output_dir, convert_options)NoneSplits a document into one file per page in the given directory
Converter.convert_to_stream(convert_options)bytesConverts the document and returns the result as in-memory bytes

Methods Not Yet Available

The following methods exist as attribute proxies on the Converter class but are not yet functional in the Python binding. Calling them will raise an exception:

MethodStatusWorkaround
convert_by_page(file_path, page_number, convert_options)TypeError — 3-arg overload not exposedUse convert_options.page_number + convert_options.pages_count = 1 with convert(file_path, options)
convert_by_page(stream, page_number, convert_options)TypeError — 3-arg overload not exposedConvert to file, then read into io.BytesIO
convert_multiple(folder_path, convert_options)MissingMethodExceptionUse convert(file_path, options) for a consolidated single-file output from archives

Platform Wheels

PlatformWheel suffixNew in 26.3?
Windows 64-bitpy3-none-win_amd64.whl
Windows 32-bitpy3-none-win32.whl
Linux x64 (glibc)py3-none-manylinux1_x86_64.whl
macOS Apple Siliconpy3-none-macosx_11_0_arm64.whl
macOS Intelpy3-none-macosx_10_14_x86_64.whl

Requirements

  • Python: 3.5 through 3.14
  • Platforms: Windows (x64, x86), Linux (x64 glibc), macOS (Intel and Apple Silicon)
  • Optional system dependencies (Linux/macOS): libgdiplus, libfontconfig1, libicu-dev. See System Requirements.

Additional Resources

Feedback

If you have any questions, issues, or suggestions, please reach out through the Free Support Forum.