在制作 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 更具结构化与品牌感,为报告、合同或技术文档增添专业水准。