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