M

minimax-pdf

by @minimax-aiv1.0.0
4.1(8)

从零生成 PDF、填充表单字段或重新格式化现有 PDF 文档

content-creationpdfdocument-automationformattingcontent-generationGitHub
安装方式
npx skills add minimax-ai/skills --skill minimax-pdf
compare_arrows

Before / After 效果对比

1
使用前

手动在 Word 或设计工具中创建文档、调整布局、导出 PDF,一份 10 页报告需要 2-3 小时

使用后

使用脚本自动生成封面、正文和合并页面,20 分钟完成专业格式 PDF 报告

description SKILL.md

minimax-pdf

minimax-pdf

Three tasks. One skill.

Read design/design.md before any CREATE or REFORMAT work.

Route table

User intent Route Scripts used

Generate a new PDF from scratch CREATE palette.pycover.pyrender_cover.jsrender_body.pymerge.py

Fill / complete form fields in an existing PDF FILL fill_inspect.pyfill_write.py

Reformat / re-style an existing document REFORMAT reformat_parse.py → then full CREATE pipeline

Rule: when in doubt between CREATE and REFORMAT, ask whether the user has an existing document to start from. If yes → REFORMAT. If no → CREATE.

Route A: CREATE

Full pipeline — content → design tokens → cover → body → merged 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

Doc types: report · proposal · resume · portfolio · academic · general · minimal · stripe · diagonal · frame · editorial · magazine · darkroom · terminal · poster

Type Cover pattern Visual identity

report fullbleed Dark bg, dot grid, Playfair Display

proposal split Left panel + right geometric, Syne

resume typographic Oversized first-word, DM Serif Display

portfolio atmospheric Near-black, radial glow, Fraunces

academic typographic Light bg, classical serif, EB Garamond

general fullbleed Dark slate, Outfit

minimal minimal White + single 8px accent bar, Cormorant Garamond

stripe stripe 3 bold horizontal color bands, Barlow Condensed

diagonal diagonal SVG angled cut, dark/light halves, Montserrat

frame frame Inset border, corner ornaments, Cormorant

editorial editorial Ghost letter, all-caps title, Bebas Neue

magazine magazine Warm cream bg, centered stack, hero image, Playfair Display

darkroom darkroom Navy bg, centered stack, grayscale image, Playfair Display

terminal terminal Near-black, grid lines, monospace, neon green

poster poster White bg, thick sidebar, oversized title, Barlow Condensed

Cover extras (inject into tokens via --abstract, --cover-image):

  • --abstract "text" — abstract text block on the cover (magazine/darkroom)

  • --cover-image "url" — hero image URL/path (magazine, darkroom, poster)

Color overrides — always choose these based on document content:

  • --accent "#HEX" — override the accent color; accent_lt is auto-derived by lightening toward white

  • --cover-bg "#HEX" — override the cover background color

Accent color selection guidance:

You have creative authority over the accent color. Pick it from the document's semantic context — title, industry, purpose, audience — not from generic "safe" choices. The accent appears on section rules, callout bars, table headers, and the cover: it carries the document's visual identity.

Context Suggested accent range

Legal / compliance / finance Deep navy #1C3A5E, charcoal #2E3440, slate #3D4C5E

Healthcare / medical Teal-green #2A6B5A, cool green #3A7D6A

Technology / engineering Steel blue #2D5F8A, indigo #3D4F8A

Environmental / sustainability Forest #2E5E3A, olive #4A5E2A

Creative / arts / culture Burgundy #6B2A35, plum #5A2A6B, terracotta #8A3A2A

Academic / research Deep teal #2A5A6B, library blue #2A4A6B

Corporate / neutral Slate #3D4A5A, graphite #444C56

Luxury / premium Warm black #1A1208, deep bronze #4A3820

Rule: choose a color that a thoughtful designer would select for this specific document — not the type's default. Muted, desaturated tones work best; avoid vivid primaries. When in doubt, go darker and more neutral.

content.json block types:

Block Usage Key fields

h1 Section heading + accent rule text

h2 Subsection heading text

h3 Sub-subsection (bold) text

body Justified paragraph; supports <b> <i> markup text

bullet Unordered list item (• prefix) text

numbered Ordered list item — counter auto-resets on non-numbered blocks text

callout Highlighted insight box with accent left bar text

table Data table — accent header, alternating row tints headers, rows, col_widths?, caption?

image Embedded image scaled to column width path/src, caption?

figure Image with auto-numbered "Figure N:" caption path/src, caption?

code Monospace code block with accent left border text, language?

math Display math — LaTeX syntax via matplotlib mathtext text, label?, caption?

chart Bar / line / pie chart rendered with matplotlib chart_type, labels, datasets, title?, x_label?, y_label?, caption?, figure?

flowchart Process diagram with nodes + edges via matplotlib nodes, edges, caption?, figure?

bibliography Numbered reference list with hanging indent items [{id, text}], title?

divider Accent-colored full-width rule —

caption Small muted label text

pagebreak Force a new page —

spacer Vertical whitespace pt (default 12)

chart / flowchart schemas:

{"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."}]}

Route B: FILL

Fill form fields in an existing PDF without altering layout or design.

# Step 1: inspect
python3 scripts/fill_inspect.py --input form.pdf

# Step 2: fill
python3 scripts/fill_write.py --input form.pdf --out filled.pdf \
  --values '{"FirstName": "Jane", "Agree": "true", "Country": "US"}'

Field type Value format

text Any string

checkbox "true" or "false"

dropdown Must match a choice value from inspect output

radio Must match a radio value (often starts with /)

Always run fill_inspect.py first to get exact field names.

Route C: REFORMAT

Parse an existing document → content.json → CREATE pipeline.

bash scripts/make.sh reformat \
  --input source.md --title "My Report" --type report --out output.pdf

Supported input formats: .md .txt .pdf .json

Environment

bash scripts/make.sh check   # verify all deps
bash scripts/make.sh fix     # auto-install missing deps
bash scripts/make.sh demo    # build a sample PDF

Tool Used by Install

Python 3.9+ all .py scripts system

reportlab render_body.py pip install reportlab

pypdf fill, merge, reformat pip install pypdf

Node.js 18+ render_cover.js system

playwright + Chromium render_cover.js npm install -g playwright && npx playwright install chromium

Weekly Installs296Repositoryminimax-ai/skillsGitHub Stars5.5KFirst Seen4 days agoSecurity AuditsGen Agent Trust HubPassSocketPassSnykPassInstalled onopencode288codex287cursor287gemini-cli285github-copilot285kimi-cli284

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量258
评分4.1 / 5.0
版本1.0.0
更新日期2026年3月27日
对比案例1 组

用户评分

4.1(8)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月27日
最后更新2026年3月27日