В django я использую jinja2 для рендеринга шаблона в файл .tex. Затем мне нужно вызвать 'xelatex' для этого файла .tex и сохранить вывод как объект File django.
Я дошел до этого:
tex_file = render_to_string("foo.tex", context)
Если я сохраню tex_file
в файл и запустлю xelatex, я получу ожидаемый результат, так что он будет работать до этого момента.
Затем я попробовал что-то вроде этого:
subprocess.run(["xelatex", tex_file], capture_output=True])
Проблема в том, что я на самом деле не хочу записывать вывод xelatex в STDOUT. Я хочу захватить файл output.pdf, который он генерирует.
Я знаю, что я мог бы просто сохранить xelatex этот файл в / tmp /, а затем открыть его и обработать с помощью python, но это кажется медленным и грязным. Есть ли способ заставить подпроцесс на самом деле вернуть вывод:
output = subprocess.run(["xelatex", tex_file], capture_output=True])
self.file = file