在 Word 文档中,页眉位于页面顶部,通常包含文档标题、章节标题、作者姓名等信息;页脚位于页面底部,通常包含页码、日期、版权信息等内容。通过在文档中插入页眉和页脚,可以使文档更具结构性和完整性,为读者提供更好的阅读体验,同时也有助于文档的管理和传达信息。在本文中,我们将解释如何使用 Spire.Doc for Python 在 Python 中插入页眉页脚到 Word 文档。
安装 Spire.Doc for Python
本教程需要 Spire.Doc for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考此教程: 如何在 Windows 中安装 Spire.Doc for Python
Python 插入页眉页脚到 Word 文档
您可以使用 Spire.Doc for Python 提供的 Section.HeadersFooters.Header 和 Section.HeadersFooters.Footers 属性获取 Word 文档的页眉页脚,然后在页眉页脚中添加段落,再将文本、图片、页码等添加到段落中。详细步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载一个 Word 文档。
- 使用 Document.Sections[] 属性获取 Word 文档的第一个章节。
- 使用自定义的 InsertHeaderAndFooter(Section) 方法插入页眉和页脚到该节中。
- 使用 Document.SaveToFile() 方法保存结果文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 定义一个函数,用于在节中插入页眉和页脚
def InsertHeaderAndFooter(section):
# 获取节的页眉和页脚对象
header = section.HeadersFooters.Header
footer = section.HeadersFooters.Footer
# 在页眉中添加段落
headerParagraph = header.AddParagraph()
# 在页眉段落中插入图片
headerPicture = headerParagraph.AppendPicture("Header.png")
# 在页眉段落中插入文本
text = headerParagraph.AppendText("添加页眉")
text.CharacterFormat.FontName = "宋体"
text.CharacterFormat.FontSize = 10
text.CharacterFormat.Italic = True
headerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Right
# 设置页眉段落的底部边框样式
headerParagraph.Format.Borders.Bottom.BorderType = BorderStyle.Single
headerParagraph.Format.Borders.Bottom.Space = 0.05
# 设置图片的文本环绕样式和位置
headerPicture.TextWrappingStyle = TextWrappingStyle.Behind
headerPicture.HorizontalOrigin = HorizontalOrigin.Page
headerPicture.HorizontalAlignment = ShapeHorizontalAlignment.Left
headerPicture.VerticalOrigin = VerticalOrigin.Page
headerPicture.VerticalAlignment = ShapeVerticalAlignment.Top
# 在页脚中添加段落
footerParagraph = footer.AddParagraph()
# 在页脚段落中插入图片
footerPicture = footerParagraph.AppendPicture("Footer.png")
# 设置页脚图片的文本环绕样式和位置
footerPicture.TextWrappingStyle = TextWrappingStyle.Behind
footerPicture.HorizontalOrigin = HorizontalOrigin.Page
footerPicture.HorizontalAlignment = ShapeHorizontalAlignment.Left
footerPicture.VerticalOrigin = VerticalOrigin.Page
footerPicture.VerticalAlignment = ShapeVerticalAlignment.Bottom
# 在页脚段落中插入文本和字段
footerParagraph.AppendText("第 ")
footerParagraph.AppendField("页码", FieldType.FieldPage)
footerParagraph.AppendText("页 共 ")
footerParagraph.AppendField("页数", FieldType.FieldNumPages)
footerParagraph.AppendText("页")
footerParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center
# 设置页脚段落的顶部边框样式
footerParagraph.Format.Borders.Top.BorderType = BorderStyle.Single
footerParagraph.Format.Borders.Top.Space = 0.05
# 创建一个新的文档对象
document = Document()
# 从现有文件加载文档内容
document.LoadFromFile("示例文档.docx")
# 获取第一个节
section = document.Sections[0]
# 在节中插入页眉和页脚
InsertHeaderAndFooter(section)
# 将文档保存为"添加页眉页脚.docx"文件,使用Docx格式
document.SaveToFile("添加页眉页脚.docx", FileFormat.Docx)
# 关闭文档对象
document.Close()
Python 插入表格到 Word 文档的页眉
Word 文档的页眉也支持添加表格作为其内容;Spire.Doc for Python 提供了 Header.AddTable(True) 方法添加表格到页眉。详细步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载一个 Word 文档。
- 使用 Document.Sections[] 属性获取 Word 文档的第一个章节。
- 使用自定义的 InsertTableToHeader (Section) 方法将表格添加到该节的页眉中
- 使用 Document.SaveToFile() 方法保存结果文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 定义一个函数,用于在页眉中插入表格
def InsertTableToHeader(section):
# 获取节的页眉对象
header = section.HeadersFooters.Header
# 在页眉中添加一个表格
tableHeader = header.AddTable(True)
tableHeader.ResetCells(2, 2)
data = [["出版号", "日期"], ["SC12546", "2019年7月24日"]]
i = 0
while i < len(data):
dataRow = tableHeader.Rows[i]
dataRow.Height = 20
dataRow.HeightType = TableRowHeightType.Exactly
dataRow.RowFormat.BackColor = Color.Empty()
c = 0
while c < len(data[i]):
dataRow.Cells[c].CellFormat.VerticalAlignment = VerticalAlignment.Middle
range = dataRow.Cells[c].AddParagraph().AppendText(data[i][c])
range.CharacterFormat.FontName = "宋体"
dataRow.Cells[c].CellFormat.HorizontalAlignment = HorizontalAlignment.Center
c += 1
i += 1
# 创建一个新的文档对象
document = Document()
# 从现有文件加载文档内容
document.LoadFromFile("示例文档.docx")
# 获取第一个节
section = document.Sections[0]
# 在节的页眉中插入表格
InsertTableToHeader(section)
# 将文档保存为"添加表格页眉.docx"文件,使用Docx格式
document.SaveToFile("添加表格页眉.docx", FileFormat.Docx)
document.Close()
Python 设置 Word 文档首页页眉页脚不同
Spire.Doc for Python 提供了一个 Section.PageSetup.DifferentFirstPageHeaderFooter 属性可以设置首页页眉页脚与其他页不同。详细步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载一个 Word 文档。
- 使用 Document.Sections[] 属性获取第一个章节。
- 使用 Section.PageSetup.DifferentFirstPageHeaderFooter 属性设置首页和其他页页眉页脚不同
- 分别设置第一页和其他页的页眉页脚内容。
- 使用 Document.SaveToFile() 方法保存结果文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 定义输入和输出文件名
inputFile = "输入文档.docx"
outputFile = "首页不同.docx"
# 创建一个文档对象
doc = Document()
# 从文件加载文档内容
doc.LoadFromFile(inputFile)
# 获取第一个节
section = doc.Sections[0]
# 设置不同的首页页眉和页脚
section.PageSetup.DifferentFirstPageHeaderFooter = True
# 在第一页的页眉中添加段落
paragraph1 = section.HeadersFooters.FirstPageHeader.AddParagraph()
paragraph1.Format.HorizontalAlignment = HorizontalAlignment.Left
range1 = paragraph1.AppendText("首页页眉")
range1.CharacterFormat.FontName = "宋体"
range1.CharacterFormat.FontSize = 12
# 在第一页的页脚中添加段落
paragraph2 = section.HeadersFooters.FirstPageFooter.AddParagraph()
paragraph2.Format.HorizontalAlignment = HorizontalAlignment.Left
range2 = paragraph2.AppendText("首页页脚")
range2.CharacterFormat.FontName = "宋体"
range2.CharacterFormat.FontSize = 12
# 在非首页页眉中添加段落
paragraph3 = section.HeadersFooters.Header.AddParagraph()
paragraph3.Format.HorizontalAlignment = HorizontalAlignment.Right
range3 = paragraph3.AppendText("非首页页眉")
range3.CharacterFormat.FontName = "微软雅黑"
range3.CharacterFormat.FontSize = 14
# 在非首页页脚中添加段落
paragraph4 = section.HeadersFooters.Footer.AddParagraph()
paragraph4.Format.HorizontalAlignment = HorizontalAlignment.Right
range4 = paragraph4.AppendText("非首页页脚")
range4.CharacterFormat.FontName = "微软雅黑"
range4.CharacterFormat.FontSize = 14
# 将文档保存为指定的输出文件
doc.SaveToFile(outputFile, FileFormat.Docx)
# 关闭文档对象
doc.Close()
Python 设置 Word 文档奇偶页页眉页脚不同
Spire.Doc for Python 提供了 Section.PageSetup.DifferentOddAndEvenPagesHeaderFooter 属性来设置奇数页和偶数页不同的页眉页脚内容。详细步骤如下:
- 创建一个 Document 类的对象。
- 使用 Document.LoadFromFile() 方法加载一个 Word 文档。
- 使用 Document.Sections[] 属性获取第一个章节。
- 使用 Section.PageSetup.DifferentOddAndEvenPagesHeaderFooter 属性设置奇数页和偶数页页眉页脚不同。
- 分别设置奇数页和偶数页的页眉页脚内容。
- 使用 Document.SaveToFile() 方法保存结果文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 定义输入和输出文件名
inputFile = "示例文档.docx"
outputFile = "奇偶页眉页脚.docx"
# 创建一个文档对象
doc = Document()
# 从文件加载文档内容
doc.LoadFromFile(inputFile)
# 获取第一个节
section = doc.Sections[0]
# 设置不同的奇偶页页眉和页脚
section.PageSetup.DifferentOddAndEvenPagesHeaderFooter = True
# 在奇数页的页眉中添加段落
P3 = section.HeadersFooters.OddHeader.AddParagraph()
OH = P3.AppendText("奇数页页眉")
P3.Format.HorizontalAlignment = HorizontalAlignment.Center
OH.CharacterFormat.FontName = "微软雅黑"
OH.CharacterFormat.FontSize = 10
# 在偶数页的页眉中添加段落
P4 = section.HeadersFooters.EvenHeader.AddParagraph()
EH = P4.AppendText("偶数页页眉")
P4.Format.HorizontalAlignment = HorizontalAlignment.Center
EH.CharacterFormat.FontName = "微软雅黑"
EH.CharacterFormat.FontSize = 10
# 在奇数页的页脚中添加段落
P2 = section.HeadersFooters.OddFooter.AddParagraph()
OF = P2.AppendText("奇数页页脚")
P2.Format.HorizontalAlignment = HorizontalAlignment.Center
OF.CharacterFormat.FontName = "微软雅黑"
OF.CharacterFormat.FontSize = 10
# 在偶数页的页脚中添加段落
P1 = section.HeadersFooters.EvenFooter.AddParagraph()
EF = P1.AppendText("偶数页页脚")
EF.CharacterFormat.FontName = "微软雅黑"
EF.CharacterFormat.FontSize = 10
P1.Format.HorizontalAlignment = HorizontalAlignment.Center
# 将文档保存为指定的输出文件
doc.SaveToFile(outputFile, FileFormat.Docx)
# 关闭文档对象
doc.Close()
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。