Markdown stapelweise in PDF: Browser-ZIP, CLI, Pandoc und CI
Exportiere bis zu 15 Markdown-Dateien im Browser als ZIP, automatisiere Einzel-PDFs per CLI oder verbinde Kapitel mit Pandoc.
Auf dieser Seite
01Die 30-Sekunden-Antwort02Szenario 1 — N → N (eine PDF pro Markdown-Datei)03Wann Web-Tool, wann CLIDrei typische Batch-Aufgaben:
- Eine Markdown-Datei → eine PDF, für viele Dateien wiederholt:
md-to-pdf *.md(npm-CLI). - Viele Markdown-Dateien → eine kombinierte PDF (Buch, Mehrkapitel-Bericht):
pandoc chapter*.md -o book.pdf. - Viele Markdown-Dateien → eine PDF pro Commit: GitHub-Actions-Workflow mit der npm-CLI.
Es gibt auch einen Browser-Weg: Batch export erzeugt getrennte Ausgaben ohne CLI-Installation. Die einzelne /markdown-to-pdf-Seite bleibt für ein Dokument geeignet. Entscheide nach Ergebnis zwischen Browser-Batch, lokaler Automation und gemeinsamer PDF.
Öffne Batch export, lade bis zu 15 Markdown-Dateien hoch, wähle PDF und gemeinsame Rendering-Einstellungen und starte den Export. PNG, JPEG, WebP, PDF und DOCX stehen als Ausgabeformate bereit. Die Funktion ist kostenpflichtig; Creator enthält 20 Batch-Läufe pro Monat.
Das ZIP enthält eine Ausgabe pro erfolgreicher Eingabe. Prüfe bei einer fehlgeschlagenen Datei die zugehörige .error.txt, statt den ganzen Batch als erfolgreich anzusehen. Sobald mindestens eine Datei gelingt, wird ein Batch-Lauf verbraucht. Ein ZIP mit 15 PDFs bleibt eine Sammlung von 15 Dokumenten und ist kein gemeinsames Buch.
Nutze das folgende Beispiel als eine Eingabedatei. Vergleiche Überschrift, Checkliste und Schlussnotiz mit Vorschau und PDF und prüfe dann auch alle übrigen Dateien.
# Chapter 01: export checks
## Scope
This sample represents one source file in a multi-file export.
- Keep one output per input file
- Check every generated file
- Inspect the ZIP for error notes
> A ZIP of PDFs is different from one merged PDF.
Einfachster Fall. Sie haben chapter01.md, chapter02.md ... und wollen chapter01.pdf, chapter02.pdf ...
npm install -g md-to-pdf
md-to-pdf 'chapters/*.md'
Fertig — standardmäßig schreibt es eine .pdf neben jede .md. Ein Stylesheet für das Aussehen:
md-to-pdf 'chapters/*.md' --stylesheet ./style.css
Für hunderte Dateien parallelisieren:
find chapters -name '*.md' -print0 | xargs -0 -P 4 -I {} md-to-pdf '{}'
Mit niedriger Parallelität beginnen und unter Beobachtung von CPU und Speicher erhöhen; jeder Worker kann einen Browserprozess starten.
Für Bücher, technische Berichte, mehrteilige Onboarding-Docs.
pandoc chapter01.md chapter02.md chapter03.md -o book.pdf
Stolperfalle: die Reihenfolge der Dateinamen zählt. Pandoc verkettet in Argumentreihenfolge, nicht alphabetisch — Shell-Expansion bewusst nutzen:
pandoc chapter*.md -o book.pdf # alphabetical order, fine if you've zero-padded
Mit Inhaltsverzeichnis:
pandoc chapter*.md --toc -o book.pdf
Kapitelgliederung wählen und eine passende PDF-Engine und Vorlage prüfen:
pandoc chapter*.md --toc --top-level-division=chapter -o book.pdf
Ohne Pandoc: erst zusammenführen.
: > combined.md
for f in chapter*.md; do
cat "$f" >> combined.md
printf '\n\n<div style="page-break-before: always;"></div>\n\n' >> combined.md
done
md-to-pdf combined.md
Das eingefügte HTML ist ein Umbruchhinweis für die hier verwendete HTML/Chromium-Strecke. Prüfe die erzeugte PDF; Markdown-Konverter interpretieren rohes HTML und Druck-CSS nicht alle gleich.
GitHub-Actions-Workflow für PDFs auf jeden Push nach main:
# .github/workflows/build-pdfs.yml
name: Build PDFs
on:
push:
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- run: npm install -g md-to-pdf
- run: md-to-pdf 'docs/**/*.md'
- uses: actions/upload-artifact@v4
with:
name: pdfs
path: 'docs/**/*.pdf'
Führt md-to-pdf auf alle Markdowns unter docs/ aus, lädt PDFs als Build-Artifact hoch. Auf Tag-Push umstellen, um sie an Releases zu hängen.
- Bildpfade brechen in der kombinierten PDF. Wenn
chapter01.md./images/a.pngaus seinem Verzeichnis referenziert, bricht das Pfad nach Verkettung. Pfade absolut machen, Bilder als Data-URI einbetten oder--resource-path=.bei Pandoc. - Front Matter. Ein späterer YAML-Metadatenblock überschreibt in Pandoc dasselbe Feld eines früheren Blocks. Führe Buchmetadaten bewusst zusammen; siehe die Metadatenregeln.
- Seitenzahlen.
--top-level-division=chapterändert den Gliederungstyp, nicht die Seitenzählung. Konfiguriere diese in Engine und Vorlage und prüfe die PDF; siehe Gliederungsoptionen. - Unicode- und CJK-Schriften. Bei Pandoc mit XeLaTeX eine installierte Schrift explizit setzen, etwa
--pdf-engine=xelatex -V mainfont:"Source Han Serif CN". Lokale Chromium-Tools nutzen Fonts ihrer Runtime; gehostete Renderer mit echten Zeichen testen. - Speicher bei großen Batches. Browserbasiertes Rendering ist ressourcenintensiv. Parallelität begrenzen, Speicher beobachten und sehr große Jobs in fortsetzbare Teile zerlegen.
- Ein Dokument →
/markdown-to-pdf. - Bis zu 15 Dateien mit gemeinsamen Einstellungen → kostenpflichtiger Batch export.
- Bei jedem Commit neu bauen → CLI in CI.
- Ein Buch mit geordneten Kapiteln → Pandoc mit
--top-level-division=chapter --toc. - Vorhandene PDFs mit unterschiedlichen Layouts → mit
pdfuniteoderqpdfzusammenführen.
Mehr zu Tool-Trade-offs: Markdown-zu-PDF-Methodenvergleich und Code-Highlighting im PDF.
Wenn einzelne PDFs vorliegen, wähle nach den Erhaltungsanforderungen zwischen Seitenmontage und PDF-Neuschreibung:
# pdfunite (poppler-utils)
pdfunite chapter01.pdf chapter02.pdf chapter03.pdf book.pdf
# or qpdf
qpdf --empty --pages chapter*.pdf -- book.pdf
# or ghostscript
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -sOutputFile=book.pdf chapter*.pdf
Nutze pdfunite oder qpdf zur Seitenmontage. Ghostscript pdfwrite erzeugt eine neue PDF, keine verlustfreie Verkettung. Prüfe danach Schriften, Links, Lesezeichen und Bildkompression; siehe Gerätedokumentation.
Kann ich im Browser stapelweise exportieren?
Für mehrere Dateien bietet Batch export einen kostenpflichtigen Browser-Weg: bis zu 15 Markdown-Dateien pro Lauf, ein ZIP mit einer Ausgabe je Eingabe. Creator enthält 20 Läufe pro Monat. PDF erzeugt getrennte PDFs; für ein gemeinsames Dokument eignet sich Pandoc.
Wie behalte ich Code-Highlighting in allen Dateien des Batches?
Die CLI übernimmt das via --stylesheet. Selbes Theme überall für Konsistenz. Mehr in Markdown zu PDF mit Code-Highlighting.
Maximalgröße einer kombinierten PDF?
Es gibt kein universelles Seitenlimit: Arbeitsspeicher, Bilder, Schriften, Renderer und PDF-Viewer wirken zusammen. Große Beispieldokumente testen, CI-Timeouts setzen und sehr große Handbücher in Bände teilen.
Bewahrt Pandoc Mermaid-Diagramme im Batch?
Prüfe den Renderer, statt anzunehmen, dass Mermaid-Blöcke automatisch zu Diagrammen werden. Bereite sie für die lokalen Rezepte als Bilddateien vor oder richte unterstützte Vorverarbeitung ein. Prüfe die PDF auf fehlende oder abgeschnittene Diagramme.
Das richtige Batch-Tool hängt davon ab, was Sie produzieren:
- Getrennte Dateien im ZIP → kostenpflichtiger Batch export.
- Skriptgesteuerte Einzel-PDFs →
md-to-pdf '*.md'. - Ein Buch aus mehreren Dateien →
pandoc chapter*.md --toc -o book.pdf. - Fortlaufender Build → GitHub Actions + CLI.
- Vorhandene PDFs →
pdfuniteoderqpdf.
Für gelegentliche Dateigruppen beginne mit Browser-Batch und prüfe das ZIP. Die PDFs werden dabei nicht zu einem Dokument zusammengeführt. Dafür nutze das geordnete Pandoc-Rezept oben oder ein Werkzeug zum Zusammenführen vorhandener PDFs.
Produktgrenzen und Befehle wurden anhand dieser aktuellen Primärquellen geprüft:
Öffne MarkdownToImage, rendere Markdown und wähle das passende Ausgabeformat. Vor einem Batch zuerst ein repräsentatives Dokument testen.