2010-05-24 6 views
7

Ho pisa che produce file pdf in django nel browser bene, ma cosa succede se voglio scrivere automaticamente il file su disco? Quello che voglio fare è essere in grado di generare un file di versione .pdf in punti specifici nel tempo e salvarlo in una directory di upload, quindi non c'è interazione con il browser. È possibile?Utilizzo di Pisa per scrivere un pdf su disco

risposta

12

Sì, è possibile. per esempio, utilizzando il codice da Greg Newman come antipasto:

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

Hai solo bisogno di chiamare write_pdf con un modello, i dati in un dict e un nome di file.

+0

Grazie - proprio quello di cui avevo bisogno. – PhoebeB

Problemi correlati