CommunityBildgithub.com

Moonwalker1307/pdfpecker

PDF-Dokumente aus HTML oder Markdown erstellen und überprüfen, vorhandene PDFs als Text oder Seitenbilder auslesen und PDFs zusammenführen – mit dem Python-Paket pdfpecker (ohne Browser, etwa eine Millisekunde pro Seite). Nutzen Sie dies, wenn der Benutzer ein PDF wünscht, wie Rechnung, Bericht, Brief, Zertifikat, Ticket, Etikett, Lebenslauf oder ein Markdown-Dokument als PDF, oder Vorschau, Lesen, Seitenzählung oder Zusammenführung von PDFs benötigt.

Was ist pdfpecker?

pdfpecker ist ein Python-basiertes Tool zur schnellen und browserlosen PDF-Erstellung aus HTML/CSS oder Markdown. Es konvertiert nicht nur Dokumente in PDF, sondern ermöglicht auch das Rendern von PDF-Seiten als Bilder zur visuellen Überprüfung, das Extrahieren von Text oder Markdown, das Zählen von Seiten und das Zusammenführen mehrerer PDFs. Das Skill unterstützt Plattformen wie Claude Code, Cursor und Codex. Der Arbeitsablauf folgt einem einfachen Zyklus: HTML/Markdown schreiben, konvertieren, mit der Vorschau als Bild überprüfen, korrigieren und erneut konvertieren. Es integriert moderne CSS-Features wie Flexbox, Grid, @page-Regeln und @font-face, benötigt aber kein JavaScript und lädt keine Netzwerkressourcen – alle Bilder, Schriftarten und Stylesheets müssen lokal oder als data:URI vorliegen. Ein Hilfsskript (scripts/pdf.py) vereinfacht die wichtigsten Aufgaben über die Kommandozeile, während die Python-API direkte Funktionen für erweiterte Anwendungen bereitstellt.

Funktioniert mit✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Moonwalker1307/PdfPecker.Skills/tree/HEAD/plugins/pdfpecker/skills/pdfpecker

Installed? Explore more Bild skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

PDFs erstellen und lesen mit pdfpecker

pdfpecker wandelt HTML und CSS (oder Markdown) ohne Browser in ein PDF um und rendert PDF-Seiten zurück in Bilder, damit Sie sehen können, was Sie erstellt haben. Gehen Sie in dieser Reihenfolge vor: HTML schreiben, konvertieren, die Seiten ansehen, korrigieren, erneut konvertieren.

Einrichtung

python3 -c "import pdfpecker" 2>/dev/null || python3 -m pip install --quiet pdfpecker

Das Hilfsskript ist scripts/pdf.py im Ordner dieses Skills (in Claude Code: ${CLAUDE_SKILL_DIR}/scripts/pdf.py). Es kapselt das Paket, sodass Sie für die üblichen Aufgaben kein eigenes Python benötigen:

python3 scripts/pdf.py html invoice.html invoice.pdf          # Bilder und CSS werden relativ zur HTML-Datei aufgelöst
python3 scripts/pdf.py md notes.md notes.pdf --page-size Letter
python3 scripts/pdf.py preview invoice.pdf --dpi 80           # schreibt invoice-page-1.png, … und gibt die Pfade aus
python3 scripts/pdf.py text report.pdf --pages 1-2
python3 scripts/pdf.py markdown report.pdf report.md          # jedes PDF als Markdown, Tabellen und Listen bleiben erhalten
python3 scripts/pdf.py info report.pdf                        # Seitenanzahl
python3 scripts/pdf.py merge all.pdf cover.pdf report.pdf

Führen Sie python3 scripts/pdf.py <befehl> --help für jede Option aus. Von Python aus sind die gleichen Aufrufe pdfpecker.html_to_pdf(html, base_dir=...), html_file_to_pdf(pfad, ausgabe), markdown_to_pdf(text), pdf_to_images(pdf, dpi=80), pdf_to_text(pdf), pdf_to_markdown(pdf), pdf_page_count(pdf), merge_pdfs([...]) und pdf_to_pdfa(pdf, "ausgabe.pdf") (ein vorhandenes PDF in PDF/A für die Archivierung).

