Uku*_*kit 5 django text pdf-generation pdflatex
我正在尝试生成一些LaTeX代码,从那里生成PDF文档.目前,我正在使用Django模板系统来动态创建代码,但我不知道如何继续从这里开始.我知道我可以将代码保存在.tex文件中,并使用子进程运行pdflatex来生成PDF.但是我在"普通"Python中逃避LaTeX代码时遇到了很多麻烦,我决定使用Django模板系统.有没有办法可以将Django产生的输出管道化为pdflatex?生成的代码工作正常,只是我不知道如何处理它.
提前致谢
我正在处理我之前处理过的项目中的相同问题,而不是管道输出,我在临时文件夹中创建了临时文件,因为我担心处理LaTeX生成的中间文件.这是我使用(注意,这是一个数岁,从我还是新来的Python/Django的代码时,我相信我能想出更好的东西,如果我今天这个在写,但是这对我来说确实是制订):
import os
from subprocess import call
from tempfile import mkdtemp, mkstemp
from django.template.loader import render_to_string
# In a temporary folder, make a temporary file
tmp_folder = mkdtemp()
os.chdir(tmp_folder)
texfile, texfilename = mkstemp(dir=tmp_folder)
# Pass the TeX template through Django templating engine and into the temp file
os.write(texfile, render_to_string('tex/base.tex', {'var': 'whatever'}))
os.close(texfile)
# Compile the TeX file with PDFLaTeX
call(['pdflatex', texfilename])
# Move resulting PDF to a more permanent location
os.rename(texfilename + '.pdf', dest_folder)
# Remove intermediate files
os.remove(texfilename)
os.remove(texfilename + '.aux')
os.remove(texfilename + '.log')
os.rmdir(tmp_folder)
return os.path.join(dest_folder, texfilename + '.pdf')
Run Code Online (Sandbox Code Playgroud)
该dest_folder变量通常设置在媒体目录中的某个位置,以便可以静态地提供PDF.返回的值是磁盘上文件的路径.它的URL的逻辑是由任何函数设置的dest_folder.
| 归档时间: |
|
| 查看次数: |
4542 次 |
| 最近记录: |