在文档管理和报表生成中,将相关文件直接嵌入 pdf 可以大大提高信息整合度,让收件人无需额外查找即可访问所有资源。python 结合 spire.pdf,可以轻松实现 pdf 附件的添加与注释功能,无需依赖 adobe acrobat。
本文演示如何在 同一 pdf 文件中实现 直接添加附件和添加附件注释,并说明每个操作的作用和适用场景,帮助你真正理解 pdf 附件处理的逻辑。
本文使用的方法需要用到免费的 free spire.pdf for python,可通过 pypi 安装:pip install spire.pdf。
1. 初始化 pdf 文档
from spire.pdf import *
from spire.pdf.common import *
# pdfdocument 对象创建
doc = pdfdocument()
# 加载已有 pdf 文件
doc.loadfromfile("sample.pdf")
操作说明:
pdfdocument是 spire.pdf 的核心类,用于表示和操作 pdf 文档。loadfromfile()可以加载已有 pdf,后续的附件操作都基于这个文档进行。
2. 添加外部文件作为 pdf 附件
# 创建 pdfattachment 对象
attachment_one = pdfattachment("antivirus software.pdf")
attachment_two = pdfattachment("steps for backup.png")
# 将附件添加到 pdf
doc.attachments.add(attachment_one)
doc.attachments.add(attachment_two)
# 保存文件
doc.savetofile("output/documentattachment.pdf")
使用说明:
pdfattachment用于封装需要添加的文件,包括 excel、图片或其他文档。attachments.add()将附件嵌入 pdf,使所有相关文件集中在同一个 pdf 内。- 保存后,收件人可在 pdf 阅读器中直接查看或提取这些附件。
效果展示:

适用场景:
- 发票或报表需要附带原始数据文件。
- 项目文档需要附带图纸、图片或说明文件。
- 任何需要将多种资源整合到单一 pdf 的场景。
3. 在 pdf 页面添加附件注释
# 获取特定页面
page = doc.pages[1]
# 绘制文本
str = "this is the document: "
font = pdftruetypefont("yu gothic ui", 16.0, pdffontstyle.bold, true)
x = 50.0
y = doc.pages[0].actualsize.height - 30.0
page.canvas.drawstring(str, font, pdfbrushes.get_blue(), x, y)
# 创建 pdfattachmentannotation
data = stream("g:/documents/update system.docx")
size = font.measurestring(str)
bounds = rectanglef((x + size.width + 5.0), y, 10.0, 15.0)
annotation = pdfattachmentannotation(bounds, "update system.docx", data)
# 设置注释属性
annotation.color = pdfrgbcolor(color.get_blue())
annotation.flags = pdfannotationflags.default
annotation.icon = pdfattachmenticon.graph
annotation.text = "click to open"
# 添加到 pdf 页面
page.annotationswidget.add(annotation)
# 保存文件
doc.savetofile("output/annotationattachment.pdf")
操作说明:
pdfattachmentannotation可以在 pdf 页面上显示附件图标,用户点击即可打开附件。bounds定义注释的位置和大小。color、icon和text用于美化和提示操作。annotationswidget.add()将注释添加到页面上。
效果展示:

适用场景:
- 报告正文中嵌入支持文件,让读者点击即可获取。
- 教学或培训资料中附加示例文件。
- 需要对附件做视觉提示而非仅仅嵌入 pdf 时。
4. 总结
通过上述操作,开发者可以轻松实现:
| 功能类型 | 关键类/方法 | 使用说明 |
|---|---|---|
| 添加附件 | pdfattachment、attachments.add() | 将外部文件直接嵌入 pdf |
| 添加附件注释 | pdfattachmentannotation、annotationswidget.add() | 在页面上显示附件图标并可点击打开 |
| 设置字体与颜色 | pdftruetypefont、pdfbrushes | 为页面文本提供美观的显示 |
| 保存 pdf | savetofile() | 保存修改后的 pdf 文件 |
通过结合附件和注释,pdf 不仅可以承载文本内容,还可以携带完整的支持文件,大大提升文档的完整性和易用性。
到此这篇关于使用python实现向同一pdf添加附件与附件注释的文章就介绍到这了,更多相关python pdf添加附件与附件注释内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论