在 word 文档中添加页码是一项基本功能,可增强可读性和导航功能,尤其是在冗长的文档中。它能让读者更容易找到特定内容,并帮助作者组织工作。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 在 word 文档中动态添加页码,您可以利用各种字段,如 fieldpage、fieldnumpages 和 fieldsection。这些字段可作为当前页码、总页数和章节编号的占位符,使您能够自定义并自动执行分页过程。
您可以通过调用 paragraph.appendfield() 方法将这些占位符嵌入文档的页眉或页脚。
以下是如何在页脚插入 fieldpage 和 fieldnumpages 字段的分步指南,该字段将以 "x / y" 格式显示页码:
- 创建一个 document 对象。
- 从指定文件路径加载 word 文档。
- 使用 document.sections[index] 属性获取第一个章节。
- 使用 section.headersfooters.footer 属性获取第一个章节的页脚。
- 使用 headerfooter.addparagraph() 方法在页脚中添加一个段落。
- 使用 paragraph.appendfield() 方法在段落中插入 fieldpage 域和 fieldnumpages 域。
- 将文档另存为 word 文件。
- python
from spire.doc import *
from spire.doc.common import *
# 创建一个document对象
document = document()
# 加载文档
document.loadfromfile("示例文档.docx")
# 获取文档的第一个节(section)
section = document.sections[0]
# 获取这个节的页脚(footer)
footer = section.headersfooters.footer
# 在页脚中添加一个新的段落
footerparagraph = footer.addparagraph()
# 在这个段落中添加页码字段
footerparagraph.appendfield("page number", fieldtype.fieldpage)
# 添加文本 " / "
footerparagraph.appendtext(" / ")
# 在这个段落中添加总页数字段
footerparagraph.appendfield("page count", fieldtype.fieldnumpages)
# 设置段落的水平对齐方式为居中
footerparagraph.format.horizontalalignment = horizontalalignment.center
# 创建一个新的段落样式(paragraphstyle)
style = paragraphstyle(document)
# 设置样式的字符格式为粗体
style.characterformat.bold = true
# 设置样式的字体为"times new roman"
style.characterformat.fontname = "times new roman"
# 设置样式的字体大小为18
style.characterformat.fontsize = 18
# 设置样式的文本颜色为红色
style.characterformat.textcolor = color.get_red()
# 将这个样式添加到文档的样式集合中
document.styles.add(style)
# 将这个样式应用到页脚段落上
footerparagraph.applystyle(style)
# 保存结果文件
document.savetofile("添加页码到文档.docx")
# 释放文档对象占用的资源
document.dispose()
python 为特定章节添加页码
默认情况下,当您在某一章节的页脚添加页码时,页码会自动链接到前一章节,从而保持连续的页码序列。这种行为对大多数文档来说都很方便,但当你想从某一章节开始编号而又不影响文档其他部分的编号时,这种行为可能就不太理想了。
如果需要在特定章节添加页码,而又不与前一章节链接,则必须取消后续章节的链接,并清除其页脚的内容。下面是使用 spire.doc for python 的方法。
- 创建一个 document 对象。
- 从指定文件路径加载 word 文档。
- 使用 document.sections[index] 属性获取特定章节。
- 使用 section.headersfooters.footer 属性获取该章节的页脚。
- 将 section.pagesetup.restartpagenumbering 属性设置为 true,并将 section.pagesetup.pagestartingnumber 属性设置为 1,从而从 1 开始重新编排页码。
- 使用 paragraph.appendfield() 方法在页脚插入 fieldpage 域和 fieldsection 域。
- 将 headersfooters.footer.linktoprevious 属性设置为 false,从而禁用 "链接到上一页"。
- 删除后续部分的页脚内容。
- 将文档另存为 word 文件。
- python
from spire.doc import *
from spire.doc.common import *
# 创建一个新的document对象
document = document()
# 加载文档内容
document.loadfromfile("示例文档.docx")
# 指定要操作的章节的索引
sectionindex = 0
# 获取指定的节
section = document.sections[sectionindex]
# 设置章节重新开始页码编号
section.pagesetup.restartpagenumbering = true
# 设置节的起始页码为1
section.pagesetup.pagestartingnumber = 1
# 获取这个节的页脚
footer = section.headersfooters.footer
# 在页脚中添加一个新的段落
footerparagraph = footer.addparagraph()
# 在段落中添加文本
footerparagraph.appendtext("第 ")
# 添加页码域
footerparagraph.appendfield("page number", fieldtype.fieldpage)
# 添加文本
footerparagraph.appendtext("页, 章节 ")
# 添加章节域
footerparagraph.appendfield("section number", fieldtype.fieldsection)
# 设置段落的水平对齐方式为居中
footerparagraph.format.horizontalalignment = horizontalalignment.center
# 创建一个新的段落样式
style = paragraphstyle(document)
# 设置样式的字符格式为粗体
style.characterformat.bold = true
# 设置样式的字体为"宋体"
style.characterformat.fontname = "宋体"
# 设置样式的字体大小为18
style.characterformat.fontsize = 18
# 设置样式的文本颜色为红色
style.characterformat.textcolor = color.get_red()
# 将这个样式添加到文档的样式集合中
document.styles.add(style)
# 将这个样式应用到页脚段落上
footerparagraph.applystyle(style.name)
# 断开后续节的页脚与前一个节的链接
document.sections[sectionindex 1].headersfooters.footer.linktoprevious = false
# 清除后续所有节的页脚内容,并添加空段落(防止内容继承)
for i in range(sectionindex 1, document.sections.count):
document.sections[i].headersfooters.footer.childobjects.clear()
document.sections[i].headersfooters.footer.addparagraph()
#保存结果文件
document.savetofile("添加页码到指定章节.docx")
# 释放文档对象占用的资源
document.dispose()
python 为不同章节添加不连续的页码
在处理包含多个部分的文档时,您可能希望为每个部分重新开始页码编号,以便清楚地区分它们。为此,您必须逐个章节添加页码,然后为下一章节重新设置页码。
以下是使用 spire.doc for python 为不同章节添加不连续页码的步骤:
- 创建一个 document 对象。
- 从指定的文件路径加载 word 文档。
- 遍历文档中的所有章节。
- 使用 document.sections[index] 属性获取特定章节。
- 使用 section.headersfooters.footer 属性获取章节的页脚。
- 将 section.pagesetup.restartpagenumbering 属性设置为 true,将 section.pagesetup.pagestartingnumber 属性设置为 1,从 1 开始重新编排页码。
- 使用 paragraph.appendfield() 方法在页脚插入 fieldpage 域和 fieldsection 域。
- 将文档另存为 word 文件。
- python
from spire.doc import *
from spire.doc.common import *
# 创建一个document对象
document = document()
# 从文件中加载文档
document.loadfromfile("示例文档.docx")
# 遍历文档中的所有章节
for i in range(document.sections.count):
# 获取当前章节
section = document.sections[i]
# 设置章节的页码重新开始
section.pagesetup.restartpagenumbering = true
# 设置章节的起始页码为1
section.pagesetup.pagestartingnumber = 1
# 获取章节的页脚
footer = section.headersfooters.footer
# 在页脚中添加一个新的段落
footerparagraph = footer.addparagraph()
# 在段落中添加文本
footerparagraph.appendtext("第 ")
# 添加页码域
footerparagraph.appendfield("page number", fieldtype.fieldpage)
# 添加文本
footerparagraph.appendtext(" 页, 章节 ")
# 添加章节域
footerparagraph.appendfield("section number", fieldtype.fieldsection)
# 设置段落的水平对齐方式为居中
footerparagraph.format.horizontalalignment = horizontalalignment.center
# 创建一个新的段落样式
style = paragraphstyle(document)
# 设置样式的字符格式为粗体
style.characterformat.bold = true
# 设置样式的字体为“宋体”
style.characterformat.fontname = "宋体"
# 设置样式的字体大小为18
style.characterformat.fontsize = 18
# 设置样式的文本颜色为红色
style.characterformat.textcolor = color.get_red()
# 将这个样式添加到文档的样式集合中
document.styles.add(style)
# 将这个样式应用到页脚段落上
footerparagraph.applystyle(style.name)
# 保存修改后的文档
document.savetofile("添加不连续的页码到不同的章节.docx")
# 释放文档对象占用的资源
document.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。