python-pptx, имеющий проблему с fit_text () - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь вызвать 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 не являются None.

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 голосов
/ 10 марта 2019

Недавно я получил ту же ошибку.Я не уверен, что у меня есть лучшие решения, но я обнаружил, что строка (данные), которую вы пытаетесь сохранить в текстовом фрейме, слишком велика.Я не уверен, что вы устанавливаете границу для текстового фрейма, но вы можете либо увеличить его, сделав что-то вроде: (измените размер 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.Посмотрите, даст ли это что-то похожее на то, что вы ищете.

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')
...