Python 輕松在 PDF 中插入頁眉頁腳
在制作 PDF 文件時,我們常常會遇到一個問題:文件內容雖然齊全,但少了頁眉頁腳,顯得不夠專業。尤其是在生成報告、論文或合同等正式文檔時,如果頁面上都沒有標題、頁碼或公司名稱,不僅閱讀不便,還容易造成混淆。其實,這類問題完全可以用 Python 來快速解決——只需要簡單的代碼,就能在 PDF 中自動添加頁眉頁腳,讓文檔更規范、更具識別度。接下來,我們就來看看具體該怎么做。
本文中使用 Spire.PDF for Python,這個專業的 PDF 庫可以協助開發者簡單快速地處理 PDF 文件相關的各種任務,是 Adobe Acrobat 的優選替代方案。
Python 在 PDF 中插入頁眉
在 PDF 頁面上添加頁眉不僅能讓文檔更具專業感,還能提高閱讀與管理的效率。比如在頁眉中加入公司 logo、報告標題或頁碼,讀者就能輕松識別文件來源并快速定位內容。使用 Spire.PDF 提供的 PdfCanvas,你可以靈活地將文字、圖片或日期等信息繪制到指定位置,通過坐標精確控制布局與樣式。相比手動逐頁添加,程序化生成頁眉不僅節省時間,還能保持版式一致。下面我們將介紹具體的實現步驟,并附上完整的代碼示例。
- 創建
PdfDocument對象,并使用PdfDocument.LoadFromFile()方法加載現有的 PDF 文件。 - 使用
PdfImage.FromFile()導入要繪制到頁眉的圖片,并獲取圖片寬度以便后續定位。 - 定義
PdfTrueTypeFont、PdfBrushes、PdfPen等屬性,用于設置文本、圖形和線條的樣式。 - 定義一個
String類型的頁眉文本內容。 - 創建
PdfCreationDateField()對象,并設置日期格式。 - 創建
PdfCompositeField()對象,組合文本與日期內容,并將其轉換為PdfGraphicsWidget類型。 - 遍歷 PDF 的每一頁,依次調用
PdfCanvas.DrawString()、PdfCanvas.DrawImage()、PdfCanvas.DrawLine()和PdfGraphicsWidget.Draw()方法繪制頁眉內容。 - 使用
PdfDocument.SaveToFile()方法保存修改后的 PDF 文件。
下方為代碼示例,展示了怎樣在 Python 中為一個現有的 PDF 文件添加頁眉:
from spire.pdf.common import *
from spire.pdf import *
# 創建 PdfDocument 對象
doc = PdfDocument()
# 加載 PDF 文件
doc.LoadFromFile("E:/Administrator/Python1/input/AI繪畫的利與弊-圖片版.pdf")
# 加載頁眉圖片
headerImage = PdfImage.FromFile("F:/備用圖片/Logo1.png")
# 獲取圖片point寬度值
width = headerImage.Width
unitCvtr = PdfUnitConvertor()
pointWidth = unitCvtr.ConvertUnits(width, PdfGraphicsUnit.Pixel, PdfGraphicsUnit.Point)
# 設置字體,畫刷和畫筆
font = PdfTrueTypeFont("宋體", 12.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_Purple()
pen = PdfPen(brush, 1.0)
# 設置頁眉文本
headerText = "頁眉文本示例\nwww.sampleheader.cn"
# 設置創建時間字段格式
creationDateField = PdfCreationDateField(font, brush)
creationDateField.DateFormatString = "yyyy-MM-dd"
# 創建組合字段
compositeField = PdfCompositeField(font, brush, "創建時間: {0}", [creationDateField])
compositeField.Location=PointF(55.0,48.0)
graphicsWidget = PdfGraphicsWidget(compositeField)
# 循環遍歷文檔中的每一頁
for i in range(doc.Pages.Count):
# 獲取指定頁面
page = doc.Pages[i]
# 在指定位置繪制頁眉圖片
page.Canvas.DrawImage(headerImage, page.ActualSize.Width - pointWidth - 55.0, 20.0)
# 在指定位置繪制頁眉文本
page.Canvas.DrawString(headerText, font, brush, 55.0, 20.0)
# 繪制頁眉線條
page.Canvas.DrawLine(pen, 55.0, 70.0, page.ActualSize.Width - 55.0, 70.0)
# 繪制組合字段
graphicsWidget.Draw(page.Canvas)
# 保存文件
doc.SaveToFile("E:/Administrator/Python1/output/結果.pdf")
# 釋放文檔對象
doc.Dispose()
下方為該代碼輸出的結果文件示意圖:

Python 在 PDF 中添加頁腳
頁腳通常包含 PDF 文檔的頁碼信息、版權聲明、作者或公司名稱等內容,這些信息能幫助讀者了解文檔來源并保持格式統一。通過頁腳,讀者還可以快速定位到特定頁面或章節位置,尤其在閱讀長篇報告、論文或合同時尤為方便。在 Spire.PDF 中,頁腳的繪制同樣依賴 PdfCanvas 方法,但由于其內容和布局與頁眉不同,具體實現上會有一定差異。下面我們就來看看,在 Python 中如何為 PDF 添加頁腳。
-
創建
PdfDocument對象,并通過PdfDocument.LoadFromFile()方法加載現有的 PDF 文件。 -
使用
PdfImage.FromFile()導入要繪制到頁腳的圖片。 -
定義
PdfTrueTypeFont和PdfBrushes屬性,用于設置文本繪制所需的字體和畫刷樣式。 -
創建
PdfPageNumberField()與PdfPageCountField()對象,用于顯示當前頁碼和總頁數。 -
使用
PdfCompositeField()組合頁碼信息與其他文本內容,并將其轉換為PdfGraphicsWidget類型。 -
遍歷 PDF 的每一頁,調用
PdfCanvas.DrawImage()和PdfGraphicsWidget.Draw()方法繪制頁腳內容。 -
使用
PdfDocument.SaveToFile()方法保存生成的 PDF 文件。
下方的代碼示例展示了怎樣在 Python 中添加頁腳,包含了文檔的頁數頁碼和圖片:
from spire.pdf.common import *
from spire.pdf import *
# 創建 PdfDocument 對象
doc = PdfDocument()
# 加載 PDF 文件
doc.LoadFromFile("E:/Administrator/Python1/input/AI繪畫的利與弊-圖片版.pdf")
# 加載頁腳圖片
footerImage = PdfImage.FromFile("F:/備用圖片/banner.png")
# 設置字體,畫刷
font = PdfTrueTypeFont("宋體", 12.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_White()
# 創建頁碼,總頁數字段域
pageNumberField = PdfPageNumberField()
pageCountField = PdfPageCountField()
# 創建組合字段域用于將頁碼和總頁數合成一個字符串繪制
compositeField = PdfCompositeField(font, brush, "第 {0} 頁,共 {1} 頁", [pageNumberField, pageCountField])
# 設置組合字段域要繪制的位置
pageSize = doc.Pages[0].Size
fontSize = font.MeasureString(compositeField.Text)
compositeField.Location = PointF((pageSize.Width - fontSize.Width) / 2, pageSize.Height - 45.0)
graphicsWidget = PdfGraphicsWidget(compositeField)
# 循環遍歷文檔中的每一頁
for i in range(doc.Pages.Count):
# 獲取指定頁面
page = doc.Pages[i]
# 在指定位置繪制頁腳圖片
page.Canvas.DrawImage(footerImage, 55.0, pageSize.Height - 65.0, pageSize.Width - 110.0, 50.0)
# 在指定位置繪制頁碼組合字段
graphicsWidget.Draw(page.Canvas)
# 保存文件
doc.SaveToFile("E:/Administrator/Python1/output/添加頁腳.pdf")
# 釋放文檔對象
doc.Dispose()
這是使用 Spire.PDF 添加頁碼后的 PDF 示意圖:

總結
通過以上步驟,我們可以輕松地在 PDF 文檔中添加頁眉和頁腳,無論是公司 logo、標題、頁碼,還是日期和版權信息,都能實現高度自定義。借助 Spire.PDF 的繪圖功能,你不僅能精確控制元素位置和樣式,還能保持整份文檔的排版一致性與專業外觀。掌握這些方法后,你就能讓生成的 PDF 更具結構化與品牌感,為報告、合同或技術文檔增添專業水準。

浙公網安備 33010602011771號