We’re happy to announce the release of GroupDocs.Conversion for Python v26.9, available as of September 2026. This release upgrades the underlying GroupDocs.Conversion engine from 26.3 to 26.8, introduces the ConversionEvents API for real-time conversion monitoring, adds support for XAR archives, draw.io, and Mermaid diagrams, and includes several new load and convert options. It also resolves critical compatibility issues on Python 3.5–3.10 and fixes longstanding defects affecting delegate-typed properties and enum arguments.
What’s new in this release
- [Feature] Add support for
ConversionEventsto observe start, progress, per-page and per-document completion, failures and font substitution (CONVERSIONPYTHON-93) - [Feature] Add support for new formats — XAR archives, draw.io diagrams and Mermaid (
.mmd) diagrams (CONVERSIONPYTHON-94) - [Feature] Add
CadLoadOptions.layout_scopeto restrict CAD conversion to model space, paper-space layouts, or both (CONVERSIONPYTHON-95) - [Feature] Add
MarkdownOptions.image_saving_callbackto control where images extracted to Markdown are written (CONVERSIONPYTHON-96) - [Feature] Add
EmailLoadOptions.page_layout_optionsandWebLoadOptions.margin_settings/orientation_settings/size_settings(CONVERSIONPYTHON-97) - [Feature] Add
ImageConvertOptions.min_resolutionandcap_resolution_to_page_content(CONVERSIONPYTHON-98) - [Feature] Add
WordProcessingLoadOptions.auto_detect_rtl_direction(CONVERSIONPYTHON-99) - [Feature] Add
MissingDependencyExceptionfor a clearer failure when an optional engine dependency is absent (CONVERSIONPYTHON-100) - [Enhancement] Update GroupDocs.Conversion engine from 26.3 to 26.8 (CONVERSIONPYTHON-101)
- [Enhancement] Remove the duplicate
groupdocs.conversion.file_typesmodule — usegroupdocs.conversion.filetypes(CONVERSIONPYTHON-102) - [Enhancement] Rename
PdfOptions.remove_pdf_acompliancetoremove_pdf_a_compliance(CONVERSIONPYTHON-103) - [Enhancement] Add a Developer Guide section and
groupdocs.conversion.integration.*pages to the API reference (CONVERSIONPYTHON-104) - [Fix] Cannot import module when using Python 3.5 – 3.7 (CONVERSIONPYTHON-91)
- [Fix] Runtime error when passing Enum argument in Python versions 3.8 – 3.10 (CONVERSIONPYTHON-92)
- [Fix] Indexer
itemon*DocumentInfoandPossibleConversionsis a property and cannot be called (CONVERSIONPYTHON-105) - [Fix] Delegate-typed properties cannot be assigned from Python (
Object must implement IConvertible) (CONVERSIONPYTHON-106) - [Fix] Delegate-typed properties are annotated with the wrong type in stubs and docstrings (CONVERSIONPYTHON-107)
Public API changes
New classes
| Class | Module |
|---|---|
ConversionEvents |
groupdocs.conversion |
FontSubstitutionContext |
groupdocs.conversion.contracts |
XarDocumentInfo |
groupdocs.conversion.contracts |
MissingDependencyException |
groupdocs.conversion.exceptions |
CadLayoutScope |
groupdocs.conversion.options.load |
IPageLayoutOptions |
groupdocs.conversion.options.load |
MarkdownImageSavingArgs, IMarkdownImageSavingCallback |
groupdocs.conversion.options.convert |
IConversionHandlersStage, IConversionByPageHandlersStage |
groupdocs.conversion.fluent |
New members on existing classes
FluentConverter.with_events(...), and the same onIConversionFromandIConversionSettingsConverter(...)— four new constructor overloads accepting aConversionEventsCadLoadOptions.layout_scopeEmailLoadOptions.page_layout_optionsWebLoadOptions.margin_settings,.orientation_settings,.size_settingsMarkdownOptions.image_saving_callbackImageConvertOptions.min_resolution,.cap_resolution_to_page_contentWordProcessingLoadOptions.auto_detect_rtl_directionCompressionFileType.XAR,DiagramFileType.DRAWIO,DiagramFileType.MMD
Removed — groupdocs.conversion.file_types
The module groupdocs.conversion.file_types and its 23 classes are gone. The classes themselves are not — every one of them still exists, unchanged, in groupdocs.conversion.filetypes.
If you imported from it, change the import — nothing else:
# before
from groupdocs.conversion.file_types import WordProcessingFileType
# after
from groupdocs.conversion.filetypes import WordProcessingFileType
Renamed — PdfOptions.remove_pdf_acompliance
# before
options.remove_pdf_acompliance = True
# after
options.remove_pdf_a_compliance = True
New features
Conversion events
ConversionEvents lets you observe a conversion while it runs — progress, per-page and per-document completion, failures, and font substitution. Attach ordinary Python functions:
from groupdocs.conversion import ConversionEvents, Converter, ConverterSettings
from groupdocs.conversion.options.convert import PdfConvertOptions
events = ConversionEvents()
events.on_conversion_started = lambda: print("started")
events.on_conversion_progress = lambda percent: print(f"{percent}%")
events.on_document_converted = lambda ctx: print("document done")
events.on_font_substituted = lambda ctx: print(
f"{ctx.original_font_name} -> {ctx.substitute_font_name} ({ctx.reason})")
events.on_conversion_completed = lambda: print("completed")
with Converter("business-plan.docx", ConverterSettings(), events) as converter:
converter.convert("business-plan.pdf", PdfConvertOptions())
Note the constructor takes (path, settings, events) — there is no (path, events) overload, so pass a ConverterSettings() even when you do not need to configure anything.
The available hooks are on_conversion_started, on_conversion_progress, on_conversion_completed, on_document_converted, on_document_failed, on_page_converted, on_page_failed, on_compression_completed and on_font_substituted.
New formats
| Format | File type constant | Notes |
|---|---|---|
| XAR archive | CompressionFileType.XAR |
Also XarDocumentInfo for inspection |
| draw.io diagram | DiagramFileType.DRAWIO |
|
| Mermaid diagram | DiagramFileType.MMD |
CAD layout scope
from groupdocs.conversion.options.load import CadLayoutScope, CadLoadOptions
load_options = CadLoadOptions()
load_options.layout_scope = CadLayoutScope.MODEL # MODEL | LAYOUTS | BOTH
BOTH is the default and does not restrict the conversion.
Code example
from groupdocs.conversion import ConversionEvents, Converter, ConverterSettings
from groupdocs.conversion.options.convert import PdfConvertOptions
events = ConversionEvents()
events.on_conversion_started = lambda: print("started")
events.on_conversion_progress = lambda percent: print(f"{percent}%")
events.on_document_converted = lambda ctx: print("document done")
events.on_font_substituted = lambda ctx: print(
f"{ctx.original_font_name} -> {ctx.substitute_font_name} ({ctx.reason})")
events.on_conversion_completed = lambda: print("completed")
with Converter("business-plan.docx", ConverterSettings(), events) as converter:
converter.convert("business-plan.pdf", PdfConvertOptions())
How to get the update
PyPI
pip install groupdocs-conversion-net==26.9.0
Direct download
Download from the GroupDocs.Conversion for Python via .NET 26.9 page.