Zum Inhalt springen
Zurück zum Blog
Montag, 2. November 2026

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.

Markdown stapelweise in PDF: Browser-ZIP, CLI, Pandoc und CI

Die 30-Sekunden-Antwort

Drei typische Batch-Aufgaben:

  1. Eine Markdown-Datei → eine PDF, für viele Dateien wiederholt: md-to-pdf *.md (npm-CLI).
  2. Viele Markdown-Dateien → eine kombinierte PDF (Buch, Mehrkapitel-Bericht): pandoc chapter*.md -o book.pdf.
  3. 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.

Browser-Batch: getrennte PDFs in einem ZIP

Ö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.

Exportiertes Kapitelbeispiel zum Unterschied zwischen Einzeldateien und gemeinsamer PDF

Beispiel-PDF herunterladen

Szenario 1 — N → N (eine PDF pro Markdown-Datei)

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.

Szenario 2 — N → 1 (mehrere .md zu einer PDF)

Für Bücher, technische Berichte, mehrteilige Onboarding-Docs.

Pandoc (am besten für geordnete Kapitel)

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

Verketten und mit md-to-pdf rendern

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.

Szenario 3 — CI/CD (PDF pro Commit)

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.

Häufige Stolperfallen

  1. Bildpfade brechen in der kombinierten PDF. Wenn chapter01.md ./images/a.png aus seinem Verzeichnis referenziert, bricht das Pfad nach Verkettung. Pfade absolut machen, Bilder als Data-URI einbetten oder --resource-path=. bei Pandoc.
  2. Front Matter. Ein späterer YAML-Metadatenblock überschreibt in Pandoc dasselbe Feld eines früheren Blocks. Führe Buchmetadaten bewusst zusammen; siehe die Metadatenregeln.
  3. 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.
  4. 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.
  5. Speicher bei großen Batches. Browserbasiertes Rendering ist ressourcenintensiv. Parallelität begrenzen, Speicher beobachten und sehr große Jobs in fortsetzbare Teile zerlegen.

Wann Web-Tool, wann CLI

  • 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 pdfunite oder qpdf zusammenführen.

Mehr zu Tool-Trade-offs: Markdown-zu-PDF-Methodenvergleich und Code-Highlighting im PDF.

Vorhandene PDFs zusammenführen (wenn Batch separat lief)

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.

Häufige Fragen

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.

Fazit

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 → pdfunite oder qpdf.

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.

Für dieses Update geprüfte Quellen

Produktgrenzen und Befehle wurden anhand dieser aktuellen Primärquellen geprüft:

Workflow ausprobieren

Öffne MarkdownToImage, rendere Markdown und wähle das passende Ausgabeformat. Vor einem Batch zuerst ein repräsentatives Dokument testen.

Browser-Batch starten.

Weiterführende Anleitungen