8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-23 23:43:47 +00:00

Documentation propre de render_tex et create_pdf

This commit is contained in:
Hugo LEVY-FALK 2018-08-15 23:56:34 +02:00
parent 9dd54a99a5
commit 4ab0dad146

View file

@ -62,15 +62,23 @@ def render_invoice(_request, ctx={}):
def create_pdf(template, ctx={}):
"""
Creates and returns a PDF from a LaTeX template using pdflatex.
"""Creates and returns a PDF from a LaTeX template using pdflatex.
It create a temporary file for the PDF then read it to return its content.
Args:
template: Path to the LaTeX template.
ctx: Dict with the context for rendering the template.
Returns:
The content of the temporary PDF file generated.
"""
context = Context(ctx)
template = get_template(template)
rendered_tpl = template.render(context).encode('utf-8')
with tempfile.TemporaryDirectory() as tempdir:
for i in range(2):
for _ in range(2):
process = Popen(
['pdflatex', '-output-directory', tempdir],
stdin=PIPE,
@ -84,10 +92,18 @@ def create_pdf(template, ctx={}):
def render_tex(_request, template, ctx={}):
"""
Creates a PDF from a LaTex templates using pdflatex.
Writes it in a temporary directory and send back an HTTP response for
"""Creates a PDF from a LaTex templates using pdflatex.
Calls `create_pdf` and send back an HTTP response for
accessing this file.
Args:
_request: Unused, but allow using this function as a Django view.
template: Path to the LaTeX template.
ctx: Dict with the context for rendering the template.
Returns:
An HttpResponse with type `application/pdf` containing the PDF file.
"""
pdf = create_pdf(template, ctx={})
r = HttpResponse(content_type='application/pdf')