Wer schon einmal aus Markdown ein PDF erzeugen wollte, kennt die üblichen Wege: Pandoc, irgendein Online-Konverter, oder selbst mit LaTeX/HTML-CSS hantieren. Es geht — aber selten wird das Ergebnis auf Anhieb so, wie man es sich vorstellt. Layout, Schrift, Titelseite, Inhaltsverzeichnis: alles Extra-Arbeit.
md2pdf ist ein Python-Projekt, das genau dafür gebaut wurde: Markdown in ansehnliche, professionell wirkende PDFs zu verwandeln — ohne Umweg über LaTeX, mit einer klaren CLI und optionalem interaktivem Wizard.
Was md2pdf kann
Im Kern steht ein Befehl: md2pdf convert datei.md. Daraus wird ein PDF, standardmäßig im gleichen Ordner. Darüber hinaus bietet das Tool einiges, was sonst oft fehlt oder mühsam ist:
Themes — Mehrere eingebaute Stile (z. B. default, academic, minimal, corporate, dark, github). Oder ein eigenes Theme als YAML-Datei: Farben, Schriften, Ränder, Kopf- und Fußzeilen konfigurierbar.
Inhaltsverzeichnis — Mit --toc wird automatisch ein TOC aus den Überschriften erzeugt. Nützlich für längere Dokumente und Berichte.
Titelseite — --title-page plus optionale Angaben zu Titel, Autor, Datum. Per Frontmatter im Markdown oder per CLI.
Include-System — Andere Markdown-Dateien einbinden mit ![[dateiname.md]], inklusive Platzhalter und Parameter. Gut für modulare Dokumentation oder wiederkehrende Bausteine.
Watch-Modus — md2pdf watch datei.md beobachtet die Datei (und Includes) und rendert bei Änderungen neu. Praktisch beim Tippen und Feinschliff.
Batch — Mehrere Dateien auf einmal konvertieren, z. B. md2pdf batch "docs/*.md" --output-dir ./pdfs.
Interaktiver Wizard — Einfach md2pdf oder md2pdf interactive starten: Schritt für Schritt Theme wählen, Optionen setzen, bei Bedarf Config speichern. Geeignet, wenn man die CLI-Optionen nicht auswendig lernen will.
Für wen ist es gedacht?
Wer Berichte, Dokumentation oder Handouts in Markdown schreibt und sie als PDF abgeben oder drucken will, ohne sich mit LaTeX oder komplexen Pipelines auseinanderzusetzen. Wer Wert auf ein einheitliches, konfigurierbares Layout legt und optional Titelseite, TOC und Wasserzeichen (z. B. „ENTWURF“) braucht. Und wer eine lokale, skriptbare Lösung sucht — inklusive CI/CD über Umgebungsvariablen oder Config-Datei.
Kurz zur Technik
Installation per pip install aus dem Quellcode, optional mit Symlink für systemweiten Aufruf md2pdf. Die Ausgabe basiert auf WeasyPrint (HTML/CSS zu PDF). Shell-Completion (Bash, Zsh, Fish) und sinnvolle Exit-Codes für Skripte sind mit dabei.
Projekt und Dokumentation: github.com/dgundel/md2pdf.