【发布时间】:2019-12-19 11:27:15
【问题描述】:
我目前有以下代码可用于生成 PDF 输出。除了在这里完成之外,还有更好的方法来编写 PDF 的内容吗?这是一个基本的 pdf,但我希望在以后的版本中包含多个变量。我已将在 PDF 内容之前定义的变量 x 插入到乳胶 pdf 中。非常感谢您提供的任何建议。
import os
import subprocess
x = 7
content = \
r'''\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=1cm,landscape]{geometry}
\title{Spreadsheet}
\author{}
\date{}
\begin{document}''' + \
r'This is document version: ' + str(x) +\
r'\end{document}'
parser = argparse.ArgumentParser()
parser.add_argument('-c', '--course')
parser.add_argument('-t', '--title')
parser.add_argument('-n', '--name',)
parser.add_argument('-s', '--school', default='My U')
args = parser.parse_args()
with open('doc.tex','w') as f:
f.write(content%args.__dict__)
cmd = ['pdflatex', '-interaction', 'nonstopmode', 'doc.tex']
proc = subprocess.Popen(cmd)
proc.communicate()
retcode = proc.returncode
if not retcode == 0:
os.unlink('doc.pdf')
raise ValueError('Error {} executing command: {}'.format(retcode, ' '.join(cmd)))
os.unlink('doc.tex')
os.unlink('doc.log')```
【问题讨论】:
-
你检查过pylatex模块吗?
-
是的,我觉得这太复杂了。例如,即使定义自己的命令也很困难 (doc.append(Command('Hello', arguments={'one'}, options=['two'] )))
标签: python variables latex pythonanywhere