我需要获取所有段落中的斜体和粗体文本。我正在手动将文本转换为斜体和粗体形式,但以下代码未返回任何内容。它仅仅是发起者,还是我们也可以从中获得价值,我如何获得所有斜体和粗体文本?
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)
答案 0 :(得分:1)
我相信您的问题是如何找到字体格式化参数的“有效”值。
一段文本的格式由在样式层次结构上运行的一组规则确定。如果将格式设置属性(例如,粗体)直接应用于运行,则优先。如果不直接应用粗体,则run.bold返回None,并且运行的“粗体”是通过检查样式层次结构的其余部分来确定的。这可能是幻灯片布局的属性,幻灯片母版或主题或演示文稿的默认属性(也许还有其他可能性)。
因此,要找到有效值,需要发现这些规则,并导航样式层次结构以针对任何给定的文本片段来解析它们。 python-pptx
中尚未为此提供API支持。