我需要得到所有的文字是斜体和粗体的段落。我手动将文本转换为斜体和粗体,但下面的代码没有返回任何内容。它只是一个启动器,或者我们也能从中获得值,我如何才能获得所有的斜体和粗体文本?
def get_italic_ratio(slide):
count = 0
for shape in slide.shapes:
if not shape.has_text_frame:
continue
text_frame = shape.text_frame
par = text_frame.paragraphs[0]
run = par.add_run()
print(run.font.italic) # returns None, should return True
print(run.font.bold) # returns None, should return True
print(text_frame.paragraphs)发布于 2019-07-03 01:28:20
我相信你的问题是如何找到字体格式参数的“有效”值。
文本串的格式由在样式层次结构上操作的一组规则确定。如果格式化属性(例如粗体)直接应用于运行,则优先。当不直接应用粗体时,run.bold返回None,并且通过检查样式层次结构的其余部分来确定运行的“粗体”。这可以是幻灯片布局上的属性、幻灯片母版或主题或演示文稿默认设置(可能还有其他可能性)。
因此,要找到有效值,需要发现这些规则并导航样式层次结构,以便为任何给定的文本片段解析它们。在python-pptx中还没有对此的API支持。
https://stackoverflow.com/questions/56853071
复制相似问题