How to keep original text formatting of text with python powerpoint?(如何使用 python powerpoint 保持文本的原始文本格式?)
问题描述
我想在不更改格式的情况下更新文本框中的文本.换句话说,我想在更改文本的同时保留原始文本的原始格式
我可以使用以下内容更新文本,但在此过程中格式会完全改变.
从 pptx 导入演示文稿prs = Presentation("C:\original_powerpoint.pptx")sh = prs.slides[0].shapes[0]sh.text_frame.paragraphs[0].text = '我的新文本'prs.save("C:\new_powerpoint.pptx")如何在保持原始格式的同时更新文本?
我还尝试了以下方法:
从 pptx 导入演示文稿prs = Presentation("C:\original_powerpoint.pptx")sh = prs.slides[0].shapes[0]p = sh.text_frame.paragraphs[0]original_font = p.fontp.text = '新文本'p.font = original_font但是我得到以下错误:
Traceback(最近一次调用最后一次):文件C:Codespowerpoint_python_script.py",第 24 行,在 <module>p.font = original_fontAttributeError:无法设置属性文本框架由段落组成,段落由运行组成.所以你需要在运行中设置文本.
您可能只有一次运行,您的代码可以这样更改:
从 pptx 导入演示文稿prs = Presentation("C:\original_powerpoint.pptx")sh = prs.slides[0].shapes[0]sh.text_frame.paragraphs[0].runs[0].text = '我的新文本'prs.save("C:\new_powerpoint.pptx")<块引用>
字符格式(字体特征)在运行时指定等级.一个段落对象包含一个或多个(通常是多个)运行.分配给 Paragraph.text 时,段落中的所有运行都是替换为一个新的运行.这就是为什么文本格式消失;因为包含该格式的运行消失了.
I'd like to update the text within a textbox without changing the formatting. In other words, I'd like to keep the original formatting of the original text while changing that text
I can update the text with the following, but the formatting is changed completely in the process.
from pptx import Presentation
prs = Presentation("C:\original_powerpoint.pptx")
sh = prs.slides[0].shapes[0]
sh.text_frame.paragraphs[0].text = 'MY NEW TEXT'
prs.save("C:\new_powerpoint.pptx")
How can I update the text while maintaining the original formatting?
I've also tried the following:
from pptx import Presentation
prs = Presentation("C:\original_powerpoint.pptx")
sh = prs.slides[0].shapes[0]
p = sh.text_frame.paragraphs[0]
original_font = p.font
p.text = 'NEW TEXT'
p.font = original_font
However I get the following error:
Traceback (most recent call last):
File "C:Codespowerpoint_python_script.py", line 24, in <module>
p.font = original_font
AttributeError: can't set attribute
Text frame consists of paragraphs and paragraphs consists of runs. So you need to set text in run.
Probably you have only one run and your code can be changed like that:
from pptx import Presentation
prs = Presentation("C:\original_powerpoint.pptx")
sh = prs.slides[0].shapes[0]
sh.text_frame.paragraphs[0].runs[0].text = 'MY NEW TEXT'
prs.save("C:\new_powerpoint.pptx")
Character formatting (font characteristics) are specified at the Run level. A Paragraph object contains one or more (usually more) runs. When assigning to Paragraph.text, all the runs in the paragraph are replaced with a single new run. This is why the text formatting disappears; because the runs that contained that formatting disappear.
这篇关于如何使用 python powerpoint 保持文本的原始文本格式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用 python powerpoint 保持文本的原始文本格式
基础教程推荐
- pyserial - 可以从线程 a 写入串行端口,是否阻塞从线程 b 读取? 2022-01-01
- 将 x 轴刻度更改为自定义字符串 2022-01-01
- numpy float:比算术运算中内置的慢 10 倍? 2022-01-01
- 用 Python 编写 Fortran 无格式文件 2022-01-01
- 与常规 dict 相比,Python manager.dict() 非常慢 2022-01-01
- 尝试制作WhatsApp机器人 2022-01-01
- 在 Celery 工作人员中捕获 Heroku SIGTERM 以优雅地关 2022-01-01
- 由Python将MP3转换为MIDI(类型错误:无法加载插件:mtg-Melodia:Melodia) 2022-01-01
- 使用生成器和迭代器时 Python 多循环失败 2022-01-01
- Discord.py 缺少必需的参数 2022-01-01
