GroupDocs.Editor for Python via .NET 26.5 Release Notes

This is the first public release of GroupDocs.Editor for Python via .NET, shipped as a self-contained Python wheel on PyPI. It brings the full document-editing capabilities of the underlying .NET library to Python: load a document, convert it to clean, editable HTML/CSS, edit that markup programmatically or in any WYSIWYG editor, then save it back to the original format — or convert it to another — with a single pip install and no MS Office, OpenOffice, or separate .NET runtime required.

Installation

pip install groupdocs-editor-net

Quick start

from groupdocs.editor import Editor, EditableDocument
from groupdocs.editor.formats import WordProcessingFormats
from groupdocs.editor.options import WordProcessingSaveOptions

with Editor("document.docx") as editor:
    editable = editor.edit()                       # document -> editable HTML
    html = editable.get_embedded_html()
    edited = EditableDocument.from_markup(html.replace("Hello", "Goodbye"))
    editor.save(edited, "document.docx", WordProcessingSaveOptions(WordProcessingFormats.DOCX))

Major Features

HTML Round-Trip Editing

Convert any supported document to editable HTML/CSS and save it back to its original format without losing fidelity — the core workflow behind GroupDocs.Editor. The HTML can be edited programmatically or in any third-party WYSIWYG editor such as CKEditor or TinyMCE.

Pythonic API Surface

The entire .NET API is exposed through Python-native naming. Classes use PascalCase, methods and properties use snake_case (auto-mapped to the underlying .NET PascalCase), and enum values use UPPER_SNAKE_CASE.

from groupdocs.editor.options import WordProcessingEditOptions

eo = WordProcessingEditOptions()
eo.enable_pagination = False
eo.enable_language_information = True

Multi-Format Support

One unified API across Word processing, spreadsheets, presentations, PDF, email, eBooks, and text/markup formats.

Format Conversion via HTML

There is no separate “convert” call — saving an EditableDocument with a different *SaveOptions converts it through the HTML intermediate. Same input, different output:

from groupdocs.editor.options import PdfSaveOptions, MarkdownSaveOptions

editor.save(editable, "out.pdf", PdfSaveOptions())      # DOCX -> PDF
editor.save(editable, "out.md",  MarkdownSaveOptions())  # DOCX -> Markdown

Granular Editing

Edit a single worksheet of a workbook, a single slide of a deck, or a page range — and toggle pagination and language metadata:

from groupdocs.editor.options import SpreadsheetEditOptions

eo = SpreadsheetEditOptions()
eo.worksheet_index = 0           # 0-based
eo.exclude_hidden_worksheets = True
html = editor.edit(eo).get_content()

Resource Extraction

An EditableDocument exposes its extracted images, fonts, CSS, and audio as iterable collections, and can persist the HTML plus all resources into a folder:

editable = editor.edit()
print(len(editable.images), len(editable.css), len(editable.fonts))
editable.save("page.html", "page_resources")

Document Introspection

Read format, page count, size, and encryption status without a full edit pass:

info = editor.get_document_info()
print(info.format.name, info.page_count, info.size, info.is_encrypted)

Form Fields

Inspect and update Word-processing form fields through editor.form_field_manager.

Streams and Context Managers

Load from any binary stream and rely on the context-manager protocol for deterministic disposal of native document handles:

with open("document.docx", "rb") as stream:
    with Editor(stream) as editor:
        html = editor.edit().get_content()

AI Agent & LLM Friendly

  • AGENTS.md bundled inside the installed wheel — Claude Code, Cursor, and GitHub Copilot auto-discover the API surface, usage patterns, and troubleshooting hints.
  • MCP server — point your AI tool at https://docs.groupdocs.com/mcp for on-demand documentation lookups.
  • Machine-readable docs at https://docs.groupdocs.com/editor/python-net/llms-full.txt for RAG and LLM context.

Supported Document Formats

CategoryFormats
Word ProcessingDOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF, WordML, FlatOPC
SpreadsheetsXLS, XLT, XLSX, XLSM, XLSB, XLTX, XLTM, XLAM, SpreadsheetML, ODS, FODS, SXC, DIF, CSV, TSV
PresentationsPPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP
Fixed-LayoutPDF, XPS
EmailEML, EMLX, MSG, MBOX, MHT/MHTML, PST, OST, OFT, TNEF, ICS, VCF
eBooksEPUB, MOBI, AZW3
Text & MarkupHTML, MHTML, CHM, XML, JSON, Markdown (MD), TXT

Public API Surface

Classes

  • Editor — entry point; open by path or stream, edit(), save(), get_document_info(), form_field_manager
  • EditableDocument — HTML/CSS representation; get_content(), get_body_content(), get_embedded_html(), get_css_content(), save(), resource collections (images, fonts, css, audio, all_resources), and the from_markup() / from_markup_and_resource_folder() / from_file() factories
  • FormFieldManager — read and update Word-processing form fields
  • License, Metered — licensing APIs

Options

  • Load: WordProcessingLoadOptions, SpreadsheetLoadOptions, PresentationLoadOptions, PdfLoadOptions
  • Edit: WordProcessingEditOptions, SpreadsheetEditOptions, PresentationEditOptions, PdfEditOptions, EbookEditOptions, EmailEditOptions, MarkdownEditOptions, TextEditOptions, XmlEditOptions, DelimitedTextEditOptions
  • Save: WordProcessingSaveOptions, SpreadsheetSaveOptions, PresentationSaveOptions, PdfSaveOptions, HtmlSaveOptions, MhtmlSaveOptions, MarkdownSaveOptions, XpsSaveOptions, TextSaveOptions, EbookSaveOptions, EmailSaveOptions, DelimitedTextSaveOptions

Enums

  • WordProcessingFormats, SpreadsheetFormats, PresentationFormats, FixedLayoutFormats, EBookFormats, EmailFormats, TextualFormats, FontExtractionOptions, FontEmbeddingOptions

Exceptions

  • PasswordRequiredException, IncorrectPasswordException, EncryptedException, InvalidFormatException

Evaluation Mode

The API works without a license in evaluation mode, with these limitations:

  • PDF output carries an evaluation watermark; other formats show an equivalent evaluation mark.
  • A page/document-count cap applies to processed documents.

To remove these limitations, apply a license or request a temporary license:

from groupdocs.editor import License

License().set_license("path/to/license.lic")

Or set the environment variable (auto-applied at import):

export GROUPDOCS_LIC_PATH="path/to/license.lic"

System Requirements

  • Python: 3.5 – 3.14
  • Platforms: Windows x64/x86, Linux x64, macOS x64/ARM64
  • No external software (MS Office / OpenOffice) required. On Linux/macOS, install the native GDI+/font libraries listed in Troubleshooting.

Troubleshooting

IssuePlatformFix
System.Drawing.Common is not supportedLinux/macOSapt-get install libgdiplus (Linux) or brew install mono-libgdiplus (macOS)
The type initializer for 'Gdip' threw an exceptionmacOSbrew install mono-libgdiplus
Garbled text / missing fonts in outputLinuxapt-get install ttf-mscorefonts-installer fontconfig && fc-cache -f
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT errorsLinuxDo NOT set this variable. Install ICU: apt-get install libicu-dev
TypeLoadExceptionAnyReinstall: pip install --force-reinstall groupdocs-editor-net

License

See detailed legal information, including terms of use, copyright, EULA, and privacy policy: https://about.groupdocs.com/legal/

Support

For questions or technical assistance, please use our Free Support Forum.