python-pptx遇到fit_text()问题

时间:2018-12-04 21:32:31

标签: python python-pptx

我正在尝试在文本框中调用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)

1 个答案:

答案 0 :(得分: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')