我正在使用pdftk和python将http post数据传递给请求处理程序,该处理程序生成并将pdf文件作为http响应返回。
这是我目前的代码:
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")
虽然这样可行,但它会在磁盘上创建两个tmp文件(data.fdf和output.pdf)。
我正在寻找一种方法将data.fdf和output.pdf传输到内存文件(不在磁盘上)。
答案 0 :(得分:0)
我在OS上创建了一个ram磁盘文件夹