零依赖的极简 TypeScript PDF 生成库,支持文字、矩形、线条、JPEG 图片和链接。
- Star
- 873
- Fork
- 57
- 未关闭 Issue
- 49
- 最近提交
- 3天前
这是什么?
Folio 是一个 Go 语言 PDF 库,提供排版引擎,可排版段落、表格、列表、Flex 布局和图片。它能在进程内把 HTML 和 CSS 转换为 PDF,无需无头浏览器或外部服务,也可以导入已有 PDF 作为模板并填入动态内容。
除生成外,Folio 还支持读取、合并 PDF 和提取文本,并能通过脱敏功能永久删除敏感文字。它可以创建 AcroForm 表单字段,添加 PAdES 数字签名(B-B、B-T、B-LT),支持外部签名器,并能输出 PDF/A 和带标签的 PDF。文字排版覆盖从左到右、从右到左、印度语系和 CJK 文字,条码支持 Code128、QR 和 EAN-13。
项目提供用于合并、查看和提取文本的命令行工具,以及一个 C 共享库,便于通过 FFI 在其他语言中调用。
核心功能
- 01排版引擎支持表格、列表、Flex 布局、图片以及跨页拆分。
- 02在进程内完成 HTML 和 CSS 到 PDF 的转换。
- 03支持从左到右、从右到左、印度语系和 CJK 文字的排版。
- 04支持文本、复选框、单选、下拉和签名等 AcroForm 表单字段。
- 05支持 PAdES 数字签名,可接入 HSM、KMS 等外部签名器。
- 06基于文本的脱敏功能会从内容流中移除敏感内容。
- 07支持输出 PDF/A 和带标签的 PDF,并提供 C 共享库与命令行工具。
适用场景
- 在 Go 后端生成发票、报告或收据。
- 向现有 PDF 模板(如信纸或证书)中填入数据。
- 生成需要 PDF/A 或带标签格式的归档与无障碍文档。
- 在文档处理流程中为 PDF 添加签名或进行脱敏。
快速上手
- 1
安装库
go get github.com/carlos7ags/folio - 2
创建包含 README 中 Hello World 示例的 Go 文件并运行
go run main.go
使用前须知
- 需要 Go 1.25 或更新版本。
- 部分 HTML 和 CSS 功能不受支持,详见 docs/CSS_SUPPORT.md。
标签
常见问题
- folio 是什么?
- 一个 Go 语言 PDF 库,支持 HTML 转 PDF、排版引擎、表单、签名、条码和 PDF/A。 Folio 是一个 Go 语言 PDF 库,提供排版引擎,可排版段落、表格、列表、Flex 布局和图片。它能在进程内把 HTML 和 CSS 转换为 PDF,无需无头浏览器或外部服务,也可以导入已有 PDF 作为模板并填入动态内容。
- folio 可以免费使用吗?用的什么许可证?
- folio 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- folio 还在维护吗?
- 活跃维护中。folio 最近一次提交是在 2026年10月17日。
- folio 适合用来做什么?
- 在 Go 后端生成发票、报告或收据。 向现有 PDF 模板(如信纸或证书)中填入数据。 生成需要 PDF/A 或带标签格式的归档与无障碍文档。 在文档处理流程中为 PDF 添加签名或进行脱敏。
- folio 怎么安装和运行?
- 安装库: go get github.com/carlos7ags/folio 创建包含 README 中 Hello World 示例的 Go 文件并运行: go run main.go
- 在哪里获取 folio?
- 源代码和安装说明在 GitHub 上:https://github.com/carlos7ags/folio
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
192376TypeScriptMIT更新于 2个月前
可自托管的开源平台,用于创建 PDF 表单、在线填写并收集电子签名。
1.9万1896RubyAGPL-3.0更新于 21小时前
一款终端 TUI 工具,用于浏览、连接和管理 ~/.ssh/config 中的 SSH 主机。
141379GoMIT更新于 16天前
基于 Go 的 tmux 命令行工具,可保存会话、窗口、窗格和运行命令,并通过 TUI 选择器按需恢复。
2449GoMIT更新于 3天前
一款用 Go 编写的自托管一体化软件开发服务,涵盖 Git 托管、代码评审、议题与 CI/CD。
5.9万7294GoMIT更新于 24小时前
可自托管的在线文件格式转换工具,支持上千种格式,基于 TypeScript、Bun 和 Elysia 构建。
1.9万1093TypeScriptAGPL-3.0更新于 昨天