用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/johnalbertini14-glitch/openclaw-skills --skill md2pdf命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Use this skill to create a Polymarket wallet for your agent and trade on prediction markets. Browse markets, place bets, manage positions — all without exposing private keys.
ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated malicious-skill response, and guided setup for additional security skills.
Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports.
正在显示 SKILL.md
基于 SOC 职业分类
| name | md2pdf |
| description | Markdown 转 PDF 技能。将 Markdown 文件转换为精美的 PDF 文档,完美支持中文、代码高亮、自定义样式。 |
| metadata | {"openclaw":{"requires":{"bins":["python3"],"python":["markdown","weasyprint"]}}} |
将 Markdown 文件转换为精美的 PDF 文档,支持中文、代码高亮、自定义样式。
完美支持中文,无需 LaTeX,自动处理依赖!
# 转换 Markdown 为 PDF(推荐)
bash /root/.openclaw/workspace/skills/md2pdf/scripts/convert-weasyprint.sh input.md
# 指定输出文件名
bash /root/.openclaw/workspace/skills/md2pdf/scripts/convert-weasyprint.sh input.md output.pdf
适合场景: 需要完美中文显示、专业排版
# 使用 Bash 脚本(自动处理依赖)
bash scripts/convert-weasyprint.sh document.md
# 指定输出文件
bash scripts/convert-weasyprint.sh document.md output.pdf
# 直接使用 Python 脚本
python3 scripts/convert-weasyprint.py input.md output.pdf
适合场景: 已安装 LaTeX 环境
bash scripts/convert.sh input.md output.pdf
适合场景: 需要在浏览器中打印
bash scripts/convert-simple.sh input.md output.pdf
推荐使用 - WeasyPrint 方案,完美支持中文。
特性:
用法:
bash scripts/convert-weasyprint.sh <输入.md> [输出.pdf]
参数:
输入.md (必需): Markdown 文件路径输出.pdf (可选): PDF 输出路径(默认:输入文件名.pdf)示例:
# 转换单个文件
bash scripts/convert-weasyprint.sh README.md
# 指定输出路径
bash scripts/convert-weasyprint.sh README.md /tmp/readup.pdf
# 批量转换
for md in *.md; do
bash scripts/convert-weasyprint.sh "$md"
done
Python 转换脚本,被 convert-weasyprint.sh 调用,也可直接使用。
用法:
python3 scripts/convert-weasyprint.py <输入.md> [输出.pdf]
功能:
Pandoc 传统方案(需要 LaTeX)。
用法:
bash scripts/convert.sh <输入.md> [输出.pdf]
前置要求:
pandocxelatex (LaTeX)简化版,生成 HTML 供浏览器打印。
用法:
bash scripts/convert-simple.sh <输入.md> [输出.pdf]
使用 Python 的 WeasyPrint 库进行转换:
# 1. Markdown → HTML
html_content = markdown.markdown(
md_content,
extensions=['tables', 'fenced_code', 'nl2br', 'sane_lists']
)
# 2. HTML + CSS → PDF
HTML(string=html_content).write_pdf(
output_file,
stylesheets=[CSS(string='...')]
)
CSS 样式特性:
使用 pandoc 的 LaTeX 引擎:
pandoc input.md -o output.pdf \
--pdf-engine=xelatex \
-V CJKmainfont="Noto Sans CJK SC" \
-V geometry:margin=2cm
# 自动安装(首次运行时)
python3 -m pip install markdown weasyprint
# 自动安装(首次运行时)
yum install -y google-noto-sans-cjk-fonts
# CentOS/RHEL
yum install -y pandoc
# Ubuntu/Debian
apt-get install -y pandoc
解决方案(WeasyPrint):
# 安装中文字体
yum install -y google-noto-sans-cjk-fonts
# 验证字体
fc-list | grep "Noto Sans CJK"
解决方案(Pandoc):
# 安装中文字体
yum install -y google-noto-sans-cjk-sc-fonts
# 使用 xelatex
pandoc input.md -o output.pdf --pdf-engine=xelatex -V CJKmainfont="Noto Sans CJK SC"
解决方案:
# 安装 Python 依赖
python3 -m pip install markdown weasyprint
# 验证安装
python3 -c "import markdown, weasyprint; print('OK')"
解决方案:
# 清除字体缓存
fc-cache -fv
# 重新安装字体
yum reinstall -y google-noto-sans-cjk-fonts
原因: WeasyPrint 会嵌入完整字体
解决方案:
# 创建测试文件
cat > test.md << 'EOF'
# 测试文档
这是中文测试文档。
## 功能列表
- 支持 Markdown
- 代码高亮
- 表格样式
| 列1 | 列2 |
|-----|-----|
| A | B |
\`\`\`python
print("Hello, World!")
\`\`\`
EOF
# 转换为 PDF
bash scripts/convert-weasyprint.sh test.md
# 转换目录下所有 Markdown 文件
for file in *.md; do
echo "转换: $file"
bash scripts/convert-weasyprint.sh "$file"
done
#!/bin/bash
# 自动转换脚本
INPUT_DIR="/path/to/markdown/files"
OUTPUT_DIR="/path/to/pdf/output"
mkdir -p "$OUTPUT_DIR"
for md in "$INPUT_DIR"/*.md; do
output="$OUTPUT_DIR/$(basename "$md" .md).pdf"
bash /root/.openclaw/workspace/skills/md2pdf/scripts/convert-weasyprint.sh "$md" "$output"
done
编辑 scripts/convert-weasyprint.py 中的 CSS 字符串:
css = CSS(string='''
/* 修改字体大小 */
body {
font-size: 12pt; /* 默认 11pt */
}
/* 修改主色调 */
h1, h2 {
color: #e74c3c; /* 改为红色 */
}
/* 修改代码块背景 */
pre {
background-color: #34495e; /* 深色主题 */
}
''')
修改 HTML 模板以添加页眉、页脚等:
full_html = f"""
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>{title}</title>
</head>
<body>
<header>
<h1>我的公司</h1>
</header>
{html_content}
<footer>
<p>机密文档</p>
</footer>
</body>
</html>
"""
# 并行转换
ls *.md | parallel -j 4 bash scripts/convert-weasyprint.sh {}
feishu-doc: 飞书文档操作feishu-drive: 飞书云文件管理md2pdf: Markdown 转 PDF(本技能)Q: WeasyPrint 和 Pandoc 哪个更好?
A: 推荐使用 WeasyPrint:
Pandoc 适合已有 LaTeX 环境的场景。
Q: 可以在 Docker 中使用吗?
A: 可以,但需要安装字体:
FROM python:3.11
RUN pip install markdown weasyprint
RUN apt-get update && apt-get install -y fonts-noto-cjk
Q: 支持数学公式吗?
A: WeasyPrint 不直接支持,可以:
MIT License
作者: 小美 ⭐ 最后更新: 2026-02-16 推荐方案: WeasyPrint (convert-weasyprint.sh)