2
我使用pdftk和python将http post数据传递给请求处理程序,该处理程序生成并返回一个PDF文件作为http响应。如何在python上使用pdftk而不在磁盘上创建物理文件?
这里是我当前的代码:
import os
from fdfgen import forge_fdf
from django.views.generic.edit import FormView
from django.http import HttpResponse
from myapp.forms import PdfForm
class PdfAutofillFormView(FormView):
form_class = PdfForm
def form_valid(self, form):
fields = [('first_field', form.cleaned_data.get('blah', '')),
('second_field', form.cleaned_data.get('blahblah', '')),]
fdf = forge_fdf("", fields, [], [], [])
fdf_file = open("/tmp/data.fdf", "wb")
fdf_file.write(fdf)
fdf_file.close()
cmd = 'pdftk %s fill_form %s output %s dont_ask' % \
('/home/myuser/original.pdf',
'/tmp/data.fdf',
'/tmp/output.pdf',)
os.system(cmd)
return HttpResponse(open('/tmp/output.pdf', 'r'),
mimetype="application/pdf")
虽然这个工作,它创建于光盘 - 1片TMP文件(data.fdf和输出.pdf)。
我正在寻找一种方法来管理data.fdf和output.pdf到内存文件(不在磁盘上)。
应该补充一点,我使用的是Python 2.7,Django 1.5.12和fdfgen 0.12.1 –