PDF 文档页眉页脚可以包含诸多信息,例如公司标识、徽标、日期、页码、联系信息、文章标题、作者姓名、案件编号、版权声明等等,PDF 文档中添加含有此类信息的页眉和页脚可使其更具可读性和专业性,同时当读者阅读长篇文档时,也可以提供导航和定位功能,简化阅读体验。总的来说,添加页眉和页脚是一种优化 PDF 文档的方法,有助于满足特定需求并增强文档的可用性。本文将介绍如何使用 Spire.PDF for Python 在现成 PDF 中添加页眉页脚。
安装 Spire.PDF for Python
本教程需要 Spire.PDF for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.PDF
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.PDF for Python
背景知识
在现成的 PDF 页面中,坐标体系设定如下:
- 坐标原点是页面的左上角定点。
- X 轴向右延伸,Y 轴向下延伸。
Spire.PDF for Python 提供 PdfCanvas.DrawString(),PdfCanvas.DrawImage(),PdfCanvas.DrawLine() 等方法在页面的指定区域添加图片、文字或横线等内容,同时也支持创建 PdfCompositeField,PdfCreationDateField,PdfPageNumberField,PdfSectionNumberField 等字段域,添加页码,创建时间,章节等动态数据至 PDF 的页面。
Python 在现成 PDF 中添加页眉
以下步骤是使用 Spire.PDF for Python 在现成 PDF 文档中添加文本、图片和创建日期内容的页眉:
- 新建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 加载 已有 PDF 文件。
- 使用 PdfImage.FromFile() 加载要绘制到页眉的图片,并使用获取其宽度。
- 定义 PdfTrueTypeFont,PdfBrushes,PdfPen 属性参数用于绘制文本和形状要使用的字体、画刷和画笔。
- 定义 String 类型的页眉文本内容。
- 创建 PdfCreationDateField() 对象并设置其日期格式。
- 创建 PdfCompositeField() 对象设置组合格式并转换为 PdfGraphicsWidget 类型。
- 遍历PDF每页调用PdfCanvas.DrawString(),PdfCanvas.DrawImage(),PdfCanvas.DrawLine(),以及 PdfGraphicsWidget.Draw() 进行页眉内容的绘制。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 对象
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile("输入文档.pdf")
# 加载页眉图片
headerImage = PdfImage.FromFile("header.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.e-iceblue.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("结果.pdf")
# 释放文档对象
doc.Dispose()
Python 在现成 PDF 中添加页脚
以下步骤是使用 Spire.PDF for Python 在现成 PDF 文档中添加图片和页码字段内容的页脚:
- 新建 PdfDocument 对象。
- 使用 PdfDocument.LoadFromFile() 加载 已有 PDF 文件。
- 使用 PdfImage.FromFile() 加载要绘制到页脚的图片。
- 定义 PdfTrueTypeFont,PdfBrushes 属性参数用于绘制文本要使用的字体和画刷。
- 创建 PdfPageNumberField() 和 PdfPageCountField() 对象。
- 创建 PdfCompositeField() 对象设置组合格式并转换为 PdfGraphicsWidget 类型。
- 遍历PDF每页调用 PdfCanvas.DrawImage() 和 PdfGraphicsWidget.Draw() 进行页脚内容的绘制。
- 使用 PdfDocument.SaveToFile() 方法保存结果文件。
- Python
from spire.pdf.common import *
from spire.pdf import *
# 创建 PdfDocument 对象
doc = PdfDocument()
# 加载 PDF 文件
doc.LoadFromFile("输入文档.pdf")
# 加载页脚图片
footerImage = PdfImage.FromFile("Footer.png")
# 设置字体,画刷
font = PdfTrueTypeFont("宋体", 12.0, PdfFontStyle.Bold, True)
brush = PdfBrushes.get_Purple()
# 创建页码,总页数字段域
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("结果.pdf")
# 释放文档对象
doc.Dispose()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。