searchInput = "chapter"
try:
prs = Presentation("e:/test3/ch7.pptx")
for slide in prs.slides:
for shape in slide.shapes:
if hasattr(shape, "text"):
shape.text = shape.text.lower()
for paragraph in shape.text_frame.paragraphs:
for run in paragraph.runs:
if searchInput in run.text:
print(run.text)
#run.font.color.rgb = RGBColor(0, 0, 255)
except PermissionError:
pass
prs.save("e:/test3/ch7_modified1.pptx")
现在,我可以检查此“ ch7.pptx”文件是否包含要查找的特定单词。
如果我打印(run.text),它会打印出来
chapter 7: synchronization examples
chapter 7: synchronization examples
end of chapter 7
因此,我可以看到有几个单词“章节”。 但是,我想在我的“ ch7.pptx”中将“章节”的颜色更改为黄色,然后我要保存到“ ch7_modified.pptx”
我一直在努力寻找如何更改颜色,但是它不能正常工作。请给我一些帮助!
答案 0 :(得分:0)
不能保证给定的单词将在一次运行中开始和结束;任何给定的单词都可以分为多个部分,并且其部分可能包含之前和之后的文本。 PowerPoint会根据需要随意分割运行,也许是为了突出显示拼写错误的单词,或者只是在您暂停输入或输入拼写错误之类的内容时。
可以肯定地说,一次运行是它包含的所有字符共享相同的字符格式。
要完成您想做的事情,就需要一种更加复杂的算法,并且python-pptx
还没有一些低级功能。
一般方法如下:
当前不支持对运行拆分位的API,这将需要使用python-pptx
中的基础XML对象,这是一个高级主题。如果您想这样做,请在“ python-pptx解决方法功能”上搜索Google,这将为您提供一个起点。