Das HTML schreiben

Beginnen Sie mit einer Vorlage, wenn eine passt: templates/invoice.html (einseitige Rechnung mit einer Tabellenposition) und templates/report.html (mehrseitiger Bericht mit Deckblatt, Seitenzahlen, einer Tabelle mit wiederholtem Kopf und einem Diagramm in SVG). Kopieren Sie sie neben Ihre Ausgabe und bearbeiten Sie sie.

Setzen Sie das Seitenlayout in CSS, nicht in Optionen:

@page {
  size: A4;                      /* oder Letter, A5, "A4 landscape", 210mm 99mm */
  margin: 18mm 16mm 20mm;
  @bottom-center { content: "Seite " counter(page) " von " counter(pages); font: 9pt sans-serif; color: #666; }
}
@page :first { @bottom-center { content: none; } }
h2 { break-after: avoid; }        /* eine Überschrift mit dem Nachfolgenden zusammenhalten */
tr, figure, .card { break-inside: avoid; }
.new-page { break-before: page; }
thead { display: table-header-group; }   /* wird auf jeder Seite wiederholt (Standard für <thead>) */

Was Sie wissen sollten (Details in reference.md):

  • Kein JavaScript. Skripte werden nicht ausgeführt. Zeichnen Sie Diagramme als Inline-SVG oder CSS (Balken als proportionierte <div>-Elemente) und füllen Sie Daten vor der Konvertierung ein.
  • Kein Netzwerk. Bilder, Stylesheets und Schriftarten werden aus dem Ordner der HTML-Datei (base_dir) oder über data:-URIs geladen, niemals von http(s)-URLs. Laden Sie zuerst herunter, was Sie benötigen, oder betten Sie es ein.
  • Schriftarten. Ohne eigene Schriftarten verwendet der Text Helvetica (sans-serif, Arial), Times (serif) und Courier (monospace) mit integrierten Fallbacks, die Lateinisch, Griechisch und Kyrillisch abdecken. Chinesisch, Japanisch, Koreanisch, Arabisch, Hebräisch, Hindi, Thai und andere Schriften erscheinen als ?, wenn Sie keine Schriftart mit diesen Zeichen übergeben: --font NotoSansSC-Regular.otf (oder --system-fonts zur Verwendung der auf dem Rechner installierten Schriftarten). Verwenden Sie @font-face mit einem relativen src für eine bestimmte Schriftart.
  • Modernes CSS funktioniert: flexbox, grid, Tabellen, floats, mehrspaltig, Positionierung, Transformationen, Verläufe, Schatten, abgerundete Ecken, object-fit, SVG, Webschriften, Zähler und CSS-Variablen. Gestalten Sie wie für die Druckvorschau von Chrome; PdfPecker folgt dem Layout von Chrome.
  • Einheiten. Verwenden Sie mm, pt oder px (96 px pro Zoll). A4-Inhaltsbreite mit 16 mm Rändern beträgt 178 mm (ca. 673 px).

Das Ergebnis überprüfen

Sehen Sie sich die Seiten immer an, bevor Sie ein PDF übergeben: führen Sie preview aus und betrachten Sie die PNGs. Überprüfen Sie auf abgeschnittenen Text oder Text, der die Seite verlässt, eine Tabelle oder Überschrift, die schlecht über Seiten geteilt ist, eine einsame letzte Zeile auf einer neuen Seite, leere Seiten, ? anstelle von Buchstaben (fehlende Schriftart) und nicht geladene Bilder (falscher Pfad). text bestätigt den Wortlaut und die Reihenfolge. Korrigieren Sie HTML oder CSS, konvertieren Sie erneut und sehen Sie noch einmal nach.

Fehler

Das Skript wird mit Exit-Status 1 beendet und gibt den Grund aus. Von Python aus ist jeder Fehler ein pdfpecker.PdfPeckerError: PdfPeckerArgumentError für eine falsche Option, PdfReadError für eine Datei, die kein lesbares PDF ist, PdfPasswordError, PdfLimitError (zu viele Seiten), PdfTimeoutError und PdfFileError für eine nicht lesbare Schriftart oder Datei.

Verwandte Skills