Python-pptx - предложение разделяется при печати в несколько строк - PullRequest
0 голосов
/ 20 сентября 2018

Я печатаю из .pptx, но отдельные предложения разбиваются где-то между строк на новую строку .. Вот скриншот со слайда. enter image description here

Когдачтение кода ниже .. из pptx import Презентация

prs = Presentation(path_to_presentation)
for slide in prs.slides:
      for shape in slide.shapes:
            if not shape.has_text_frame:
                continue
            for paragraph in shape.text_frame.paragraphs:
                for run in paragraph.runs:
                    print(run.text)

Получение вывода, как показано ниже ...

Books include:
Learning Python 
by Mark Lutz
Python Essential Reference 
by David Beazley
Python Cookbook
, ed. by Martelli, Ravenscroft and Ascher
(online at http://code.activestate.com/recipes/langs/python/)
http://wiki.python.org/moin/PythonBooks

Вы можете сравнить скриншот для pptx и печатный текст из pptx, bulletбаллы делятся на два или более предложений. Как «Изучение Python Марка Лутца» с двумя точками: «Изучение Питона» и «Марк Латс», и даже пули пропускаются.

Как это исправитьвопрос

1 Ответ

0 голосов
/ 21 сентября 2018

Короткий ответ - использование paragraph.text, а не run.text:

for paragraph in shape.text_frame.paragraphs:
    print(paragraph.text)

Абзац - это связный блок текста, который проходит между полями без вертикального разрыва.Это пользовательское различие, потому что оно влияет на то, как мы читаем контент.Прогон - это последовательность символов с одинаковым форматированием символов (т. Е. Шрифт, но включающий жирный, курсив и т. Д.).Прогон - это техническое различие, потому что их границы не должны быть очевидны для читателя;они просто используются, чтобы сказать PowerPoint «применить это форматирование символов ко всем этим символам».

Если вы печатаете каждый прогон отдельно, они будут ломаться в, казалось бы, случайных местах в абзаце, в зависимости, по крайней мере, от того, где курсив повернутвключается и выключается, но также часто в других местах, например, где кто-то отредактировал добавить несколько символов.PowerPoint не обязательно минимизирует количество прогонов, даже если два последовательных прогона имеют одинаковое форматирование.Следовательно, они имеют тенденцию размножаться.

...