【问题标题】:How to pass some variable values to RML file in Python?如何将一些变量值传递给 Python 中的 RML 文件?
【发布时间】:2023-02-01 18:05:15
【问题描述】:

给定一个 RML 模板,用于在 python 中生成 PDF 文件,如何在 RML 模板文件中使用 Python 脚本中声明的变量?

def create_pdf:
   name = "My Name"

   with open('/file.rml') as rml:
         data = rml.read()
   pdf = rml2pdf.parseString(data)
   with open(f"/newpdf.pdf", 'wb') as output:
         output.write(pdf.read())
   return HttpResponse(status=200)

这是模板file.rml

<?xml version="1.0" encoding="utf-8" standalone="no" ?> 
<!DOCTYPE document SYSTEM "rml_1_0.dtd">
<document filename="file.rml">
   .....
    <story>
        <para style="h1-center">[[name]]</para> <!-- Name value should appear here -->
    </story>
</document>

那么如何获取模板中的name变量值呢?

【问题讨论】:

    标签: python reportlab


    【解决方案1】:

    你可以使用 genshi 预处理你的文件:

    <?xml version="1.0" encoding="utf-8" standalone="no" ?> 
    <!DOCTYPE document SYSTEM "rml_1_0.dtd">
    <document xmlns:py="http://genshi.edgewall.org/" filename="file.rml">
       .....
        <story>
            <para style="h1-center" py:content="name" /> <!-- Name value should appear here -->
        </story>
    </document>
    

    Genshi template > RML file > PDF

    https://genshi.readthedocs.io/en/latest/templates/

    【讨论】:

      猜你喜欢
      • 2020-11-20
      • 2018-01-13
      • 2018-08-07
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2010-11-18
      相关资源
      最近更新 更多