1. 产品
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for Go

适用于 Go 的 Aspose.PDF FOSS

纯 Go 库,用于创建、编辑、合并和保护 PDF 文档 — 在 MIT 许可证下开源,零非 Go 依赖。

Aspose.PDF FOSS — 开源 Go PDF 库

Aspose.PDF FOSS for Go 是一个纯 Go 库,使开发者能够创建、读取、编辑、合并、 拆分并保护 PDF 文档,无需任何外部本机依赖。为服务器端构建 Go 应用程序,它可以集成到任何 Go 模块项目中,只需一个 go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go 命令。

该库通过 DocumentPageFormTable 暴露了全面的 API 接口, 以及 AnnotationCollection 类型,涵盖文档管理、AcroForm 填写、结构化表格 布局, 书签导航, 图像处理, 以及结构完整性验证. 安全功能包括 通过 EncryptionOptionsPermissions 实现 AES-128、AES-256 和 RC4-128 加密,使用 细粒度的每操作访问控制。 Aspose.PDF FOSS for Go 在 MIT 许可证下发布,没有运行时费用或使用限制。 需要 Go 1.24 或更高版本。 有关企业功能和支持,请参阅 Aspose.PDF for Go — Enterprise Product

文档操作

  • 通过 Document 打开、创建、保存和关闭 PDF 文件
  • 将文档拆分为每页的 Document 实例
  • 使用 Append 在原位追加多个 PDF
  • 使用 PageRange 提取页面子集以进行部分导出
  • 通过 XMPMetadata 类型读取和写入 XMP 文档元数据

实际场景

  • 批量拆分传入的 PDF 为单页归档
  • 从章节 PDF 组装月度报告
  • 提取已编辑副本工作流的页面范围
  • 以编程方式更新文档作者和创建日期

安全性与权限

  • 通过 EncryptionOptions 使用 AES-128、AES-256 或 RC4-128 加密 PDF
  • 在单个 SetEncryption 调用中设置用户和所有者密码
  • 使用 Permissions 限制打印、复制和可访问性
  • 使用 OpenWithPassword 打开受密码保护的文件
  • 在需要时移除加密并生成解密副本

实际场景

  • 交付带有每位收件人密码的机密报告
  • 对分发的合同强制仅打印权限
  • 在原位加水印后重新加密文档
  • 从受保护的原始文件生成纯文本归档副本

AcroForm 处理

  • 使用 FormField 枚举表单中的所有字段
  • 按字段名称在 TextBoxField 实例上设置文本值
  • 切换 CheckboxField 并选择 RadioButtonField 选项
  • ComboBoxFieldListBoxField 控件中选择项目
  • 在交互式表单文档中触发 ButtonField 操作

实际场景

  • 自动化发票和合同表单填写流水线
  • 在 PDF 分发之前预先填充应用程序模板
  • 提取已填写的字段值以进行下游数据处理
  • 在归档前验证必填字段的存在

表格和结构化布局

  • 使用 TableRowCell 类型构建网格布局
  • 通过 BorderInfo 为每个单元格或表格应用边框样式
  • 使用 MarginInfo 设置填充和间距
  • 使用 TextStyleFontColorHAlignVAlign 对文本进行样式设置
  • 在表格单元格中嵌入图像,使用 Image

实际场景

  • 使用表格数据生成发票和财务报表
  • 在生成的报告中渲染计划或比较表格
  • 从数据库查询结果生成数据驱动的 PDF
  • 创建具有一致边框和间距的可访问表格

书签和导航

  • 通过 OutlineItemCollection 创建层次书签树
  • 为大纲项设置粗体/斜体样式和自定义颜色
  • 使用 DestinationXYZ 将书签链接到精确坐标
  • 使用带有 DestinationFit 的 page-fit 目标
  • 通过 NamedDestinations 注册命名跳转目标

实际场景

  • 为长篇文档添加章节和节书签
  • 为技术手册构建交互式目录
  • 启用来自外部超链接的深度链接导航
  • 合并多个文档时保留书签结构

注释和印章

  • 请提供需要翻译的英文文本。
  • 使用 TextAnnotationFreeTextAnnotation 创建文本标注
  • 通过 StampAnnotationStampName 应用批准印章
  • 使用 HighlightAnnotation 突出显示内容
  • 使用 RedactAnnotation 对敏感区域进行脱敏

实际场景

  • 为草稿文档添加审阅者评论以供批准
  • 在已完成的 PDF 上加盖 APPROVED 或 CONFIDENTIAL 印章
  • 永久性编辑个人数据以实现 GDPR 合规的存档
  • 通过 LinkAnnotation 嵌入超链接和 URI 操作

拆分和合并 PDF

打开 PDF,将其拆分为每页文档,或将多个文件合并为一个。

doc, _ := pdf.Open("input.pdf")
pages, _ := doc.Split()
for i, p := range pages {
    p.Save(fmt.Sprintf("page%03d.pdf", i+1))
}
doc2, _ := pdf.Open("file2.pdf")
doc.Append(doc2)
doc.Save("merged.pdf")

加密并设置权限

在一次调用中应用 AES-128 加密并设置细粒度的打印和复制权限。

doc, _ := pdf.Open("input.pdf")
doc.SetEncryption(pdf.EncryptionOptions{
    UserPassword:  "userpass",
    OwnerPassword: "ownerpass",
    Permissions:   &pdf.Permissions{AllowPrint: true, AllowCopy: true},
})
doc.Save("restricted.pdf")

填写 AcroForm 字段

按名称定位表单字段并为所有小部件类型设置值。

doc, _ := pdf.Open("template.pdf")
text := doc.Form().Field("name").(*pdf.TextBoxField)
text.SetValue("Jane Doe")
check := doc.Form().Field("subscribe").(*pdf.CheckboxField)
check.SetChecked(true)
radio := doc.Form().Field("plan").(*pdf.RadioButtonField)
radio.Options()[1].SetSelected(true)
doc.Save("filled.pdf")

创建层次书签

构建一个带有样式条目和精确页面目标的嵌套书签树。

doc, _ := pdf.Open("input.pdf")
page, _ := doc.Page(1)
chapter := pdf.NewOutlineItemCollection(doc)
chapter.SetTitle("Chapter 1")
chapter.SetBold(true)
chapter.SetDestination(pdf.NewDestinationXYZ(page, 0, 800, 1.0))
doc.Outlines().Add(chapter)
doc.Save("with_bookmarks.pdf")

常见问题

Aspose.PDF FOSS for Go 的许可证是什么?

Aspose.PDF FOSS for Go 在 MIT License 下发布。完整的许可证文本已包含在仓库的 github.com/aspose-pdf-foss/aspose-pdf-foss-for-go 中。

我可以在商业产品中使用 Aspose.PDF FOSS for Go 吗?

是的。MIT 许可证允许无限制的商业使用、修改、分发和私有使用。

有企业版吗?

Aspose.PDF FOSS 是开源的、基于 MIT 许可证的版本。另有商业版 Aspose.PDF 产品,可作为 Aspose.PDF — Enterprise Product Family 提供,具备企业支持、扩展的格式覆盖以及云集成。

我该如何安装 Aspose.PDF FOSS for Go?

运行 go get github.com/aspose-pdf-foss/aspose-pdf-foss-for-go 将模块添加到你的 Go 项目中。使用 import pdf "github.com/aspose-pdf-foss/aspose-pdf-foss-for-go" 在源文件中为其指定别名进行导入。

需要哪个 Go 版本?

需要 Go 1.24 或更高版本。使用 go version 验证您的版本。

  

支持和学习资源

 中文