在文檔管理和報表生成中,將相關文件直接嵌入 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 不僅可以承載文本內容,還可以攜帶完整的支持文件,大大提升文檔的完整性和易用性。
更多 PDF 文檔操作技巧,請前往 Spire.PDF for Python 官方教程查看。