使用
python-docx
如何使页码从第一页的另一页开始但仍然从1开始?
使用这个问题的答案,我想出了以下可重现的示例。
它从正确的页面(第4页)开始编号,但它从第4页开始,我希望它是第1页。如何解决这个问题?
import docx
from docx.enum.section import WD_SECTION
from docx.oxml import OxmlElement, ns
def create_element(name):
return OxmlElement(name)
def create_attribute(element, name, value):
element.set(ns.qn(name), value)
def add_page_number(section):
p = section.footer.paragraphs[0]
p.alignment = 1
p.style.font.size = Pt(9)
p.style.font.name = DEFAULT_FONT_NAME
run = p.add_run()
fldChar1 = create_element('w:fldChar')
create_attribute(fldChar1, 'w:fldCharType', 'begin')
instrText = create_element('w:instrText')
create_attribute(instrText, 'xml:space', 'preserve')
instrText.text = "PAGE"
fldChar2 = create_element('w:fldChar')
create_attribute(fldChar2, 'w:fldCharType', 'end')
run._r.append(fldChar1)
run._r.append(instrText)
run._r.append(fldChar2)
document = docx.Document()
# first blank page
document.add_page_break()
# second blank page
document.add_page_break()
# 3rd page with some text
p = document.add_paragraph("Title")
document.add_page_break()
# page from which I want to get page numbers:
document.add_section(WD_SECTION.NEW_PAGE)
document.sections[1].footer.is_linked_to_previous = False
document.add_paragraph("text of my first page")
# add page numbers
add_page_number(document.sections[1])
# save
document.save('example.docx')
要在非文档首页的页面上从 1 开始页码,您可以修改 add_page_number 函数以指定起始页码。 向 add_page_number 函数添加可选的 start_page_number 参数,该参数允许您指定起始页码。在add_page_number函数中,在“PAGE”字段命令后添加页码。您可以将 start_page_number 设置为 1,以便在所需页面上从 1 开始编号。