2016-01-04 42 views
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到内存文件(不在磁盘上)。

+0

应该补充一点,我使用的是Python 2.7,Django 1.5.12和fdfgen 0.12.1 –

回答

0

我在操作系统上创建了一个RAM磁盘文件夹

相关问题