2010-05-24 9 views
7

Mam pisa produkujące .pdf w django w przeglądarce dobrze, ale co jeśli chcę automatycznie zapisać plik na dysk? Chciałbym móc wygenerować plik w wersji .pdf w określonych momentach czasu i zapisać go w katalogu uploadów, więc nie ma interakcji z przeglądarką. czy to możliwe?Używanie Pisa do pisania pdf na dysk

Odpowiedz

12

Tak, jest to możliwe. na przykład za pomocą kodu z Greg Newman jako starter:

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() 

Wystarczy zadzwonić write_pdf z szablonu, dane w dict i nazwę pliku.

+0

Dzięki - właśnie to, czego potrzebowałem. – PhoebeB