当前位置: 首页 > news >正文

Python 轻松在 PDF 中插入页眉页脚 - E

在制作 PDF 文件时,我们常常会遇到一个问题:文件内容虽然齐全,但少了页眉页脚,显得不够专业。尤其是在生成报告、论文或合同等正式文档时,如果页面上都没有标题、页码或公司名称,不仅阅读不便,还容易造成混淆。其实,这类问题完全可以用 Python 来快速解决——只需要简单的代码,就能在 PDF 中自动添加页眉页脚,让文档更规范、更具识别度。接下来,我们就来看看具体该怎么做。

本文中使用 Spire.PDF for Python,这个专业的 PDF 库可以协助开发者简单快速地处理 PDF 文件相关的各种任务,是 Adobe Acrobat 的优选替代方案。

Python 在 PDF 中插入页眉

在 PDF 页面上添加页眉不仅能让文档更具专业感,还能提高阅读与管理的效率。比如在页眉中加入公司 logo、报告标题或页码,读者就能轻松识别文件来源并快速定位内容。使用 Spire.PDF 提供的 PdfCanvas,你可以灵活地将文字、图片或日期等信息绘制到指定位置,通过坐标精确控制布局与样式。相比手动逐页添加,程序化生成页眉不仅节省时间,还能保持版式一致。下面我们将介绍具体的实现步骤,并附上完整的代码示例。

  • 创建 PdfDocument 对象,并使用 PdfDocument.LoadFromFile() 方法加载现有的 PDF 文件。
  • 使用 PdfImage.FromFile() 导入要绘制到页眉的图片,并获取图片宽度以便后续定位。
  • 定义 PdfTrueTypeFontPdfBrushesPdfPen 等属性,用于设置文本、图形和线条的样式。
  • 定义一个 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 中添加页眉

Python 在 PDF 中添加页脚

页脚通常包含 PDF 文档的页码信息、版权声明、作者或公司名称等内容,这些信息能帮助读者了解文档来源并保持格式统一。通过页脚,读者还可以快速定位到特定页面或章节位置,尤其在阅读长篇报告、论文或合同时尤为方便。在 Spire.PDF 中,页脚的绘制同样依赖 PdfCanvas 方法,但由于其内容和布局与页眉不同,具体实现上会有一定差异。下面我们就来看看,在 Python 中如何为 PDF 添加页脚。

  • 创建 PdfDocument 对象,并通过 PdfDocument.LoadFromFile() 方法加载现有的 PDF 文件。

  • 使用 PdfImage.FromFile() 导入要绘制到页脚的图片。

  • 定义 PdfTrueTypeFontPdfBrushes 属性,用于设置文本绘制所需的字体和画刷样式。

  • 创建 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 示意图:

Python 在 PDF 中添加页脚

总结

通过以上步骤,我们可以轻松地在 PDF 文档中添加页眉和页脚,无论是公司 logo、标题、页码,还是日期和版权信息,都能实现高度自定义。借助 Spire.PDF 的绘图功能,你不仅能精确控制元素位置和样式,还能保持整份文档的排版一致性与专业外观。掌握这些方法后,你就能让生成的 PDF 更具结构化与品牌感,为报告、合同或技术文档增添专业水准。

http://www.gsyq.cn/news/29460.html

相关文章:

  • 数据库分类详解
  • 2025年护栏厂家权威推荐榜单:不锈钢栏杆/桥梁防撞护栏/河道景观护栏,专业设计与安全防护全解析
  • Flannel 为 Kubernetes 集群中的容器提供了多种网络通信模式
  • Linux下的拼音输入法 (1)
  • 鸿蒙NEXT开发浅进阶到精通14:鸿蒙制作项目中遇到的需求问题及解决笔记05
  • oracle 数据字典应用
  • devtoolset-11 工具集
  • 2025 长沙美食餐厅最新推荐排行榜权威发布:红记领衔榜单,协会测评认证湘味品质指南 长沙海鲜店/火锅店/小吃店/长沙宵夜推荐
  • 在nginx中实现回源日志的功能
  • 实用指南:web核心—HTTP
  • 2025年北京工程造价咨询公司权威推荐榜单:工程预算造价/造价咨询甲级/全过程工程咨询源头公司精选
  • USB 扩展网卡全方位指南:从选购到使用
  • 2025年评价高的甜酒酿,醪糟甜酒酿推荐TOP品牌厂家
  • 2025年口碑好的荷兰七箭精酿啤酒,精酿啤酒出酒龙头直销制造
  • 2025年比较好的布袋定制,帆布布袋定制厂家最新推荐排行榜
  • 计算机硕士AIGC方向学习内容规划
  • 2025年评价高的耐高温劳保鞋,耐油耐酸碱劳保鞋鞋直销制造
  • 2025年知名的陕西白水苹果,白水苹果品牌甄选
  • 2025年优质的合规管理知识产权贯标,知识产权贯标推荐
  • 不知道笔记本怎么添加打印机?教你3招轻松搞定!
  • 2025年可靠的注册公司咨询费用
  • 好用的国内AI大模型有哪些?赶紧来看!
  • 2025年比较好的抖音运营推荐
  • 2025年有能力的短视频拍摄哪家好
  • 股票操作统计分析报告 - 2025年10月24日
  • 2025年便宜又好的昆明旅行社,云南旅行社哪家强
  • 2025年靠谱的休闲度假区景区策划,主题公园景区策划顾问咨询
  • 2025年品牌短视频运营课程
  • 2025年知名的装修全包,装修定制公司
  • 2025年诚信的老板IP短视频代运营,城阳短视频代运营培训