gpt4 book ai didi

Python-docx,制作word文件,需要检测是否在新页面

转载 作者:行者123 更新时间:2023-12-01 04:37:08 30 4
gpt4 key购买 nike

我正在使用python-docx module根据数据需求生成大量文档。当我使用传统的 document.add_picture 命令插入图形时,有几个部分,如下所示:

document.add_picture(img_after_crop, width=Inches(width)) 

我遇到的问题是,许多图片都是完成一个部分的图表,因此在图表之后我想移动到新页面,但图像的大小不同,因此有时它们已经填满了页面页。因此,如果我在图像后面放置分页符,有时会得到一个漂亮的图形,然后是下一部分的新页面,而其他时候(如果图像填满页面)流程已经移至下一页和分页符将留下一个空白页。我正在寻找一种方法来防止这种情况。如果有一种获取当前页码的好方法,我可以看看如何解决该问题。改用“节”可以解决这个问题吗(例如,如果我们已经在空白页上,节会自动开始一个新页面,但不会前进该页面)吗?检测正在处理的文档中的页面进度是理想的选择,但我愿意接受任何解决方案......

解决方案

简短形式的正确答案如下,但我花了一些尝试和错误才找出正确的使用方法,因此这里记录的是有关如何使用 page_break_before 制作标题或段落的最小代码片段跳转到下一页:

from docx import Document
document = Document()
document.add_heading('Document title', 0)
para = document.add_heading("This heading goes at the top of a new page", level=1)
para.paragraph_format.page_break_before=True
document.add_paragraph('Just some text goes here. This is a normal paragraph')
document.save('Doctest.docx')

这个python将生成一个测试word文档,其中标题位于第一页,然后标题跳到下一页,下面的段落就在它的下面。关键技巧是paragraph_format 访问,它还允许您使用 paragraph_format options 中的对齐设置、keep_together 设置等。 。我需要将几个示例拼凑在一起,以找出究竟在哪里设置该值,因此我想将其发布给后代。

最佳答案

尝试将图像后面的段落格式设置为 .page_break_before = True。 Word 呈现引擎足够智能,如果该段落恰好首先出现在新页面上,则不会添加额外的分页符。

关于Python-docx,制作word文件,需要检测是否在新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31529156/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com