关于 kimi-pdf
kimi-pdf 是处理 PDF 创建与操作的技能,面向需要生成 PDF 或处理现有文件的用户。它按任务选择 HTML、LaTeX 或处理流程,并通过统一命令行脚本执行操作。
主要功能
- 01通过 HTML 创建 PDF
- 02按需使用 LaTeX 流程
- 03提取文本和表格
- 04合并 PDF 与填写表单
- 05转换 Office 文件并处理页面
适用场景
- 01生成报告或学术文档 PDF
- 02按要求使用 LaTeX 编译 PDF
- 03从现有 PDF 提取文本与表格
- 04合并 PDF 或填写表单
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ thvroyal/ kimi-skills --skill kimi-pdf安装后在 Claude Code 中输入/kimi-pdf确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
routes/html.mdlatex.mdprocess.mdscripts/browser_helper.jscmd_convert.pycmd_extract.pycmd_form.pycmd_meta.pycmd_pages.pycompile_latex.pyhtml_to_pdf.jspackage-lock.jsonpackage.jsonpdf.pypdf.shsetup.sh详细介绍
路由选择
| 路由 | 触发条件 | 路由文件 |
|---|---|---|
| HTML(默认) | 所有 PDF 创建请求 | routes/html.md |
| LaTeX | 用户明确要求 LaTeX、.tex 或 Tectonic | routes/latex.md |
| Process | 处理现有 PDF(提取、合并、填写表单等) | routes/process.md |
默认使用 HTML。 只有用户明确要求时,才使用 LaTeX 路由。
强制要求:实施前阅读路由文件
编写任何代码前,必须先阅读相应的路由文件。 路由文件包含此处未重复的关键实施细节。 跳过此步骤会导致输出错误(脚本错误、缺少 CSS、布局损坏)。实施前,必须:
- 确定路由(HTML / LaTeX / Process)
- 阅读路由文件(
routes/html.md、routes/latex.md或routes/process.md) - 然后才能开始实施
此文件(SKILL.md)包含约束和原则。路由文件包含具体操作方法。
决策规则
路由选择
| 用户表述 | 路由 |
|---|---|
| “创建 PDF”“制作报告”“撰写论文” | HTML |
| “使用 LaTeX”“编译 .tex”“使用 Tectonic” | LaTeX |
| “从 PDF 中提取文本”“合并这些 PDF”“填写此表单” | Process |
封面样式选择(HTML 路由)
| 场景 | 样式 |
|---|---|
| 学术论文、学位论文、正式课程作业 | 简约(白色、居中、无装饰) |
| 报告、提案、专业文档 | 设计型(从 html.md 的样式参考中选择) |
| 不确定 | 默认使用设计型——纯文本封面效果平平 |
核心原则:封面背景决定成品是“合格”还是“出彩”。参见 html.md 中的 11 种样式选项。
引用格式选择
| 文档语言 | 格式 |
|---|---|
| 中文 | GB/T 7714(使用 [J][M][D] 标识符) |
| 英文 | APA |
| 混合 | 中文参考文献 → GB/T 7714,英文参考文献 → APA |
快速入门
所有操作均使用统一的 CLI:
# Check environment (JSON output, exit code 0=ok, 2=missing deps)
/app/.kimi/skills/kimi-pdf/scripts/pdf.sh check
# Auto-fix missing dependencies (idempotent, safe to run multiple times)
/app/.kimi/skills/kimi-pdf/scripts/pdf.sh fix
# Convert HTML to PDF
/app/.kimi/skills/kimi-pdf/scripts/pdf.sh html input.html
# Compile LaTeX to PDF
/app/.kimi/skills/kimi-pdf/scripts/pdf.sh latex input.tex
退出代码:
0= 成功1= 用法错误2= 缺少依赖项(运行pdf.sh fix)3= 运行时错误
各路由的依赖项:
- HTML 路由:Node.js、Playwright、Chromium
- Process 路由:Python 3、pikepdf、pdfplumber
- LaTeX 路由:Tectonic
核心约束(必须遵守)
1. 输出语言
输出语言必须与用户查询的语言一致。
- 用户用中文提问 → PDF 内容使用中文
- 用户用英文提问 → PDF 内容使用英文
- 用户明确指定语言 → 按用户指定执行
2. 字数和页数限制
- 严格遵守用户指定的字数和页数要求
- 不要随意扩充内容
3. 引用和搜索标准
关键要求:写作前先搜索
不要捏造信息。如有疑问,请搜索。
如果内容涉及以下任何一项,必须先搜索再撰写:
- 统计数据、数字、百分比、排名
- 政策、法规、法律、标准
- 学术研究、理论、方法论
- 时事、最新进展
- 任何你无法百分之百确定的信息
搜索工作流:
- 找出需要核实的事实/数据
- 搜索可靠来源
- 如果结果不足,继续迭代搜索,直到获得可靠信息
- 在参考文献中列出真实来源
- 如果多次搜索仍无结果,请告知用户,而不是编造数据
引用必须真实
禁止编造参考文献。所有引用都必须包含:
- 正确的作者/机构名称
- 准确的标题
- 可核实的年份、期刊/来源
交叉引用(必须可点击)
As shown in <a href="#fig-1-1">Figure 1-1</a>...
From <a href="#eq-2-1">Equation (2-1)</a>...
See <a href="#sec3">Section 3</a>...
注意:id 必须放在容器顶部(参见 html.md 中的 CSS Counters 部分)。
内容质量要求
1. 字数/页数要求
必须严格遵守用户指定的字数或页数要求:
| 用户请求 | 执行标准 |
|---|---|
| 指定字数(例如:“3000 字”) | 控制在 ±20% 范围内,即 2400-3600 字 |
| 指定页数(例如:“5 页”) | 页数必须完全相同,最后一页可以不满 |
| 字数范围(例如:“2000-3000 字”) | 必须在范围内 |
| 未明确要求 | 根据文档类型合理推断;宁可详尽,也不要流于表面 |
| 指定最低字数(例如:“超过 5000 字”) | 不得超过其 2 倍,即 5000-10000 字 |
禁止行为:
- 随意缩短内容(不能以“简洁”为借口)
- 用过多的项目符号填充页面(保持较高的信息密度)
- 超出用户要求篇幅的 2 倍
特殊情况——简历/履历:
- 除非用户另有说明,简历应为 1 页
- 使用紧凑页边距:
margin: 1.5cm
2. 遵循大纲(强制要求)
用户提供大纲时:
- 严格遵循用户提供的大纲结构
- 章节标题必须与大纲一致(可微调措辞,但不得改变层级/顺序)
- 不得随意添加或删除章节
- 如果大纲似乎有问题,修改前先询问用户
用户未提供大纲时:
- 根据文档类型采用标准结构:
- 学术论文:IMRaD(引言-方法-结果-讨论)或引言-文献综述-方法-结果-讨论-结论
- 商业报告:结论优先(执行摘要 → 详细分析 → 建议)
- 技术文档:概述 → 原理 → 用法 → 示例 → 常见问题
- 课程作业:遵循作业结构要求
- 章节应有合理的逻辑递进,不得脱节
技术栈概览
| 路线 | 工具 | 用途 |
|---|---|---|
| HTML | Playwright + Paged.js | HTML → PDF 转换 |
| HTML | KaTeX、Mermaid | 数学公式、图表 |
| 处理 | pikepdf | 填写表单、页面操作、元数据 |
| 处理 | pdfplumber | 文本和表格提取 |
| 处理 | LibreOffice | Office → PDF 转换 |
| LaTeX | Tectonic | LaTeX → PDF 编译 |
评论
支持 Markdown