Bringen Sie Ihre Dokumente in KI-Pipelines — direkt aus Python, vor Ort, mit einem pip install.
Heute veröffentlichen wir die erste öffentliche Version von GroupDocs.Markdown für Python via .NET auf PyPI. Die Bibliothek konvertiert PDF, Word, Excel, EPUB und über 20 weitere Formate in sauberes, semantisches Markdown — das Format, mit dem LLMs, RAG‑Pipelines und statische Seitengeneratoren am besten arbeiten.
Wenn Sie dem .NET‑Release vom September (oder dem vollständigen API‑Overhaul in 26.3) gefolgt sind, ist die Begründung dieselbe: Dokumentformatierung trägt Semantik, und das Bewahren dieser semantischen Struktur sorgt dafür, dass ein RAG‑System gute Antworten liefert. Der frühere Beitrag behandelt das Problem (OCR flacht Struktur ab, LLMs benötigen Markdown) und die Lösung (ein DOM‑basierter Renderer, der das Dokument durchläuft und Markdown erzeugt) ausführlich — wir wiederholen diese Geschichte hier nicht.
Stattdessen konzentrieren wir uns auf das, was neu für Python‑Entwickler ist.
Was Sie erhalten
- Ein einzelnes Wheel, keine Laufzeitabhängigkeiten.
pip install groupdocs-markdown-netholt ein eigenständiges Wheel, das die .NET‑Runtime und alle benötigten nativen Bibliotheken enthält. Keinedotnet‑Installation, kein Microsoft Office, kein Adobe Acrobat, keine Cloud‑Dienste. - Plattformübergreifend. Windows x64/x86, Linux x64, macOS x64 und Apple Silicon (ARM64). Python 3.5 bis 3.14.
- Eine pythonische API. Klassen verwenden
PascalCase, Methoden und Eigenschaftensnake_case, Enum‑WerteUPPER_SNAKE_CASE. Kontext‑Manager entsorgen geladene Dokumente deterministisch. - Wirklich async. Jede statische und Instanz‑Methode hat ein Gegenstück mit
_async. Datei‑I/O ist asynchron und die CPU‑intensive Konvertierung läuft in einem Worker‑Thread — Ihreasyncio‑Ereignisschleife bleibt frei. - AI‑Agent‑freundlich. Das installierte Wheel enthält eine
AGENTS.md‑Datei, sodass Coding‑Assistenten (Claude Code, Cursor, GitHub Copilot, Codex) die API‑Oberfläche, idiomatische Nutzungsmuster und Fehlertipps automatisch entdecken. Die Dokumentation wird außerdem alsllms.txt, ein einseitiges Korpus (llms-full.txt), pro‑Seite‑Markdown und ein MCP‑Server veröffentlicht — siehe unten AI‑friendly by design für Details.
Erste Schritte
pip install groupdocs-markdown-net
Die einfachste Konvertierung ist ein Einzeiler:
from groupdocs.markdown import MarkdownConverter
# In einen String konvertieren
md = MarkdownConverter.to_markdown("business-plan.docx")
# Oder direkt in eine Datei schreiben
MarkdownConverter.to_file("business-plan.docx", "business-plan.md")
Das war’s — keine Konfiguration, keine Optionen, kein Boilerplate. Der Evaluierungsmodus verarbeitet die ersten 3 Seiten und fügt ein Wasserzeichen hinzu. Um die Beschränkungen zu entfernen, eine Lizenz anwenden:
from groupdocs.markdown import License
License().set_license("path/to/license.lic")
Oder GROUPDOCS_LIC_PATH als Umgebungsvariable setzen; sie wird beim Import automatisch angewendet.
Unterstützte Formate
Das Python‑Paket unterstützt dieselbe Bandbreite an Formaten wie die .NET‑Bibliothek:
- PDF —
.pdf - Word / Rich Text —
.doc,.docx,.docm,.dot,.dotx,.dotm,.rtf,.odt,.ott - Tabellen —
.xls,.xlsx,.xlsb,.xlsm,.csv,.tsv,.ods,.ots - eBooks —
.epub,.mobi - Text / Markup / Hilfe —
.txt,.xml,.chm
Pythonische Beispiele
Konvertierungsoptionen und Bildstrategien
from groupdocs.markdown import (
MarkdownConverter,
ConvertOptions,
MarkdownFlavor,
ExportImagesToFileSystemStrategy,
)
strategy = ExportImagesToFileSystemStrategy("output/images")
strategy.images_relative_path = "images" # 
options = ConvertOptions()
options.flavor = MarkdownFlavor.GIT_HUB
options.heading_level_offset = 1 # # Title -> ## Title
options.include_front_matter = True # YAML‑Metadaten voranstellen
options.image_export_strategy = strategy
MarkdownConverter.to_file("report.docx", "output/report.md", convert_options=options)
Dokumentinspektion ohne Konvertierung
from groupdocs.markdown import MarkdownConverter
info = MarkdownConverter.get_info("business-plan.docx")
print(f"{info.file_format}, {info.page_count} pages, author: {info.author}")
Laden einer passwortgeschützten Datei
from groupdocs.markdown import MarkdownConverter, LoadOptions, FileFormat
load_opts = LoadOptions(FileFormat.DOCX)
load_opts.password = "secret"
MarkdownConverter.to_file("protected.docx", "output.md", load_options=load_opts)
Streams und Kontext‑Manager
from groupdocs.markdown import MarkdownConverter
with open("document.docx", "rb") as stream:
with MarkdownConverter(stream) as converter:
converter.convert("document.md")
Async‑API — mehrere Dokumente gleichzeitig konvertieren
Da Datei‑I/O asynchron ist, ermöglicht asyncio.gather() einem einzelnen Worker, viele Dokumente ohne Blockierung zu verarbeiten:
import asyncio
from groupdocs.markdown import MarkdownConverter
async def convert_many():
await asyncio.gather(
MarkdownConverter.to_file_async("a.docx", "a.md", None),
MarkdownConverter.to_file_async("b.pdf", "b.md", None),
MarkdownConverter.to_file_async("c.xlsx", "c.md", None),
)
asyncio.run(convert_many())
Damit lässt sich die Bibliothek nahtlos in ASGI‑Frameworks wie FastAPI einsetzen — ein Worker kann viele gleichzeitige Konvertierungsanfragen bedienen, ohne Thread‑Konkurrenz.
Fehlerbehandlung
Alle Konvertierungsmethoden werfen bei einem Fehlschlag, mit spezifischen Ausnahmetypen für gängige Szenarien:
from groupdocs.markdown import (
MarkdownConverter,
DocumentProtectedException,
InvalidFormatException,
GroupDocsMarkdownException,
)
try:
MarkdownConverter.to_file("annual-report.docx", "annual-report.md")
except DocumentProtectedException:
print("Falsches oder fehlendes Passwort.")
except InvalidFormatException:
print("Datei ist beschädigt oder nicht unterstützt.")
except GroupDocsMarkdownException as ex:
print(f"Konvertierung fehlgeschlagen: {ex}")
Für RAG‑ und LLM‑Pipelines gebaut
Markdown ist das bevorzugte Eingabeformat für Einbettungs‑Modelle und Retrieval‑Pipelines — es bewahrt Überschriften, Listen, Tabellen und Hervorhebungen und lässt sich leicht chunken und tokenisieren. Ein typischer RAG‑Ingest‑Workflow sieht so aus:
import re
from groupdocs.markdown import MarkdownConverter, ConvertOptions, SkipImagesStrategy, MarkdownFlavor
options = ConvertOptions()
options.image_export_strategy = SkipImagesStrategy() # Nur Text für RAG
options.flavor = MarkdownFlavor.COMMON_MARK
MarkdownConverter.to_file("business-plan.pdf", "business-plan.md", convert_options=options)
with open("business-plan.md", "r", encoding="utf-8") as f:
markdown = f.read()
# Nach Top‑Level‑Überschriften splitten, dann jedes Chunk einbetten/indexieren
chunks = [c for c in re.split(r"\n#{1,2} ", markdown) if c.strip()]
Da die Bibliothek vollständig on‑premise läuft, verlassen sensible Dokumente niemals Ihre Umgebung — ein häufiges Erfordernis in regulierten Branchen, bei Rechtsteams und internen Wissensdatenbanken.
AI‑friendly by design
Die meisten Python‑SDKs behandeln KI‑Coding‑Assistenten als nachträglichen Gedanken — ein Entwickler muss dem Agenten noch die Dokumentation zeigen, Beispiele einfügen oder durch Trial‑and‑Error debuggen. GroupDocs.Markdown für Python via .NET kehrt das um: Die Bibliothek ist so konzipiert, dass Agenten wie Claude Code, Cursor, GitHub Copilot und Codex sie ohne manuelle Einrichtung aufnehmen können.
AGENTS.md wird im Wheel ausgeliefert
Dies ist das erste GroupDocs‑Paket, das eine AGENTS.md‑Datei direkt im installierten Wheel bündelt. Die Datei folgt der aufkommenden AGENTS.md‑Konvention — einem reinen Markdown‑README, das speziell für KI‑Coding‑Assistenten und nicht für Menschen geschrieben ist.
Nach pip install groupdocs-markdown-net landet die Datei unter:
site-packages/groupdocs/markdown/AGENTS.md
Ein KI‑Assistent, der Ihr Projekt öffnet, kann sie sofort lesen und lernen:
- Die komplette öffentliche API‑Oberfläche (Klassen, Methoden, Enums, Ausnahmen) und deren Beziehungen.
- Idiomatische Nutzungsmuster für die häufigsten Szenarien — statisch vs. Instanz‑API, sync vs. async, Bildstrategien, Front‑Matter, Fehlerbehandlung.
- Häufige Stolperfallen und deren Vermeidung — z. B. welche
ConvertOptions‑ÜberladungenNoneakzeptieren, wie passwortgeschützte Dateien zu handhaben sind, wie Konvertierungs‑Warnungen zu erfassen sind. - Fehlerbehebung für plattformspezifische Probleme (libSkiaSharp auf macOS, ICU auf Linux).
In der Praxis bedeutet das, Sie können sagen „verwende groupdocs-markdown-net, um diesen Ordner PDFs in Markdown für meine RAG‑Pipeline zu konvertieren“ und der Agent schreibt beim ersten Versuch funktionierenden Code — keine halluzinierten Methodennamen, keine falsche Argumentreihenfolge, keine geratenen Importe.
Maschinell lesbare Dokumentation
Für Agenten, die etwas nachschlagen müssen, das nicht in AGENTS.md steht, wird die komplette Produktdokumentation ebenfalls maschinenlesbar bereitgestellt:
- Einseitiges Korpus — die gesamten Docs als eine zusammengefügte Markdown‑Datei, bereit, in das Kontext‑Fenster eines Agenten geladen zu werden:
https://docs.groupdocs.com/markdown/python-net/llms-full.txt - Pro‑Seite‑Markdown —
.mdan jede Docs‑URL anhängen, um den Roh‑Source zu erhalten:
https://docs.groupdocs.com/markdown/python-net/quick-start-guide.md llms.txt‑Index — ein llms.txt-ähnliches Inhaltsverzeichnis, das Agenten zu den benötigten Seiten führt:
https://docs.groupdocs.com/markdown/python-net/llms.txt
MCP‑Server für Live‑Doc‑Lookups
Für Agenten, die das Model Context Protocol unterstützen, stellen wir die Docs als MCP‑Server bereit. Fügen Sie dies Ihrer Claude Code‑ oder Cursor‑Konfiguration hinzu:
{
"mcpServers": {
"groupdocs-docs": {
"url": "https://docs.groupdocs.com/mcp"
}
}
}
Danach kann Ihr Agent die Dokumentation bei Bedarf abfragen, anstatt sich auf möglicherweise veraltete Trainingsdaten zu verlassen.
Markdown rein, Markdown raus
Hier gibt es eine schöne Symmetrie: Der Ausgabe‑Typ der Bibliothek ist Markdown — das Format, das LLMs für RAG am besten verarbeiten — und ihre Dokumentation ist ebenfalls Markdown, als Einzeldatei für einfache Kontext‑Fenster‑Einspeisung bereitgestellt. Egal, ob Sie einen Agenten bitten, Code zu schreiben, der die Bibliothek verwendet, oder den Agenten bitten, Ihre Dokumente mit der Bibliothek zu verstehen, Markdown ist das gemeinsame Medium.
Export‑Beispiel
Die obigen Snippets kommen dem kürzesten nützlichen Programm, das Sie mit der Bibliothek schreiben können, sehr nahe. Hier dieselbe Idee als lauffähiges Projekt — Quell‑Dokument, Python‑Skript, vorab generierte Ausgabe, requirements.txt und ein Dockerfile — sodass Sie es end‑to‑end ausprobieren können, ohne von Grund auf zu schreiben.
Quell‑DOCX
Die Quelldatei business-plan.docx ist ein kurzer, reich formatierter Business‑Plan mit Überschriften, Tabellen, Bildern und Metadaten.
Python‑Skript
from groupdocs.markdown import MarkdownConverter, ConvertOptions, MarkdownFlavor
def quick_example():
"""Ein Word‑Dokument mit GitHub‑Flavor und YAML‑Front‑Matter nach Markdown konvertieren."""
# Einzeiler — gibt einen Markdown‑String zurück
md = MarkdownConverter.to_markdown("business-plan.docx")
# Mit Optionen — schreibt in eine Datei
options = ConvertOptions()
options.flavor = MarkdownFlavor.GIT_HUB
options.include_front_matter = True
options.heading_level_offset = 1
MarkdownConverter.to_file("business-plan.docx", "quick-example.md", convert_options=options)
if __name__ == "__main__":
quick_example()
Ausgabe‑Markdown
Die quick-example.md‑Ausgabe beginnt mit einem YAML‑Front‑Matter‑Block, der automatisch aus den Dokument‑Metadaten extrahiert wurde, gefolgt vom konvertierten Inhalt mit GitHub‑Flavored‑Tabellen und einer verschobenen Überschriftenhierarchie (bereit, in ein größeres Dokument eingebettet zu werden).
Lauffähige Beispiel‑App
Alles zusammengepackt: sample-app.zip. Entpacken, dann:
cd src
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/macOS: source .venv/bin/activate
pip install -r requirements.txt
python quick_example.py
Oder in Docker ausführen — das mitgelieferte Dockerfile richtet die ICU‑Abhängigkeit ein, die die gebündelte .NET‑Runtime unter Linux benötigt:
cd src
docker build -t groupdocs-markdown-python-example .
docker run --rm -v "$(pwd)/output:/app/output" groupdocs-markdown-python-example
Zusammenfassung
GroupDocs.Markdown für Python via .NET bringt die vollständige Dokument‑zu‑Markdown‑Konvertierungs‑Engine als eigenständiges Wheel zu Python — kein externes Runtime, keine Cloud, keine Überraschungen. Eine pythonische API, Async‑Support und erstklassige KI‑Tool‑Integration machen es zu einer praktischen Wahl für Python‑Teams, die RAG‑Systeme, statische Seitengeneratoren oder Dokument‑Verarbeitungspipelines bauen.
Weiterführende Informationen
- PyPI‑Paket: https://pypi.org/project/groupdocs-markdown-net/
- Produkt‑Startseite: https://products.groupdocs.com/markdown/python-net/
- Dokumentation: https://docs.groupdocs.com/markdown/python-net/
- Release‑Notes: https://releases.groupdocs.com/markdown/python-net/release-notes/
- Code‑Beispiele auf GitHub: https://github.com/groupdocs-markdown/GroupDocs.Markdown-for-Python-via-.NET
- Lizenzinformationen: https://about.groupdocs.com/legal/
- Verwandter .NET‑Release‑Beitrag: GroupDocs.Markdown for .NET — First Public Release
Support & Feedback
Für Fragen oder technische Unterstützung nutzen Sie bitte unser Free Support Forum — wir helfen Ihnen gern.