检测最初为docx的xml文件中的粗体

时间:2018-02-02 23:11:48

标签: xml python-3.x docx

我想从docx文件中提取所有粗体文本,无法使用python-docx,我将文件保存为xml,有没有办法检测粗体文本,不是 因为我没有在文件中的任何地方看到它

这句话以粗体显示:

<cell ptr="0x7f84240911d0" id="16" symbol="9SwCellFrm" upper="15 lower="17"><infos><bounds left="1502" top="2320" width="10517" 
height="1662"/>
</infos><txt ptr="0x7f842408e460" id="17" 
symbol="8SwTxtFrm" next="18" upper="16" txtNodeIndex="70"><infos><bounds left="1610" top="2320" width="10301" height="322"/></infos>
 Some text <Special nLength="0" nType="POR_MARGIN" rText="" nWidth="3534"/>
<Text nLength="49" nType="POR_TXT" nHeight="322" nWidth="6768"/><Special nLength="0" nType="POR_MARGIN" rText=""/>
<LineBreak nWidth="10302"/>
<Finish/></txt>

1 个答案:

答案 0 :(得分:2)

&#34;最初是DOCX&#34;可能会也可能不会忠实地表示粗体字符样式,因为新的XML格式可能不支持粗体,或者转换可能不会保留属性。

如果您将文档保存为 Word XML文档(推荐)或Word 2003 XML文档,甚至 OpenDoc文本,则生成的XML将保留气魄。 (如何从DOCX文件中获取已发布的XML完全不明显。您的XML不是这些格式。)

例如,&#34; Word XML Document&#34;是一个Flat Open Packaging Convention(FOPC)Office Open XML(OOXML)文档,其中(基本级别)的粗体表示如下:

<w:r>
  <w:rPr>
    <w:b />
  </w:rPr>
  <w:t>This text is bold</w:t>
</w:r>

请注意,如果将XML表示为样式的一部分而不是直接作为运行属性,则确定粗体会变得更复杂。