Python轻松实现在PDF中插入页眉页脚

Written by

in

文章目录
  • 在 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() 下方为该代码输出的结果文件示意图:
  • 页脚通常包含 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 更具结构化与品牌感,为报告、合同或技术文档增添专业水准。 到此这篇关于Python轻松实现在PDF中插入页眉页脚的文章就介绍到这了,更多相关Python PDF插入页眉页脚内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客! 您可能感兴趣的文章: Python实现在PDF插入页眉页脚 使用Python合并PDF文件并添加自定义目录及页脚的全过程 基于Python实现向指定PDF指定页面指定位置插入图片的方法 Python批量处理PDF图片的操作指南(插入、压缩、提取、替换、分页、旋转、删除) 使用Python插入SVG到PDF文档中的方法示例 利用Python实现在PDF文档中插入文字水印 Python使用PyPDF2库实现向PDF文件中插入内容
  • 目录
    • Python 在 PDF 中插入页眉
    • Python 在 PDF 中添加页脚
    • 总结

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

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

    在 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()
    

    下方为该代码输出的结果文件示意图:

    页脚通常包含 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 示意图:

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

    到此这篇关于Python轻松实现在PDF中插入页眉页脚的文章就介绍到这了,更多相关Python PDF插入页眉页脚内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!

    您可能感兴趣的文章:

    • Python实现在PDF插入页眉页脚
    • 使用Python合并PDF文件并添加自定义目录及页脚的全过程
    • 基于Python实现向指定PDF指定页面指定位置插入图片的方法
    • Python批量处理PDF图片的操作指南(插入、压缩、提取、替换、分页、旋转、删除)
    • 使用Python插入SVG到PDF文档中的方法示例
    • 利用Python实现在PDF文档中插入文字水印
    • Python使用PyPDF2库实现向PDF文件中插入内容

    站内搜索