如何使长文本适合 text_frame? Python-pptx

How to make long text fit into a text_frame? Python-pptx

我正在使用 python-ppt 在 Powerpoint 演示文稿中创建候选人组合。每张幻灯片有一个候选人,他们每个人都提供了有关自己的信息,例如姓名、联系人和迷你简历(我来这里是为了解决这个问题)

使用高度和宽度值创建的 text_frame 必须适合幻灯片,但必须包含 minibios 的所有长度,这是不会发生的。

在较长的阶段(>200 个字符,字体大小为 12),它超出了文本框的大小并“超出”幻灯片,因此,在演示模式或 PDF 文件中,“超出”文本丢失

有什么方法可以将文本限制在 text_frame 的 shape/size 中吗? (如果解决方案不会更改字体大小,则提供额外帮助)

简短的回答是“否”。 PowerPoint 是一种页面布局环境,很像报纸的头版,需要裁剪文本“故事”内容以适应分配的 space.

我们可能对此不习惯,因为文字处理、电子表格和网页内容被“流动”到(实际上)不受限制的 space,但 PowerPoint 幻灯片的面积相当大有限。此外,将它用于大文本块在某种程度上是标签外使用。减小字体大小提供了一定程度的灵活性,但不如人们预期的那么大。即使容纳 20% 的额外文本,也需要对字体大小做出相当大的改变。

我一次又一次地遇到这个问题,我见过的唯一可靠的解决方案是手动整理内容以适应。

python-pptx 有一个实验性功能可以解决这个问题,但它的操作从来都不是很令人满意,而且很难开始工作。 https://python-pptx.readthedocs.io/en/latest/api/text.html#pptx.text.text.TextFrame.fit_text

适合文本的业务是渲染引擎的作用,python-pptx 不是。

刚刚找到一个有助于找到答案的参数

使用 slides.shapes.add_textbox() 创建 text_box 对象并向其添加 text_frame 时,text_frame.word_wrap = True 将文本限制在 [= 的维度内27=]

代码显示得更好


    # creates text box with add_textbox(left, top, width, height)
    txBox = slide.shapes.add_textbox(Cm(16),Cm(5),Cm(17),Cm(13))
    tf = txBox.text_frame
    tf.word_wrap = True

Before word_wrap parameter

After word_wrap parameter