Utilizzando Pisa per scrivere un PDF su disco
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?
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