如何在Python中将一些变量值传递给RML文件?

发布于 2025-01-16 20:05:28 字数 786 浏览 0 评论 0原文

给定一个用于在 python 中生成 PDF 文件的 RML 模板,如何在 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变量值呢?

Given an RML template, used to generate PDF file in python, how can one use variables declared in a Python script in the RML template file?

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)

Here is the template 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>

So how do I get the name variable value in the template?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春庭雪 2025-01-23 20:05:28

您可以使用 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文件> PDF

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

You may preprocess your file with 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/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文