使用 Python 向 PDF 添加附件与附件注释

在文档管理和报表生成中,将相关文件直接嵌入 PDF 可以大大提高信息整合度,让收件人无需额外查找即可访问所有资源。Python 结合 Spire.PDF,可以轻松实现 PDF 附件的添加与注释功能,无需依赖 Adobe Acrobat。

本文演示如何在 同一 PDF 文件中 实现 直接添加附件和添加附件注释,并说明每个操作的作用和适用场景,帮助你真正理解 PDF 附件处理的逻辑。

本文使用的方法需要用到免费的 Free Spire.PDF for Python,可通过 PyPI 安装:pip install spire.pdf


1. 初始化 PDF 文档

python 复制代码
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 附件

python 复制代码
# 创建 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 页面添加附件注释

python 复制代码
# 获取特定页面
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 定义注释的位置和大小。
  • ColorIconText 用于美化和提示操作。
  • AnnotationsWidget.Add() 将注释添加到页面上。

效果展示

适用场景

  • 报告正文中嵌入支持文件,让读者点击即可获取。
  • 教学或培训资料中附加示例文件。
  • 需要对附件做视觉提示而非仅仅嵌入 PDF 时。

4. 总结

通过上述操作,开发者可以轻松实现:

功能类型 关键类/方法 使用说明
添加附件 PdfAttachmentAttachments.Add() 将外部文件直接嵌入 PDF
添加附件注释 PdfAttachmentAnnotationAnnotationsWidget.Add() 在页面上显示附件图标并可点击打开
设置字体与颜色 PdfTrueTypeFontPdfBrushes 为页面文本提供美观的显示
保存 PDF SaveToFile() 保存修改后的 PDF 文件

通过结合附件和注释,PDF 不仅可以承载文本内容,还可以携带完整的支持文件,大大提升文档的完整性和易用性。

更多 PDF 文档操作技巧,请前往 Spire.PDF for Python 官方教程查看。

相关推荐
用户8356290780514 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
宇宙之一粟12 小时前
乐企版式文件生成平台
java·后端·python
学测绘的小杨1 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
Web3探索者1 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo1 天前
Linux系统中网线与USB网络共享冲突
linux
zzzzzz3101 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
雪隐1 天前
个人电脑玩AI-06让5060 Ti给你打工——不光能画画,Qwen3-TTS还能学人说话,连我老板都信了!
人工智能·后端·python
兵慌码乱2 天前
面向桌面端的资产管理系统分层架构设计与核心模块实现
python·系统架构·sqlite·pyqt5·数据库设计·桌面应用开发·mvc架构
hboot2 天前
AI工程师第三课 - 机器学习基础
python·scikit-learn·kaggle
顾林海2 天前
Agent入门阶段-编程基础-Python:流程控制
python·agent·ai编程