将html页面渲染为pdf时,Django子进程不稳定的字符串错误

时间:2013-06-18 13:08:54

标签: python django subprocess wkhtmltopdf

我正在使用django作为一个非常具体的网站,我需要使用命令行和wkhtmltopdf生成pdf。

大部分时间它效果很好,但有时我会收到此错误:

execv() arg 2 must contain only strings

这是错误的代码:

# Get our HTML page as string
payload = show_pdf(request, as_pdf=True)
file_data = render_to_string('quotation/pdf.html', payload, RequestContext(request))

#First echo our HTML page's string and give it to wkhtmltopdf for smooth transformation to pdf

p1 = subprocess.Popen(['echo', file_data], stdout=subprocess.PIPE)
p2 = subprocess.Popen(['wkhtmltopdf', '-q', '--zoom', zoom_factor, '--encoding', 'utf-8', '-', 'test.pdf'], stdin=p1.stdout, stdout=subprocess.PIPE)
p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p2 exits.
output = p2.communicate()[0]

我怀疑是编码问题但是我的html页面已经呈现为utf-8并且强制编码不会改变任何内容。

非常感谢任何帮助。谢谢!

0 个答案:

没有答案