我正在尝试在文本框中调用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_source
和point_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)
答案 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')