PDF Creator
Create professional PDF documents from markdown with proper Chinese font support.
Quick Start
Convert a single markdown file:
uv run --with weasyprint --with markdown scripts/md_to_pdf.py input.md output.pdf
Batch convert multiple files:
uv run --with weasyprint --with markdown scripts/batch_convert.py *.md --output-dir ./pdfs
macOS Environment Setup
If encountering library errors, set these environment variables first:
export DYLD_LIBRARY_PATH="/opt/homebrew/lib:$DYLD_LIBRARY_PATH"
export PKG_CONFIG_PATH="/opt/homebrew/lib/pkgconfig:$PKG_CONFIG_PATH"
Font Configuration
The scripts use these Chinese fonts (with fallbacks):
| Font Type | Primary | Fallbacks | |-----------|---------|-----------| | Body text | Songti SC | SimSun, STSong, Noto Serif CJK SC | | Headings | Heiti SC | SimHei, STHeiti, Noto Sans CJK SC |
Output Specifications
- Page size: A4
- Margins: 2.5cm top/bottom, 2cm left/right
- Body font: 12pt, 1.8 line height
- Max file size: Designed to stay under 2MB for form submissions
Common Use Cases
- Legal documents: Trademark filings, contracts, evidence lists
- Reports: Business reports, technical documentation
- Formal letters: Official correspondence requiring print format
Troubleshooting
Problem: Chinese characters display as boxes Solution: Ensure Songti SC or other Chinese fonts are installed on the system
Problem: weasyprint import error
Solution: Run with uv run --with weasyprint --with markdown to ensure dependencies