gpdf 是只依赖标准库的 Go PDF 库。用 12 列网格排版页面,嵌入中文、日文、韩文字体,约 13 µs 渲染一页。
go.mod 里只有 Go 本身。无需 cgo、无头浏览器,也无需在服务旁边部署原生二进制。
行和 12 列网格自动排到页面上。表格跨页拆分,文字自动换行。
TrueType 字体只子集化用到的字形,中日韩文字在任何服务器上都一样。
Go 原生架构
很多 Go 的 PDF 方案依赖语言之外的东西:边车里的无头浏览器、通过 HTTP 调用的 HTML 转 PDF 服务,或原生库的绑定。每一种都多了一个需要部署、打补丁和监控的运行时。
gpdf 从第一行起就用 Go 编写。它编译进你的二进制,在任何能运行 Go 的地方运行,整个依赖树只有标准库——安全团队无需额外审计。
一次 go get,一个二进制,开发与生产输出一致。
你的 Go 应用
HTTP 调用或 cgo 绑定无头浏览器 · JVM · 原生库
又多了一个需要部署、打补丁和监控的运行时。
你的 Go 应用
go getgithub.com/gpdf-dev/gpdf
单一二进制 · 仅标准库 · 无 cgo
运行环境
CJK 优先
很多 PDF 库把 CJK 放在最后考虑。gpdf 从第一天起就为它而设计。
可嵌入任何 TrueType 字体,文件中只写入用到的字形。
在同一段落或表格中混排中文、日文、韩文和拉丁文字。
没有豆腐块(□),没有乱码,不依赖服务器上安装的字体。
gpdf 与其他方案
要部署什么、为什么付费、需要持续维护什么。
选择适合你技术栈的入口。三者都走同一个渲染引擎。
go get github.com/gpdf-dev/gpdf。支持 Go 1.22 及以上。
流畅、类型安全的 Go:PageBuilder → RowBuilder → ColBuilder。
用 JSON 描述文档,可从任何服务或语言发送。
用 text/template 驱动 JSON Schema,一份源生成成千上万的文档。
可复制修改的发票、收据和报价单。
每个示例都是渲染真实 PDF 的测试,从表格到签名。
每次发布前,每个示例都会与保存的 PDF 逐字节比对。
CI 会按 PDF 规范验证生成的文件。
CI 在每个支持的 Go 版本上开启竞态检测运行全部测试。
2026年11月12日
2026年11月10日
2026年9月2日
2026年5月19日
FAQ
gpdf 是用纯 Go 编写、零外部依赖、MIT 许可的 PDF 生成库。它用 12 列网格排版,并可嵌入包括中日韩在内的 TrueType 字体。
单页约 13 µs。在公开的基准测试中,gpdf 在大多数文档上比 go-pdf/fpdf、signintech/gopdf 和 maroto v2 快约 10 到 30 倍。
支持。嵌入 TrueType 字体后,gpdf 只写入用到的字形,输出不依赖服务器上安装的字体。
免费。gpdf 采用 MIT 许可,可在商业产品中使用、修改和再分发。
Go 1.22 及以上。CI 在 Go 1.22 到 1.26 上运行测试。