使用pdftk
我生成一些动态的临时 pdf 文件,然后 Django 将其提供给用户。
在桌面上,它工作正常 - pdf文件打开,然后用户可以保存,但是在所有浏览器的我的android手机上(可能在iOS上相同,但没有iOS设备所以无法测试),pdf确实没有下载成功。它开始下载,但总是失败,我不知道为什么。
以下是生成 pdf 二进制数据的视图和函数的片段:
def get_pdf():
fdf = {...}
t1 = tempfile.NamedTemporaryFile(delete=False)
t2 = tempfile.NamedTemporaryFile(delete=False)
t1.file.write(fdf)
# close temp files for pdftk to work properly
t1.close()
t2.close()
p = Popen('pdftk %s fill_form %s output %s flatten' %
('original.pdf', t1.name, t2.name), shell=True)
p.wait()
with open(t2.name, 'rb') as fid:
data = fid.read()
# delete t1 and t2 since they are temp files
# at this point the data is the binary of the pdf
return data
def get_pdf(request):
pdf = get_pdf()
response = HttpResponse(pdf, mimetype='application/pdf')
response['Content-Disposition'] = 'filename=foofile.pdf'
return response
关于为什么会发生这种情况的任何想法?