单词模板Jinja2

2024-10-01 15:31:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用jinja2做单词模板,就像前面提到的is this短文。我面临的问题如下,如果我在word文件中放入{{title}},得到的xml可以如下所示:

<w:r><w:t>{{</w:t></w:r><w:proofErr w:type="gramStart"/><w:r><w:t>title</w:t></w:r><w:proofErr w:type="gramEnd"/><w:r><w:t>}}</w:t></w:r></w:p>

因此,jinja不可能相应地替换这个。有没有可能阻止word将{{title}}拆分为单独的文本元素?(如果我从文本编辑器中复制,效果很好)


Tags: 文件模板jinja2titleistypexmlthis
2条回答

https://pypi.org/project/docxtpl/也是一个不错的选择。在

它扩展了pythondocx,并允许您在现有的.docx文档中的任何位置插入Jinja2标记,而不是从头开始创建模板。在

示例:

pip install docxtpl

用法:

^{pr2}$

如果模板my_word_template.docx文件如下所示:

[A .docx file with tags put in it[1]

那么您的generated_doc.docx将如下所示:

A .docx file generated using this leedle program

相对简单,对吧?在

这是word中与proofErr标记有关的问题。在

您有两种解决方案:

  • 如果你想坚持使用Jinja2,你应该总是一笔勾销地写下你的标签。例如,不要按退格键或编辑标记。也可以从其他编辑器复制/粘贴它。

  • 我写了一个库,Docxtemplater即使文本元素被拆分,它也能工作,例如它将替换:

    <w:r>
     <w:t>
       {{
     </w:t>
    </w:r>
    <w:proofErr w:type="gramStart"/>
     <w:r>
      <w:t>title</w:t>
     </w:r>
    <w:proofErr w:type="gramEnd"/>
     <w:r>
      <w:t>}}</w:t>
     </w:r>
    

    签署人:

    <w:r>
      <w:t>
        Your title
      </w:t>
    </w:r>
    <w:proofErr w:type="gramStart"/>
    <w:r>
      <w:t></w:t>
    </w:r>
    <w:proofErr w:type="gramEnd"/>
    <w:r>
      <w:t></w:t>
    </w:r>
    

可以在CLI或xtemplater上编程/节点.JS在

相关问题 更多 >

    热门问题