PDF → Markdown (MinerU)
Konvertiert PDFs in sauberes, strukturerhaltendes Markdown mit MinerU
(opendatalab/MinerU), der hochwertigsten Open-Source-Engine für wissenschaftliche
Arbeiten. Läuft die Pipeline-Backend auf der GPU (CUDA). Die Ausgabe bewahrt
die Überschriftenhierarchie, inline-LaTeX-Mathematik ($...$), Abbildungen und Tabellen (als HTML).
Wann verwenden
- Der Benutzer bittet darum, „dieses PDF in Markdown (oder Text) zu konvertieren/extrahieren/umzuwandeln.“
- Am besten geeignet: wissenschaftliche Arbeiten – mehrspaltige Layouts, LaTeX-Mathematik, Tabellen, Referenzen.
- Verarbeitet auch Bilder,
.docx,.pptx,.xlsx(Datei direkt übergeben).
Wie ausführen
MinerU lebt in einer dedizierten isolierten Umgebung und wird über den gebündelten
Wrapper convert.py gesteuert, der MinerUs Python-API im gleichen Prozess aufruft.
Verwenden Sie hier nicht das CLI
mineru– in Version 3.4.0 startet es einen lokalen API-Server, der auf Windows502 Bad Gatewayzurückgibt. Der Wrapper umgeht das.
"$MINERU_PYTHON" \
"<SKILLS_DIR>/pdf-to-markdown/convert.py" \
"<input.pdf>" "<output_dir>" --lang de
- Argument 1 – Eingabedatei (pdf/image/docx/pptx/xlsx).
- Argument 2 – Ausgabeverzeichnis.
--lang– OCR-Sprachhinweis:enfür Englisch,chfür Chinesisch/gemischt (Standardch, verarbeitet auch Englisch). Betrifft nur OCR-te (gescannte) Seiten.- Das Skript gibt bei Erfolg
DONE -> <pfad zur .md>aus.
Ausgabelayout
<output_dir>/<name>/auto/<name>.md # das Markdown
<output_dir>/<name>/auto/images/ # extrahierte Abbildungen (aus der md referenziert)
<output_dir>/<name>/auto/<name>_*.json # Layout-/Inhaltsmetadaten (können ignoriert werden)
Nach der Konvertierung
- Lesen Sie den ausgegebenen Pfad
DONE -> ...mdund melden Sie ihn dem Benutzer. - Optional eine kurze Vorschau anzeigen (Titel + erste Überschriften).
- Hinweisen, wo extrahierte Bilder geschrieben wurden.
- Die Qualität ist normalerweise hoch: Überschriften als
#, inline-Mathematik als$...$, Tabellen als<table>-HTML (mit LaTeX in Zellen). Falls ein gescanntes PDF verstümmelt erscheint, erneut mit--method ocrausführen.
Vorbereitung / Einrichtung (nur wenn etwas fehlt)
- Interpreter mit MinerU (Umgebungsvariable
MINERU_PYTHON, Standardpython). - CUDA überprüfen:
$MINERU_PYTHON -c "import torch; print(torch.cuda.is_available())"→True. - Modelle sind bereits heruntergeladen nach
~/.cache/huggingface/hub/(einmalig).
Falls die Umgebung fehlt, neu erstellen (zuerst uv installieren, falls nötig):
uv venv --python 3.12 "<your-env>"
uv pip install --python "<your-env>/Scripts/python.exe" torch torchvision --index-url https://download.pytorch.org/whl/cu124
uv pip install --python "<your-env>/Scripts/python.exe" -U "mineru[core]"
"<your-env>/Scripts/mineru-models-download.exe" -s huggingface -m pipeline
Dann setzen Sie MINERU_PYTHON auf <your-env>/Scripts/python.exe (Windows) oder
<your-env>/bin/python (macOS/Linux). Auf macOS/Linux heißt das Modell-Download-Binary
mineru-models-download (ohne .exe-Suffix).
Fehlerbehebung
cuda.is_available()ist False → Torch neu installieren vomcu124-Index (siehe Einrichtung). Die Pipeline läuft notfalls auch auf der CPU, nur langsamer.- Modell-Download fehlgeschlagen/langsam →
mineru-models-downloaderneut ausführen mit-s modelscope. - Gescanntes PDF verstümmelt →
--method ocrzum Aufruf vonconvert.pyhinzufügen. vlm-engine/hybrid-engineBackends → diese benötigen vLLM/SGLang (Linux); sie führen auf Windows zu 502. Verwenden Sie das Standard-pipeline-Backend, das vom Wrapper genutzt wird.
Leichter Fallback (einfache / Office-Dokumente)
Für Nicht-Paper-Dateien, bei denen Layoutgenauigkeit nicht wichtig ist, ist Microsofts MarkItDown schneller und einfacher – aber es zerstört zweispaltige PDFs und Tabellen, daher für wissenschaftliche Arbeiten MinerU bevorzugen:
"$MINERU_PYTHON" -m pip install markitdown
"$MINERU_PYTHON" -m markitdown "<input>" > out.md