最近在帮忙草拟一些制度,我先用的Excel编辑,然后用python一键生成Word文档,其他部分都很好找参照,唯一就是那个页码格式,我死活搞不成“- 1 -、- 2 -、……”这样的。
在网上摸索了好久也没相同的需求,我只能搞两个空Word设置页码,然后导出xml对比。
后来我发现在section部分,有一个pgNumType,把格式设置成numberInDash即可。
页码部分的完整代码如下:
from docx.shared import Pt from docx.oxml.ns import qn from docx.oxml.shared import OxmlElement from docx.enum.text import WD_ALIGN_PARAGRAPH …… # 设置页码 footer = section.footer p = footer.paragraphs[0] # 四号字体 p.style.font.size = Pt(14) # 居中 p.style.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER # 行距为0 p.style.paragraph_format.first_line_indent = 0 # 插入页码 page_number = OxmlElement("w:fldSimple") page_number.set(qn("w:instr"), r'PAGE') run = OxmlElement("w:r") run.append(page_number) p._p.append(run) # 设置为numberInDash numberStyle = OxmlElement("w:pgNumType") numberStyle.set(qn("w:fmt"), r'numberInDash') section._sectPr.append(numberStyle) ……
Comments | NOTHING