
minimax-pdf
热门当PDF的视觉质量和设计风格至关重要时,使用此技能。CREATE(从零生成):“制作PDF”、“生成报告”、“撰写提案”、“创建简历”、“精美PDF”、“专业文档”、“封面页”、“精致PDF”、“客户就绪文档”。FILL(填写表单字段):“填写表单”、“填写此PDF”、“完成表单字段”、“将值写入PDF”、“此PDF有哪些字段”。REFORMAT(对现有文档应用设计):“重新格式化此文档”、“应用我们的样式”、“将此Markdown/文本转换为PDF”、“让此文档看起来更好”、“重新设计此PDF”。此技能使用基于标记的设计系统:颜色、排版和间距源自文档类型,并贯穿每一页。输出为打印就绪。当外观重要时,优先使用此技能,而不仅仅是需要任何PDF输出时。
当PDF的视觉质量和设计风格至关重要时,使用此技能。 CREATE(从零生成):“制作PDF”、“生成报告”、“撰写提案”、 “创建简历”、“精美PDF”、“专业文档”、“封面页”、 “精致PDF”、“客户就绪文档”。 FILL(填写表单字段):“填写表单”、“填写此PDF”、 “完成表单字段”、“将值写入PDF”、“此PDF有哪些字段”。 REFORMAT(对现有文档应用设计):“重新格式化此文档”、“应用我们的样式”、 “将此Markdown/文本转换为PDF”、“让此文档看起来更好”、“重新设计此PDF”。 此技能使用基于标记的设计系统:颜色、排版和间距源自文档类型,并贯穿每一页。输出为打印就绪。 当外观重要时,优先使用此技能,而不仅仅是需要任何PDF输出时。
minimax-pdf
三项任务。一个技能。
在执行任何CREATE或REFORMAT工作之前,请阅读 design/design.md。
路由表
| 用户意图 | 路由 | 使用的脚本 |
|---|---|---|
| 从零生成新PDF | CREATE | palette.py → cover.py → render_cover.js → render_body.py → merge.py |
| 填写/完成现有PDF中的表单字段 | FILL | fill_inspect.py → fill_write.py |
| 重新格式化/重新设计现有文档 | REFORMAT | reformat_parse.py → 然后执行完整的CREATE流程 |
规则: 当在CREATE和REFORMAT之间不确定时,询问用户是否有现有文档作为起点。如果有 → REFORMAT。如果没有 → CREATE。
路由A:CREATE
完整流程 — 内容 → 设计标记 → 封面 → 正文 → 合并PDF。
bash scripts/make.sh run \
--title "Q3 Strategy Review" --type proposal \
--author "Strategy Team" --date "October 2025" \
--accent "#2D5F8A" \
--content content.json --out report.pdf
文档类型: report · proposal · resume · portfolio · academic · general · minimal · stripe · diagonal · frame · editorial · magazine · darkroom · terminal · poster
| 类型 | 封面图案 | 视觉标识 |
|---|---|---|
report |
fullbleed |
深色背景,点阵网格,Playfair Display |
proposal |
split |
左侧面板 + 右侧几何图形,Syne |
resume |
typographic |
超大首词,DM Serif Display |
portfolio |
atmospheric |
近黑色,径向光晕,Fraunces |
academic |
typographic |
浅色背景,经典衬线,EB Garamond |
general |
fullbleed |
深石板色,Outfit |
minimal |
minimal |
白色 + 单条8px强调色条,Cormorant Garamond |
stripe |
stripe |
3条粗水平色带,Barlow Condensed |
diagonal |
diagonal |
SVG斜切,深/浅两半,Montserrat |
frame |
frame |
内嵌边框,角饰,Cormorant |
editorial |
editorial |
幽灵字母,全大写标题,Bebas Neue |
magazine |
magazine |
暖奶油色背景,居中堆叠,主图,Playfair Display |
darkroom |
darkroom |
海军蓝背景,居中堆叠,灰度图像,Playfair Display |
terminal |
terminal |
近黑色,网格线,等宽字体,霓虹绿 |
poster |
poster |
白色背景,粗侧边栏,超大标题,Barlow Condensed |
封面附加内容(通过 --abstract、--cover-image 注入到标记中):
--abstract "text"— 封面上的摘要文本块(magazine/darkroom)--cover-image "url"— 主图URL/路径(magazine、darkroom、poster)
颜色覆盖 — 始终根据文档内容选择:
--accent "#HEX"— 覆盖强调色;accent_lt通过向白色变亮自动派生--cover-bg "#HEX"— 覆盖封面背景颜色
强调色选择指南:
您对强调色拥有创意自主权。从文档的语义上下文(标题、行业、目的、受众)中选择,而不是从通用的“安全”选择中选取。强调色出现在章节分隔线、标注条、表格标题和封面上:它承载文档的视觉标识。
| 上下文 | 建议的强调色范围 |
|---|---|
| 法律/合规/金融 | 深海军蓝 #1C3A5E、炭灰 #2E3440、石板灰 #3D4C5E |
| 医疗/医药 | 蓝绿色 #2A6B5A、冷绿色 #3A7D6A |
| 技术/工程 | 钢蓝 #2D5F8A、靛蓝 #3D4F8A |
| 环境/可持续发展 | 森林绿 #2E5E3A、橄榄绿 #4A5E2A |
| 创意/艺术/文化 | 酒红 #6B2A35、梅紫 #5A2A6B、陶土红 #8A3A2A |
| 学术/研究 | 深蓝绿 #2A5A6B、图书馆蓝 #2A4A6B |
| 企业/中性 | 石板灰 #3D4A5A、石墨灰 #444C56 |
| 奢华/高端 | 暖黑 #1A1208、深古铜 #4A3820 |
规则: 选择一位有思想的设计师会为此特定文档选择的颜色 — 而不是该类型的默认颜色。柔和、低饱和度的色调效果最佳;避免鲜艳的原色。如有疑问,选择更深、更中性的颜色。
content.json 块类型:
| 块 | 用途 | 关键字段 |
|---|---|---|
h1 |
章节标题 + 强调色分隔线 | text |
h2 |
子章节标题 | text |
h3 |
子子章节(粗体) | text |
body |
两端对齐段落;支持 <b> <i> 标记 |
text |
bullet |
无序列表项(• 前缀) | text |
numbered |
有序列表项 — 计数器在非编号块后自动重置 | text |
callout |
高亮见解框,带强调色左侧条 | text |
table |
数据表 — 强调色标题,交替行底色 | headers、rows、col_widths?、caption? |
image |
嵌入图像,按列宽缩放 | path/src、caption? |
figure |
图像,带自动编号的“图N:”标题 | path/src、caption? |
code |
等宽代码块,带强调色左边框 | text、language? |
math |
显示数学 — 通过matplotlib mathtext的LaTeX语法 | text、label?、caption? |
chart |
条形/折线/饼图,使用matplotlib渲染 | chart_type、labels、datasets、title?、x_label?、y_label?、caption?、figure? |
flowchart |
流程图,节点+边,使用matplotlib | nodes、edges、caption?、figure? |
bibliography |
编号参考文献列表,悬挂缩进 | items [{id, text}]、title? |
divider |
强调色全宽分隔线 | — |
caption |
小号柔和标签 | text |
pagebreak |
强制分页 | — |
spacer |
垂直空白 | pt(默认12) |
chart / flowchart 模式:
{"type":"chart","chart_type":"bar","labels":["Q1","Q2","Q3","Q4"],
"datasets":[{"label":"Revenue","values":[120,145,132,178]}],"caption":"Q results"}
{"type":"flowchart",
"nodes":[{"id":"s","label":"Start","shape":"oval"},
{"id":"p","label":"Process","shape":"rect"},
{"id":"d","label":"Valid?","shape":"diamond"},
{"id":"e","label":"End","shape":"oval"}],
"edges":[{"from":"s","to":"p"},{"from":"p","to":"d"},
{"from":"d","to":"e","label":"Yes"},{"from":"d","to":"p","label":"No"}]}
{"type":"bibliography","items":[
{"id":"1","text":"Author (Year). Title. Publisher."}]}
路由B:FILL
填写现有PDF中的表单字段,不改变布局或设计。
# 步骤1:检查
python3 scripts/fill_inspect.py --input form.pdf
# 步骤2:填写
python3 scripts/fill_write.py --input form.pdf --out filled.pdf \
--values '{"FirstName": "Jane", "Agree": "true", "Country": "US"}'
| 字段类型 | 值格式 |
|---|---|
text |
任意字符串 |
checkbox |
"true" 或 "false" |
dropdown |
必须匹配检查输出中的选项值 |
radio |
必须匹配单选值(通常以 / 开头) |
始终先运行 fill_inspect.py 以获取确切的字段名称。
路由C:REFORMAT
解析现有文档 → content.json → CREATE流程。
bash scripts/make.sh reformat \
--input source.md --title "My Report" --type report --out output.pdf
支持的输入格式: .md .txt .pdf .json
环境
bash scripts/make.sh check # 验证所有依赖
bash scripts/make.sh fix # 自动安装缺失的依赖
bash scripts/make.sh demo # 构建示例PDF
| 工具 | 被谁使用 | 安装 |
|---|---|---|
| Python 3.9+ | 所有 .py 脚本 |
系统 |
reportlab |
render_body.py |
pip install reportlab |
pypdf |
fill、merge、reformat | pip install pypdf |
| Node.js 18+ | render_cover.js |
系统 |
playwright + Chromium |
render_cover.js |
npm install -g playwright && npx playwright install chromium |





