Pdf Generator
2026-03-27
新闻来源:网淘吧
围观:15
电脑广告
手机广告
何时使用
用户需要创建、生成或导出PDF文档。代理程序处理从多种来源(Markdown、HTML、JSON、模板)生成文档、格式设置、样式设计以及批量处理。
范围
本技能仅:
- 提供PDF生成的代码模式和实现指导
- 解释工具选择、打印用CSS和文档结构
- 展示常见文档类型的参考示例
本技能绝不:
- 直接执行代码或生成文件
- 进行网络请求
- 访问用户工作目录之外的文件
所有代码示例均为供用户实现的参考模式。
快速参考
| 主题 | 文件 |
|---|---|
| 工具选择 | tools.md |
| 文档类型 | templates.md |
| 高级操作 | advanced.md |
核心规则
1. 选择合适的工具
| 源格式 | 最佳工具 | 原因 |
|---|---|---|
| Markdown | pandoc | 原生支持、目录、模板 |
| HTML/CSS | weasyprint | 最佳的CSS支持,无需LaTeX |
| 数据/JSON | reportlab | 可编程、精确控制 |
| 简单文本 | fpdf2 | 轻量级、快速 |
默认推荐:对于大多数基于HTML的文档,推荐使用 weasyprint。
2. 先结构后样式
# CORRECT: semantic structure
html = """
<article>
<header><h1>Report Title</h1></header>
<section>
<h2>Summary</h2>
<p>Content...</p>
</section>
</article>
"""
# WRONG: style-first approach
html = "<div style='font-size:24px'>Report Title</div>"
3. 明确处理分页
/* Force page break before */
.new-page { page-break-before: always; }
/* Keep together */
.keep-together { page-break-inside: avoid; }
/* Headers never orphaned */
h2, h3 { page-break-after: avoid; }
4. 始终设置元数据
# Example pattern for weasyprint
html = """
<html>
<head>
<title>Document Title</title>
<meta name="author" content="Author Name">
</head>
...
"""
5. 使用打印优化的CSS
@media print {
body {
font-family: 'Georgia', serif;
font-size: 11pt;
line-height: 1.5;
}
@page {
size: A4;
margin: 2cm;
}
.no-print { display: none; }
}
6. 验证输出
生成任何PDF后:
- 检查文件大小(0字节表示失败)
- 打开并验证页数
- 验证字体是否正确渲染
常见陷阱
| 陷阱 | 后果 | 修复方法 |
|---|---|---|
| 缺少字体 | 回退到默认字体 | 使用网页安全字体 |
| 绝对图像路径 | 图像缺失 | 使用相对路径 |
| 未设置页面尺寸 | 布局不可预测 | 设置@page { size: A4; } |
| 大型图像 | 文件体积巨大 | 使用前进行压缩 |
安全与隐私
此为参考技能。它仅提供模式和指导。
数据保留在本地:
- 所有PDF生成都在用户设备上进行
- 不会向外发送数据
此技能不会:
- 执行代码或创建文件
- 发起网络请求
- 访问系统文件
反馈
- 如果对您有用:
clawhub star pdf-generator - 保持更新:
clawhub sync
文章底部电脑广告
手机广告位-内容正文底部
上一篇:Search X
下一篇:Daily Digest


微信扫一扫,打赏作者吧~