md2pdf
4
总安装量
4
周安装量
#53287
全站排名
安装命令
npx skills add https://github.com/aicoder2048/story-writer --skill md2pdf
Agent 安装分布
claude-code
4
opencode
2
antigravity
2
codex
2
mcpjam
1
iflow-cli
1
Skill 文档
Markdown to PDF Converter
Convert Markdown to PDF with Chinese font support and customizable styling.
Quick Start
The script uses uv inline metadata – no manual dependency installation needed:
# Basic conversion (uv auto-installs dependencies)
uv run scripts/md2pdf.py input.md output.pdf
# With custom CSS
uv run scripts/md2pdf.py input.md output.pdf --style assets/vintage-paper.css
# With custom title
uv run scripts/md2pdf.py input.md output.pdf --title "Chapter Title"
# Or make executable and run directly
chmod +x scripts/md2pdf.py
./scripts/md2pdf.py input.md output.pdf
Note: On macOS, the script automatically configures Homebrew library paths.
Available Styles
Two pre-built styles in assets/:
| Style | File | Description |
|---|---|---|
| Vintage Paper | vintage-paper.css |
Warm cream background, brown text, serif fonts. Ideal for stories and literature. |
| Modern Clean | modern-clean.css |
White background, dark text, sans-serif fonts. Ideal for technical documents. |
Default Style Features
The built-in default style (vintage paper) includes:
- Background: Warm cream (#FAF6F0)
- Text color: Dark brown (#4A3728)
- Heading color: Darker brown (#3D2B1F)
- Font: Chinese serif (Noto Serif SC, Songti SC)
- Line height: 1.8
- Paragraph indent: 2em (Chinese style)
- Page footer: Page numbers
Customization
To customize styling, copy an existing CSS file and modify:
@page {
size: A4; /* Paper size */
margin: 2.5cm 2cm; /* Page margins */
background-color: #FAF6F0; /* Page background */
}
body {
font-family: "Noto Serif SC", serif; /* Font stack */
font-size: 12pt; /* Base font size */
line-height: 1.8; /* Line spacing */
color: #4A3728; /* Text color */
}
Chinese Font Priority
The converter uses this font fallback chain:
- Noto Serif SC (Google Noto fonts)
- Source Han Serif SC (Adobe fonts)
- Songti SC (macOS)
- STSong (macOS)
- SimSun (Windows)
Ensure at least one of these fonts is installed on the system.
Script API
from md2pdf import convert_md_to_pdf
convert_md_to_pdf(
input_path="chapter.md",
output_path="chapter.pdf",
custom_css="assets/vintage-paper.css", # Optional
title="Chapter 1" # Optional
)
Troubleshooting
WeasyPrint system dependencies
# macOS (library path is auto-configured by script)
brew install pango
# Ubuntu/Debian
sudo apt install libpango-1.0-0 libpangocairo-1.0-0
Missing Chinese fonts
# macOS
brew install font-noto-serif-cjk-sc
# Ubuntu/Debian
sudo apt install fonts-noto-cjk