Question

Je génère un fichier PDF à partir de HTML à l'aide de PISA:

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

Mon HTML a un lien vers un CSS externe et est rendu correctement, mais le CSS n'est pas utilisé par PISA (par exemple, taille de la police, largeur de cellule de table, text-alignement ...).

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

<body>
....

Avez-vous manqué quelque chose?

merci

Était-ce utile?

La solution

Vous pouvez essayer this 'pisa-and-ReportLab-pièges' Je devais ajouter ceci

def fetch_resources(uri, rel):

En plus de cela, je porte toujours tout mon CSS dans le modèle.Assurez-vous également que vous utilisez xhtml2pdf et non l'ancienne ho.pisa.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top