r.Col(7)v1.0.13 · MIT · 纯 Go · 0 依赖用纯 Go 生成 PDF,
用纯 Go 生成 PDF,
无需坐标。
gpdf 是一个 MIT 协议、纯 Go 编写的 PDF 生成库。0 个外部依赖,仅使用 Go 标准库。用 12 栏网格声明布局,通过 TrueType 嵌入原生渲染中、日、韩文。单页文档约 13 微秒渲染完成——比 gofpdf、gopdf、Maroto v2 快 10–30 倍。
$go get github.com/gpdf-dev/gpdf
阅读快速入门r.Col(5)一个完整的程序。运行它,即可得到 hello.pdf。
main.gogo run .
用数字看速度
在 cjk 发票上计测
1 block = 2 ms
gpdf2 ms
gofpdf15 ms
gopdf20 ms
Maroto v245 ms
基准测试:发票生成 — 中文/日文/韩文文本、3 个 TrueType 字体子集嵌入、1 个 logo、1 个二维码。在 Go 1.25 / Apple M2 上按单份文档测量。数字已取整,每次运行略有差异。
团队为何选择 gpdf
为真实生产 pdf 而设计
- 0 外部依赖
- 仅 Go 标准库。无 CGO、无 C 工具链、无原生模块。每次构建都可复现。
- 12 栏网格
- 行与列之和为 12。Bootstrap 风格,第一天就能上手。行列可任意嵌套。
- 3 种 CJK 书写系统
- 嵌入 TrueType 字体,无需外部工具即可渲染中文 (ZH)、日文 (JP)、韩文 (KR)。
- 快 10–30 倍
- 单页文档约 13 微秒。与 gofpdf、gopdf、Maroto v2 基准对比的结果。
- 链式 Builder API
- PageBuilder → RowBuilder → ColBuilder。所有配置通过 Functional Options (WithXxx) 统一完成。
- JSON Schema + Go Templates
- 用 JSON 声明 PDF 结构,用 text/template 驱动,从单一数据源批量生成数千份文档。
~
#
語
>
{}
⌘
常见问题
开始前的关键答案
gpdf 是一个 MIT 协议、纯 Go 编写的 PDF 生成库。0 个外部依赖,仅使用 Go 标准库。采用 Bootstrap 风格的 12 栏网格声明布局,并通过 TrueType 字体嵌入原生支持中文、日文、韩文。
gpdf 渲染一份单页 PDF 文档约需 13 微秒,与 gofpdf、gopdf、Maroto v2 的基准测试相比快 10–30 倍。
支持。gpdf 嵌入 TrueType 字体,原生渲染中文 (ZH)、日文 (JP)、韩文 (KR) — 3 种 CJK 书写系统全部支持。没有豆腐块(□),没有乱码。
可以。gpdf 采用 MIT 协议,完全开源。个人、商业用途和再分发均可免费使用。
运行 go get github.com/gpdf-dev/gpdf。需要 Go 1.22 及以上版本(已在 Go 1.26 上通过测试)。0 外部依赖,仅使用 Go 标准库。