Metadata-Version: 2.4
Name: groupdocs-editor-net
Version: 0.0.0
Summary: GroupDocs.Editor for Python via .NET - Edit documents in any format via HTML
Author-email: GroupDocs <support@groupdocs.com>
License-Expression: LicenseRef-Proprietary
Project-URL: Homepage, https://products.groupdocs.com/editor/python-net/
Project-URL: Documentation, https://docs.groupdocs.com/editor/python-net/
Keywords: editor,edit,document,html,docx,xlsx,pptx,spreadsheet,presentation,groupdocs,dotnet
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Utilities
Requires-Python: <3.15,>=3.5
Description-Content-Type: text/markdown

[![banner](https://raw.githubusercontent.com/groupdocs/groupdocs.github.io/master/img/banners/groupdocs-editor-python-net-banner.png)](https://docs.groupdocs.com/editor/python-net/)

[![PyPI](https://img.shields.io/pypi/v/groupdocs-editor-net)](https://pypi.org/project/groupdocs-editor-net/) [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/groupdocs-editor-net)](https://pypi.org/project/groupdocs-editor-net/)

[Product Page](https://products.groupdocs.com/editor/python-net/) | [Docs](https://docs.groupdocs.com/editor/python-net/) | [Demos](https://products.groupdocs.app/editor/family) | [API Reference](https://reference.groupdocs.com/editor/python-net/) | [Blog](https://blog.groupdocs.com/category/editor/) | [Free Support](https://forum.groupdocs.com/c/editor) | [Temporary License](https://purchase.groupdocs.com/temporary-license)

GroupDocs.Editor for Python via .NET is a document-editing API built around an HTML round-trip: load a document, convert it to clean, editable HTML/CSS, edit that markup in any WYSIWYG editor or programmatically, then save it back to the original format — or convert it to another. It works with Word processing, spreadsheets, presentations, PDF, email, eBooks, and text/markup formats through one unified API, with no MS Office or OpenOffice installation required.

## Get Started

```bash
pip install groupdocs-editor-net
```

```python
from groupdocs.editor import Editor

with Editor("document.docx") as editor:
    editable = editor.edit()
    html = editable.get_body_content()
    print(html)
```

## How It Works

The package is a self-contained Python wheel (~120 MB) that bundles the embedded .NET runtime and every native dependency (SkiaSharp, Aspose.Drawing) needed to load, render, and save documents. No external software installation is required — just `pip install` and start editing. The wheel works across Python 3.5 – 3.14 on Windows, Linux, and macOS (Intel + Apple Silicon).

## Features

- **HTML round-trip editing** — convert any supported document to editable HTML/CSS and save it back without losing fidelity.
- **Multi-format** — Word processing, spreadsheets, presentations, PDF, email, eBooks, and text/markup, all behind one API.
- **Format conversion** — save an edited document with a different `*SaveOptions` to convert it (e.g. DOCX → PDF, DOCX → Markdown) via the HTML intermediate.
- **Granular editing** — edit a single worksheet, a single slide, or a page range; toggle pagination and language metadata.
- **Resource extraction** — pull out a document's images, fonts, CSS, and audio as separate resources.
- **Document introspection** — read format, page count, size, and encryption status without a full edit pass.
- **Form fields** — inspect and update Word-processing form fields.
- **Cross-Platform** — Windows x64/x86, Linux x64, macOS x64/ARM64.

## Common Tasks

- Round-trip edit a DOCX: open it, change the HTML body, save it back to DOCX
- Convert a document to another format via HTML (DOCX → PDF, XLSX → HTML, MD → DOCX)
- Edit one worksheet of a workbook or one slide of a deck at a time
- Extract the embedded images, fonts, and stylesheets from a document
- Read a file's format, page count, and encryption state before processing
- Build an editable document from your own HTML and export it to Office formats

## Supported File Formats

For a complete list, see [supported formats](https://docs.groupdocs.com/editor/net/supported-document-formats/).

| Category | Formats |
|---|---|
| **Word Processing** | DOC, DOCX, DOCM, DOT, DOTX, DOTM, ODT, OTT, RTF, WordML, FlatOPC |
| **Spreadsheets** | XLS, XLT, XLSX, XLSM, XLSB, XLTX, XLTM, XLAM, SpreadsheetML, ODS, FODS, SXC, DIF, CSV, TSV |
| **Presentations** | PPT, PPTX, PPTM, PPS, PPSX, PPSM, POT, POTX, POTM, ODP, OTP |
| **Fixed-Layout** | PDF, XPS |
| **Email** | EML, EMLX, MSG, MBOX, MHT/MHTML, PST, OST, OFT, TNEF, ICS, VCF |
| **eBooks** | EPUB, MOBI, AZW3 |
| **Text & Markup** | HTML, MHTML, CHM, XML, JSON, Markdown (MD), TXT |

## Examples

### Open a document and extract its body content

```python
from groupdocs.editor import Editor
from groupdocs.editor.options import WordProcessingLoadOptions

with Editor("input.docx", WordProcessingLoadOptions()) as editor:
    editable = editor.edit()
    body = editable.get_body_content()
    print("body length:", len(body))
```

### Get document info

```python
from groupdocs.editor import Editor

with Editor("input.docx") as editor:
    info = editor.get_document_info()
    print("Format:", info.format.name)
    print("Extension:", info.format.extension)
    print("Pages:", info.page_count)
    print("Size:", info.size, "bytes")
    print("Encrypted:", info.is_encrypted)
```

`get_document_info()` returns a lightweight view that supports both `snake_case` attribute access (shown above) and dict access (`info["PageCount"]`, `info["Format"]["Name"]`) for the underlying PascalCase keys.

### Edit with options (no pagination, keep language info)

```python
from groupdocs.editor import Editor
from groupdocs.editor.options import WordProcessingLoadOptions, WordProcessingEditOptions

with Editor("input.docx", WordProcessingLoadOptions()) as editor:
    eo = WordProcessingEditOptions()
    eo.enable_pagination = False
    eo.enable_language_information = True
    html = editor.edit(eo).get_content()
    print(len(html))
```

### Round-trip edit and save back to DOCX

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

with Editor("input.docx") as editor:
    editable = editor.edit()
    edited_html = editable.get_embedded_html().replace("Subtitle", "Edited subtitle")
    after_edit = EditableDocument.from_markup(edited_html)
    editor.save(after_edit, "output.docx", WordProcessingSaveOptions(WordProcessingFormats.DOCX))
```

### Convert via HTML: DOCX → PDF

```python
from groupdocs.editor import Editor
from groupdocs.editor.options import PdfSaveOptions

with Editor("input.docx") as editor:
    editable = editor.edit()
    editor.save(editable, "output.pdf", PdfSaveOptions())
```

### Edit a specific worksheet of a workbook

```python
from groupdocs.editor import Editor
from groupdocs.editor.options import SpreadsheetLoadOptions, SpreadsheetEditOptions

with Editor("book.xlsx", SpreadsheetLoadOptions()) as editor:
    eo = SpreadsheetEditOptions()
    eo.worksheet_index = 0          # 0-based
    html = editor.edit(eo).get_body_content()
    print(len(html))
```

### Load from a binary stream

```python
import io
from groupdocs.editor import Editor
from groupdocs.editor.options import WordProcessingLoadOptions

with open("input.docx", "rb") as stream:
    with Editor(stream, WordProcessingLoadOptions()) as editor:
        html = editor.edit().get_content()
        print(len(html))
```

## AI Agent & LLM Friendly

This package is designed for seamless integration with AI agents, LLMs, and automated code generation tools.

- **`AGENTS.md` in the package** — AI coding assistants (Claude Code, Cursor, GitHub Copilot) auto-discover the API surface, usage patterns, and troubleshooting tips from the installed package
- **MCP server** — connect your AI tool to GroupDocs documentation for on-demand API lookups:
  ```json
  { "mcpServers": { "groupdocs-docs": { "url": "https://docs.groupdocs.com/mcp" } } }
  ```
- **Machine-readable docs** — full documentation available as plain text for RAG and LLM context:
  - Single file: `https://docs.groupdocs.com/editor/python-net/llms-full.txt`
  - Per page: append `.md` to any docs URL

## Evaluation Mode

The API works without a license in evaluation mode, with these limitations:
- Output is restricted: PDF output carries an evaluation watermark and 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](https://purchase.groupdocs.com/temporary-license):

```python
from groupdocs.editor import License
License().set_license("path/to/license.lic")
```

Or set the environment variable (auto-applied at import):
```bash
export GROUPDOCS_LIC_PATH="path/to/license.lic"
```

## Troubleshooting

| Issue | Platform | Fix |
|---|---|---|
| `System.Drawing.Common is not supported` | Linux/macOS | `apt-get install libgdiplus` (Linux) or `brew install mono-libgdiplus` (macOS) |
| `The type initializer for 'Gdip' threw an exception` | macOS | `brew install mono-libgdiplus` |
| Garbled text / missing fonts in output | Linux | `apt-get install ttf-mscorefonts-installer fontconfig && fc-cache -f` |
| `DOTNET_SYSTEM_GLOBALIZATION_INVARIANT` errors | Linux | Do NOT set this variable. ICU must be available. |

## System Requirements

- Python 3.5 - 3.14
- Windows x64/x86, Linux x64, macOS x64/ARM64

## More Resources

- [Documentation](https://docs.groupdocs.com/editor/python-net/)
- [Code Examples](https://github.com/groupdocs-editor/GroupDocs.Editor-for-Python-via-.NET)
- [Free Support Forum](https://forum.groupdocs.com/c/editor)
- [Temporary License](https://purchase.groupdocs.com/temporary-license)

Also available for other platforms:
[.NET](https://products.groupdocs.com/editor/net/) | [Java](https://products.groupdocs.com/editor/java/) | [Node.js](https://products.groupdocs.com/editor/nodejs-java/)

---

[Product Page](https://products.groupdocs.com/editor/python-net/) | [Docs](https://docs.groupdocs.com/editor/python-net/) | [Demos](https://products.groupdocs.app/editor/family) | [API Reference](https://reference.groupdocs.com/editor/python-net/) | [Blog](https://blog.groupdocs.com/category/editor/) | [Free Support](https://forum.groupdocs.com/c/editor) | [Temporary License](https://purchase.groupdocs.com/temporary-license)
