Это поведение немного новое, но ожидаемое поведение:
https://python -pptx.readthedocs.io / ен / последний / API / text.html # pptx.text.text._Run.text
Прогон может содержать только текст. Разрыв строки или границы абзаца происходит на более высоком уровне. В частности, разрыв строки может произойти только между запусками внутри абзаца. Абзац «разрыв» может появляться только в текстовом фрейме, ну, в общем, между абзацами.
Таким образом, в зависимости от того, что вы пытаетесь сделать, решение может состоять в том, чтобы просто выполнить назначение на уровне текстового фрейма, а не на уровне выполнения, как предлагает ваша переменная TipDPsText_run
. Символы перевода строки (\n
) принимаются TextFrame.text
и превращаются в границы абзаца.
Это может не полностью решить проблему, но может (я даю ему вероятность 90%) и, по крайней мере, изменит вопрос на тот, который может быть решен.
ОБНОВЛЕНИЕ: После дальнейшего просмотра кода, фактически новая строка сама по себе "\x0A"
принимается Run.text
и помещается без изменений в XML, где она, вероятно, выглядит как перевод строки , Эта традиционная вежливость не распространяется на возврат каретки "\x0D"
, который отображается так же, как вы видите "_x000D_"
. Этот дополнительный байт CR находится там, потому что вы работаете в Windows. Соответственно, вы можете обойти эту проблему, используя "\x0A"
вместо "\n"
в текстовом назначении. Но я рекомендую присвоение уровня текстового фрейма в качестве более подходящего подхода, более совместимого с поведением PowerPoint, когда при вводе возврата каретки создается новый абзац.