Pregunta

He pisa producir .pdfs en django de la multa del navegador, pero lo que si quiero escribir automáticamente el archivo en el disco? Lo que quiero hacer es ser capaz de generar un archivo .pdf versión en los puntos especificados en el tiempo y guardarlo en un directorio de archivos, por lo que no hay interacción navegador. ¿Es esto posible?

¿Fue útil?

Solución

Sí, es posible. por ejemplo, utilizando el código de Greg Newman como titular:

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

Sólo tiene que write_pdf llamada con una plantilla, los datos en un diccionario y un nombre de archivo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top