I generate a pdf file from HTML using 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()
My HTML has a link to an external CSS and is rendered properly, but the CSS is not used by Pisa (eg. font size, table cell width, text-align...).
<!DOCTYPE html>
<html lang="fr">
<head>
<link rel="stylesheet" href="/site_media/style/style.css" />
</head>
<body>
....
Did I miss something?
Thanks
You could try this 'Pisa-and-Reportlab-pitfalls' I had to add this
def fetch_resources(uri, rel):
On top of that I still carry all my css within the template. Also make sure you're using xhtml2pdf and not the old ho.pisa.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With