硬分页符将作为<w:br>
元素出现在run元素(<w:r>
)中,如下所示:
<w:p>
<w:r>
<w:t>some text</w:t>
<w:br w:type="page"/>
</w:r>
</w:p>
因此,一种方法是将所有这些出现替换为独特的文本字符串,例如“ {{foobar}}”。
的实现将是这样的:
from lxml import etree
from docx import nsprefixes
page_br_elements = document.xpath(
"//w:p/w:r/w:br[@w:type='page']", namespaces={'w': nsprefixes['w']}
)
for br in page_br_elements:
t = etree.Element('w:t', nsmap={'w': nsprefixes['w']})
t.text = '{{foobar}}'
br.addprevIoUs(t)
parent = br.getparent()
parent.remove(br)
我没有时间进行测试,因此您可能会遇到一些缺失的导入或其他内容,但是所需的一切都应该已经在docx模块中。其余的是lxml
对_Element的方法调用。
让我知道您的情况,如有需要,我可以进行调整。