【问题标题】:How to use pdftk with python without creating physical file on disk?如何在不在磁盘上创建物理文件的情况下将 pdftk 与 python 一起使用?
【发布时间】:2016-01-04 17:01:48
【问题描述】:

我正在使用 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 通过管道传输到内存文件(不在磁盘上)的方法。

【问题讨论】:

  • 应该补充一下,我使用的是 python 2.7、Django 1.5.12 和 fdfgen 0.12.1

标签: python pdftk


【解决方案1】:

我已结束在操作系统上创建 ram 磁盘文件夹

【讨论】:

    猜你喜欢
    • 2022-06-29
    • 2020-06-01
    • 2011-02-07
    • 2011-04-06
    • 2016-10-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-08
    • 2011-05-19
    相关资源
    最近更新 更多