0

我将 django 用于一个非常具体的网站,我需要使用命令行和wkhtmltopdf.

大多数时候它工作得很好,但有时我会收到这个错误:

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 并且强制编码不会改变任何内容。

任何帮助是极大的赞赏。谢谢 !

4

0 回答 0