Files
claude-code-skills-reference/pdf-creator/SKILL.md
daymade 87221d94d5 feat(pdf-creator): add theme system + Chrome backend; add terraform-skill draft
- pdf-creator v1.2.0: theme system (default/warm-terra), dual backend
  (weasyprint/chrome auto-detect), argparse CLI, extracted CSS to themes/
- terraform-skill: operational traps from real deployments (provisioner
  timing, DNS duplication, multi-env isolation, pre-deploy validation)
- asr-transcribe-to-text: add security scan marker

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 23:33:03 +08:00

2.3 KiB

name, description
name description
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.

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.

Theme Font Color Best for
default Songti SC + Heiti SC Black/grey Legal docs, contracts, formal reports
warm-terra PingFang SC Terra cotta (#d97756) + warm neutrals Course 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:

Backend Install Pros Cons
weasyprint pip install weasyprint Precise CSS rendering, no browser needed Requires system libs (cairo, pango)
chrome Google Chrome installed Zero Python deps, great CJK support Larger 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.