有人对 odfpy 有经验吗?我用这个python包解析了文档,得到了带有他的文本和样式名的段落,现在我需要检测这个段落文本中的文本字体类型?
你有什么想法 ?
有人对 odfpy 有经验吗?我用这个python包解析了文档,得到了带有他的文本和样式名的段落,现在我需要检测这个段落文本中的文本字体类型?
你有什么想法 ?
样式与文本分开定义。包含文本的节点将位于具有样式作为属性的节点内。一个示例可能如下所示:
<text:p text:style-name="P5">
<text:span text:style-name="T1">Do donkeys eat macadamia nuts? And if they don't, why don't they?
</text:span>
</text:p>
在此示例中,两种样式(P5 或 T1)可能会为文本指定一种字体。您将需要查看文档的样式定义部分。
此代码将创建一个包含文档样式的字典。
def get_styles(doc):
styles= {}
for ast in doc.automaticstyles.childNodes:
name= ast.getAttribute('name')
style= {}
styles[name]= style
for k in ast.attributes.keys():
style[k[1]]= ast.attributes[k]
for n in ast.childNodes:
for k in n.attributes.keys():
style[n.qname[1] + "/" + k[1]]= n.attributes[k]
return styles
然后,您可以检查与您关心的文本相对应的相关样式。每个样式内部都有一个 style:text-properties 元素,该元素有一个 style:font-name 属性来指定字体。