---
id: daily-minimax-pdf
name: "minimax-pdf"
url: https://skills.yangsir.net/skill/daily-minimax-pdf
author: minimax-ai
domain: content-creation
tags: ["content-creation", "pdf", "document-automation", "formatting", "content-generation"]
install_count: 2300
rating: 4.30 (20 reviews)
github: https://github.com/minimax-ai/skills
---

# minimax-pdf

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

**Stats**: 2,300 installs · 4.3/5 (20 reviews)

## Before / After 对比

### PDF 生成效率对比

**Before**:

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

**After**:

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

| Metric | Before | After | Change |
|---|---|---|---|
| PDF 生成时间 | 150分钟 | 20分钟 | -87% |

## Readme

# 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.py` → `cover.py` → `render_cover.js` → `render_body.py` → `merge.py`

Fill / complete form fields in an existing PDF
**FILL**
`fill_inspect.py` → `fill_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 Installs296Repository[minimax-ai/skills](https://github.com/minimax-ai/skills)GitHub Stars5.5KFirst Seen4 days agoSecurity Audits[Gen Agent Trust HubPass](/minimax-ai/skills/minimax-pdf/security/agent-trust-hub)[SocketPass](/minimax-ai/skills/minimax-pdf/security/socket)[SnykPass](/minimax-ai/skills/minimax-pdf/security/snyk)Installed onopencode288codex287cursor287gemini-cli285github-copilot285kimi-cli284

---
*Source: https://skills.yangsir.net/skill/daily-minimax-pdf*
*Markdown mirror: https://skills.yangsir.net/api/skill/daily-minimax-pdf/markdown*