mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
25 lines
781 B
Python
25 lines
781 B
Python
from io import BytesIO
|
|
from django.http import HttpResponse
|
|
from django.template.loader import get_template
|
|
|
|
from xhtml2pdf import pisa
|
|
|
|
class PDFResult:
|
|
def __init__(self, content):
|
|
self.content = content
|
|
|
|
def render_to_pdf(template_src, context_dict={}):
|
|
"""
|
|
Génère un PDF à partir d'un template HTML et retourne le contenu en mémoire.
|
|
"""
|
|
template = get_template(template_src)
|
|
html = template.render(context_dict)
|
|
result = BytesIO()
|
|
pdf = pisa.pisaDocument(BytesIO(html.encode("UTF-8")), result)
|
|
|
|
if pdf.err:
|
|
# Lever une exception ou retourner None en cas d'erreur
|
|
raise ValueError("Erreur lors de la génération du PDF.")
|
|
|
|
# Retourner le contenu du PDF en mémoire
|
|
return PDFResult(result.getvalue()) |