Generate templated documents within Django in any format supported by
LibreOffice: texts, spreadsheets, presentations etc.


  • Python 2.7 or 3.4+
  • Django >= 1.8
  • A recent LibreOffice version (>=4.3.0) supporting LibreOfficeKit API.

Example usage

Create a sample.odt document (make sure it’s in OpenDocument format) and
put it in your Django templates folder. It should look something like this:


Then write a view to generate documents from this template:

from templated_docs import fill_template
from templated_docs.http import FileResponse

def get_document(request):
    A view to get a document filled with context variables.
    context = {'user': request.user}  # Just an example

    filename = fill_template('sample.odt', context, output_format='pdf')
    visible_filename = 'greeting.pdf'

    return FileResponse(filename, visible_filename)

Navigate to the url your view is connected to, and you’ll see a rendered and converted document:


For more examples, see the examples/ subfolder in the repository. More detailed documentation is available on https://templated-docs.readthedocs.io.


Templated-docs was written by Alex Morozov.

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.


View Github