2024-06-16 21:03:39 发布
网友
我正在使用python-docx生成一些文档。在
我可以看到存在一个line numbering property,它可以应用于文档部分(至少对于OOXML标准)。在
我还可以看到这个属性不在python-docx API中。在
我假设可以访问底层的sectPr字段来添加lnNumType标记,但我无法(轻松)找到任何示例。在
sectPr
lnNumType
我是否混淆了我的标准?还是我的问题有点模糊?在
一旦有了Section对象,就可以通过以下方式获得sectPr元素:
sectPr = section._sectPr
如果你在上搜索python-docx工作区函数OxmlElement'你会找到一些例子。所有元素都继承自lxml\u元素,因此lxml操作可以工作。BaseOxmlElement还添加了一些方便的其他方法。基本要点是:
在许多情况下,您需要注意以正确的顺序获取任何新的子元素,因为几乎总是规定了顺序。在
您可以在这里找到一些对w:sectPr元素的方便分析: http://python-docx.readthedocs.io/en/latest/dev/analysis/features/sections.html
w:sectPr
从一眼就能看出,您只需在末尾附加一个w:lnNumType,因为后面的元素不太常见。但如果您想更严格些,您可以使用这个代替sectPr.append():
w:lnNumType
sectPr.append()
sectPr.insert_element_before(lnNumType, ( 'w:pgNumType', 'w:pgNumType', 'w:cols', 'w:formProt', 'w:vAlign', 'w:noEndnote', 'w:titlePg', 'w:textDirection', 'w:bidi', 'w:rtlGutter', 'w:docGrid', 'w:printerSettings', 'w:sectPrChange', ))
您可以在这里看到.insert_element_before()的实现: https://github.com/python-openxml/python-docx/blob/master/docx/oxml/xmlchemy.py#L718
.insert_element_before()
一旦有了Section对象,就可以通过以下方式获得sectPr元素:
如果你在上搜索python-docx工作区函数OxmlElement'你会找到一些例子。所有元素都继承自lxml\u元素,因此lxml操作可以工作。BaseOxmlElement还添加了一些方便的其他方法。基本要点是:
^{pr2}$在许多情况下,您需要注意以正确的顺序获取任何新的子元素,因为几乎总是规定了顺序。在
您可以在这里找到一些对
w:sectPr
元素的方便分析: http://python-docx.readthedocs.io/en/latest/dev/analysis/features/sections.html从一眼就能看出,您只需在末尾附加一个
w:lnNumType
,因为后面的元素不太常见。但如果您想更严格些,您可以使用这个代替sectPr.append()
:您可以在这里看到
.insert_element_before()
的实现: https://github.com/python-openxml/python-docx/blob/master/docx/oxml/xmlchemy.py#L718相关问题 更多 >
编程相关推荐