CtrlK
BlogDocsLog inGet started
Tessl Logo

pdf-creator

Create PDF documents from markdown with proper Chinese font support. Supports theme system (default for formal docs, warm-terra for training materials) and dual backend (weasyprint or Chrome). Triggers include "convert to PDF", "generate PDF", "markdown to PDF", or any request for creating printable documents.

92

Quality

89%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

SKILL.md
Quality
Evals
Security

PDF Creator

Create professional PDF documents from markdown with Chinese font support and theme system.

Quick Start

# Default theme (formal: Songti SC + black/grey)
uv run --with weasyprint scripts/md_to_pdf.py input.md output.pdf

# Warm theme (training: PingFang SC + terra cotta)
uv run --with weasyprint scripts/md_to_pdf.py input.md --theme warm-terra

# No weasyprint? Use Chrome backend (auto-detected if weasyprint unavailable)
python scripts/md_to_pdf.py input.md --theme warm-terra --backend chrome

# List available themes
python scripts/md_to_pdf.py --list-themes dummy.md

Themes

Stored in themes/*.css. Each theme is a standalone CSS file.

ThemeFontColorBest for
defaultSongti SC + Heiti SCBlack/greyLegal docs, contracts, formal reports
warm-terraPingFang SCTerra cotta (#d97756) + warm neutralsCourse outlines, training materials, workshops

To create a new theme: copy themes/default.css, modify, save as themes/your-theme.css.

Backends

The script auto-detects the best available backend:

BackendInstallProsCons
weasyprintpip install weasyprintPrecise CSS rendering, no browser neededRequires system libs (cairo, pango)
chromeGoogle Chrome installedZero Python deps, great CJK supportLarger binary, slightly less CSS control

Override with --backend chrome or --backend weasyprint.

Batch Convert

uv run --with weasyprint scripts/batch_convert.py *.md --output-dir ./pdfs

Troubleshooting

Chinese characters display as boxes: Ensure Chinese fonts are installed (Songti SC, PingFang SC, etc.)

weasyprint import error: Run with uv run --with weasyprint or use --backend chrome instead.

Chrome header/footer appearing: The script passes --no-pdf-header-footer. If it still appears, your Chrome version may not support this flag — update Chrome.

Repository
daymade/claude-code-skills
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.