Python 如何使docx文件呈现/加载/添加并保留所有w:LastRenderedPageBreak
我目前正在处理docx文件,并使用w:lastrendedpagebreak作为每个页面内容的标记。有必要确定页面是否已结束 我当前的代码如下:Python 如何使docx文件呈现/加载/添加并保留所有w:LastRenderedPageBreak,python,vba,docx,win32com,python-docx,Python,Vba,Docx,Win32com,Python Docx,我目前正在处理docx文件,并使用w:lastrendedpagebreak作为每个页面内容的标记。有必要确定页面是否已结束 我当前的代码如下: from docx import Document document = Document(file) for p in document.paragraphs: if 'lastRenderedPageBreak' in p._element.xml: # do something # rest of code here 现在我遇
from docx import Document
document = Document(file)
for p in document.paragraphs:
if 'lastRenderedPageBreak' in p._element.xml:
# do something
# rest of code here
现在我遇到的问题是,一个只有4页的docx文件只有2个w:lastrendedpagebreak标记。我尝试打开docx文件并保存它,但是w:lastrendedpagebreak标记没有增加
只有在打开docx文件并将其另存为XML文件时,w:lastrenderdpagebreak才会正确显示分页符
在使用PythonDocx解析文本和格式化时,是否有任何方法跳过另存为XML部分以正确查看lastrenderedpagebreaks?如果可能的话,我想用python、win32com或vba来实现
编辑:
我想要w:lastRenderedPageBreak的原因是我在解析内容时处理脚注时遇到问题,因为它们的格式与普通文本相同(源代码有问题,无法修复)。唯一的区别是它们的开头有一个上标数字。这里需要确定页面是否已经结束,因为当前如果脚本不知道页面是否已经结束,它将继续将下一页的文本包含在脚注中,直到找到w:lastrenderdpagebreak
例:
我希望docx的XML从以下内容更改:
脚注1:此处为文本\P
此处的附加文本属于脚注1。
脚注2:此处为文本。
新页面文本从这里开始
为此:
脚注1:此处为文本\P
此处的附加文本属于脚注1。
脚注2:此处为文本。
新页面文本从这里开始
所有文本都包含在框架中,因此无需担心页面大小、方向和边距。只要可以用内容或xml标记页面的结尾或新页面的开头,docx的外观就无关紧要了。
w:lastRenderedPageBreak
有太多限制,无法用作分页指示器:
w:lastrenderdpagebreak
元素
w:lastrenderdpagebreak
元素将过时
w:lastrendedpagerbreak
我只希望添加分页符
然后您必须自己添加。同样,Word不是PDF或desktot发布应用程序。就像HTML或LaTeX一样,页面是根据媒体和内容动态计算的,而不是以其他方式,这不是脚注的工作方式。它们存储在脚注
部分中,并在分页后始终显示在页脚中。同样,Word与LaTex几乎没有什么不同(除了XML文件等部分…pat)。你不需要知道一个页面是如何分页来找到它的脚注或它们的引用的。这就是Word的目录和脚注、图像列表的工作原理。感谢您的总结。我可以经历1-4,5中的一些问题已经通过我脚本中的逻辑处理了。到目前为止,我还没有看到我测试过的文档中的表格和图像。所有内容都放在框架中,因此页面大小和边距实际上并不重要,因为我只想知道页面的结尾在哪里,这样我就可以完善处理内容连续性的当前逻辑。你承认基础是流沙,但你仍然希望在此基础上继续发展。祝你好运