使用python-docx写入Docx会消除样式吗?

时间:2017-05-04 06:26:44

标签: python-3.x python-docx

我正在编写机器翻译代码。我从docx文件获取输入。我能够提取文件的内容,但是在翻译之后,当我回写到同一个docx文件时,它要么以纯文本格式写入,要么只删除字体和段落样式。

是否有一种方法可以使用与文件中已有的字体相同的字体写回docx文件?跟踪文件的XMl结构一样。

我有超过一百个段落,通过代码手动将样式应用于每个段落是一项冗长的任务,因此是否有一个模块首先提供这样的xml结构。

    <w:body>
    <w:p>
    <w:pPr>
    <w:pStyle w:val="Heading1"/>
    </w:pPr>
    </w:pPr>
    <w:r><w:t>Introduction</w:t></w:r>
    </w:p>
    <w:p>
    <w:r><w:t xml:space="preserve">Please fill your name in the space 
     provided</w:t></w:r>
    </w:p>
    <w:p>
    <w:pPr>

并且在回写时它应该添加到

之间的当前位置位置
    <w:r><w:t xml:space="preserve"> Please fill your name in the space 
    provided  </w:t></w:r>

为考试:

    <w:r><w:t xml:space="preserve"> Bitte füllen Sie bitte Ihren Namen aus  
    </w:t></w:r>

以便保留样式,旧句子替换为新句子。

1 个答案:

答案 0 :(得分:0)

这是一项艰巨的工作。您需要遍历段落中的运行文本,而不是仅查看段落文本。

{{1}}

请注意,段落会根据样式和其他几率分成几部分。 因此,例如:

一个舒适的椅子

至少要运行4次...