我已经编写了一个python程序,它使用Jinja2和Latex文件(template.tex
)动态呈现tex文件,即将jinja变量传递给template.tex。该文件被称为jinja_engine.py。这里是执行的内容:dockerize python/jinja2程序生成pdf文件
# import functions
# import variables
if __name__ == '__main__':
template = latex_jinja_env.get_template('template.tex')
print (template.render(blocks = blocks, **options))
该程序基本上打印出控制台上呈现的文件。 我使用docker来构建我的程序的图像。这里是Dockerfile:
# base image
FROM python:3-onbuild
# run app
CMD ["python", "./jinja_engine.py"]
当我运行的容器,我再次得到显现文件打印我的控制台上。
接下来我想将渲染的文件转换为pdf。在我的应用程序中,我可以通过首先将渲染文件写入文件(例如out_file.tex
),然后使用subprocess
模块对其进行编译,例如subprocess.call(['pdflatex', 'out_file.tex'], shell=False)
。我的问题是,我将如何在容器中做到这一点?我应该使用一个新的容器来编译output.tex到pdf吗?你会推荐什么?谢谢
感谢您的帮助。我刚刚意识到只是在Dockerfile中调用'FROM python:3-onbuild'不会在容器中安装'pdflatex'“命令”。有没有一种图像可以让我做到这一点? – diegus
将RUN指令添加到您的Dockerfile安装Latex。 'apt apt-get update && apt-get install -y texlive-latex-base'。 验证答案,如果它可以帮助你:) – kstromeiraos
问题是与乳胶。容器中使用的基本安装不包含我使用的其他软件包,例如'lipsum.sty'软件包...所以pdf编译失败.. – diegus