【问题标题】:Get font type in python odfpy?在 python odfpy 中获取字体类型?
【发布时间】:2014-04-14 19:07:47
【问题描述】:

有人对 odfpy 有经验吗? 我用这个 python 包解析了文档,得到了带有他的文本和样式名的段落,现在我需要检测这个段落文本中的文本字体类型?

你有什么想法吗?

【问题讨论】:

    标签: python openoffice.org odt odf odfpy


    【解决方案1】:

    样式与文本分开定义。包含文本的节点将位于具有样式作为属性的节点内。一个示例可能如下所示:

    <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 属性来指定字体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-15
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 1970-01-01
      相关资源
      最近更新 更多