2010-05-24 21 views
7

Tengo pisa produciendo .pdfs en django en el navegador bien, pero ¿qué ocurre si quiero escribir automáticamente el archivo en el disco? Lo que quiero hacer es poder generar un archivo de versión .pdf en momentos específicos y guardarlo en un directorio de carga, por lo que no hay interacción con el navegador. es posible?Usando Pisa para escribir un pdf en el disco

Respuesta

12

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 llamar write_pdf con una plantilla, los datos en un diccionario y un nombre de archivo.

+0

Gracias, justo lo que necesitaba. – PhoebeB

Cuestiones relacionadas