2012-01-24 24 views
6

que generar un archivo PDF de HTML usando Pisa:CSS no dictada por la generación de PDF de Pisa en Django

def fetch_resources(uri, rel): 
    path = os.path.join(settings.MEDIA_ROOT, uri.replace(settings.MEDIA_URL, "")) 
    return path 

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') 
    pdf = pisa.pisaDocument(StringIO.StringIO(
     html.encode("UTF-8")), result, link_callback=fetch_resources) 
    result.close() 

Mi HTML tiene un enlace a una CSS externa y se hace correctamente, pero el CSS no es utilizado por Pisa (por ejemplo, tamaño de fuente, ancho de celda de tabla, texto-alineación ...).

<!DOCTYPE html> 
<html lang="fr"> 
<head> 
    <link rel="stylesheet" href="/site_media/style/style.css" /> 
</head> 

<body> 
.... 

¿Echo de menos algo?

Gracias

+0

Puede que necesite implementar su propio [cargador de enlaces] (https://github.com/chrisglass/xhtml2pdf/blob/master/test/linkloading.py) ..? –

Respuesta

6

usted podría intentar this 'Pisa-and-Reportlab-pitfalls' he tenido que añadir esta

def fetch_resources(uri, rel): 

Además de eso todavía llevo toda mi css dentro de la plantilla. También asegúrese de estar usando xhtml2pdf y no el viejo ho.pisa.

+0

Intenté con importar xhtml2pdf.pis en lugar de ho.pisa y agregué def fetch_resources (uri, rel): pero css aún no se representa en el pdf ... – jul

+0

Con mi CSS en la plantilla, funciona. Gracias. – jul

Cuestiones relacionadas