如何使长文本适合 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
我正在使用 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