python-pptx有fit_text()的问题

问题描述 投票:0回答:1

我试图在文本框上调用fit_text(),但我不断收到此错误:

'NoneType' object is not iterable

从这条线

python3.6/site-packages/pptx/text/layout.py in _wrap_lines, line 112

是的

text, remainder = self._break_line(line_source, point_size)

这是我生成错误的代码。我不知道这里有什么不对,line_sourcepoint_size都不是。

def replace_text_of_shape(shape, data):
    if shape.has_text_frame:
        # replace_text_with(shape.text_frame.paragraphs, data)
        shape.text_frame.fit_text(font_family='Calibri', max_size=18, bold=False, italic=False)
python python-pptx
1个回答
1
投票

我最近收到了同样的错误。我不确定我有最好的解决方案,但我发现你试图在文本框架中保存的字符串(数据)太大了。我不确定你是否在文本框架上设置了界限,但你可以通过执行以下操作使其更大:(改变obj_width的大小)

txBox = slide.shapes.add_textbox(left=Inches(obj_left), top=Inches(obj_top), height=Inches(obj_height), width=Inches(obj_width))

或者,您可以使变量“数据”更小。不确定这真的是你想要的答案。

我最后只是在fit_text命令周围进行了try / except。看看它是否能为您提供类似于您所寻找的东西。

variable1 = shape.text_frame
try:
    variable1.fit_text(font_family='Calibri', max_size=18, bold=False, italic=False)
except:
    print('could not fit the text correctly')
© www.soinside.com 2019 - 2024. All rights reserved.