我正在尝试使用FOP生成PDF。为此,我将获取一个模板文件,使用Jinja2初始化其值,然后通过系统调用将其传递给fop。
是否可以在不通过输入文件的情况下对FOP进行子进程调用,而是直接包含XML的字符串?如果是这样,我将如何这样做?
我希望有类似的东西
fop -fo "XML here" -pdf output.pdf
答案 0 :(得分:0)
是的,实际上是可能的。
使用python我能够将文件中的xml导入lxml.etree:
tree = etree.parse('FOP_PARENT.fo.xml')
然后使用etree解析include标记:
tree.xinclude()
然后将xml转换回unicode是一个简单的例子:
xml = etree.tounicode(tree)
这就是我让模板工作的方式。希望这有助于有同样问题的人!