Использование Пизы для записи PDF на диск - PullRequest
8 голосов
/ 24 мая 2010

У меня есть pisa, создающая .pdfs в django в браузере, но что если я хочу автоматически записать файл на диск? Что я хочу сделать, так это иметь возможность создавать файл версии .pdf в указанные моменты времени и сохранять его в каталоге выгрузки, чтобы не было взаимодействия с браузером. Возможно ли это?

1 Ответ

12 голосов
/ 25 мая 2010

Да, это возможно.например, используя код из Грега Ньюмана в качестве начального:

from django.template.loader import get_template
from django.template import Context
import ho.pisa as pisa
import cStringIO as StringIO
import cgi

def write_pdf(template_src, context_dict, filename):
    template = get_template(template_src)
    context = Context(context_dict)
    html  = template.render(context)
    result = open(filename, 'wb') # Changed from file to filename
    pdf = pisa.pisaDocument(StringIO.StringIO(
        html.encode("UTF-8")), result)
    result.close()

Вам просто нужно вызвать write_pdf с шаблоном, данными в формате dict и именем файла.

...