Domanda

Ho pisa produzione .pdfs in Django nel bel browser, ma cosa succede se voglio scrivere automaticamente il file su disco? Quello che voglio fare è quello di essere in grado di generare un file formato .pdf in punti specifici nel tempo e salvarlo in una directory di upload, quindi non c'è alcuna interazione del browser. È possibile?

È stato utile?

Soluzione

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top