2014-07-10 11 views
1

PDF我有Python中的GUI程序,它计算的某些功能图。这些函数的数学就好说了,COS(THETA)等。目前我保存了这些功能的图形和其编译为PDF乳胶和乳胶手动写下方程式。Python的出口计划使用乳胶格式

但现在我想通过创建乳胶的模板安排,功能名称,图形,公式和表格,并将它们符合到一个单一的PDF格式,只需点击简化这个过程。

可以这样做吗?我该怎么做? 谢谢。

回答

1
  1. 产生乳胶file.tex与Python脚本

    F =打开( “file.tex”, 'W')

    f.write('\的DocumentClass [12磅] {物品} \ N ')

    f.write(' \ usepackage {MULTICOL} \ N ')

    f.write(' \ n \ {开始文档} \ n \ n')

    ...

    f.write( '\ {结束}文件')

    f.close()

  2. 从Python脚本乳胶文件作为子进程运行pdflatex

    subprocess.call(“胶乳file.tex”)

作为替代1.可以生成胶乳模板,只是替代可变填充全光照g Python正则表达式和字符串替换。

0

虽然matplotlib(例如)不仅可以为PDF输出PDF,但也可以渲染LaTeX方程,甚至可以产生表格,我怀疑你想要的是pyPDF2,它是一个包,允许你单独导入创建PDF,逐页,并将它们连接成一个新的PDF。优秀的小工具pdfshuffler在基于(基于python的)GUI中使用这种方法。

在另一方面,如果你坚持创建一个单一的乳胶文件传递给pdflatex,那么你就可以做到这一点使用字符串操作。类似:

text = open('template.tex') 
complete = text.format(name,graph,equation,table) 
open('temp.tex','w').write(complete) 
subprocess.call('pdflatex temp') 

template.tex凡含有合适的占位符,{0}等,以代替格式方法称为胶乳代码。

1

我已经写了几个程序做这样的事情。我觉得 工程以及有一个模板是这样的:

latex_template = r""" 
\documentclass[11pt]{article} 
\usepackage[landscape, letterpaper, margin=.75in]{geometry} 
\usepackage{txfonts} 
... 
$preamble 
... 
$data 

\end{document} 
""".lstrip() 

然后用string.Template及其substitute方法将 可变部分扑通到模板。