run.font.italic 和 run.font.bold return None 而不是 True
run.font.italic and run.font.bold return None instead of True
我需要获取段落中所有斜体和粗体的文本。我正在手动将文本变成斜体和粗体形式,但下面的代码 returns none。它只是一个发起者还是我们也可以从中获得价值,我怎样才能获得所有斜体和粗体文本?
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)
我相信您的问题是如何找到字体格式参数的 "effective" 值。
运行 文本的格式由一组在样式层次结构上运行的规则决定。如果格式属性(例如粗体)直接应用于 运行,则优先。当不直接应用粗体时,run.bold returns None 和 运行 的 "boldness" 通过检查样式层次结构的其余部分来确定。这可能是幻灯片布局、幻灯片母版或主题或演示文稿默认值(可能还有其他可能性)的属性。
因此,找到有效值需要发现这些规则并浏览样式层次结构以解决任何给定文本片段的问题。 python-pptx
中尚无 API 支持。
我需要获取段落中所有斜体和粗体的文本。我正在手动将文本变成斜体和粗体形式,但下面的代码 returns none。它只是一个发起者还是我们也可以从中获得价值,我怎样才能获得所有斜体和粗体文本?
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)
我相信您的问题是如何找到字体格式参数的 "effective" 值。
运行 文本的格式由一组在样式层次结构上运行的规则决定。如果格式属性(例如粗体)直接应用于 运行,则优先。当不直接应用粗体时,run.bold returns None 和 运行 的 "boldness" 通过检查样式层次结构的其余部分来确定。这可能是幻灯片布局、幻灯片母版或主题或演示文稿默认值(可能还有其他可能性)的属性。
因此,找到有效值需要发现这些规则并浏览样式层次结构以解决任何给定文本片段的问题。 python-pptx
中尚无 API 支持。