{ "info": { "author": "Alex Morozov", "author_email": "alex@morozov.ca", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "===============================\nTemplated-docs\n===============================\n\n\n.. image:: https://badge.fury.io/py/templated-docs.svg\n :target: https://pypi.python.org/pypi/templated_docs\n\n.. image:: https://img.shields.io/travis/alexmorozov/templated-docs.svg\n :target: https://travis-ci.org/alexmorozov/templated-docs\n\n.. image:: https://readthedocs.org/projects/templated-docs/badge/?version=latest\n :target: https://templated-docs.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n.. image:: https://requires.io/github/alexmorozov/templated-docs/requirements.svg?branch=master\n :target: https://requires.io/github/alexmorozov/templated-docs/requirements?branch=master\n :alt: Dependencies\n\n\nGenerate templated documents within Django in any format supported by\nLibreOffice: texts, spreadsheets, presentations etc.\n\n\n* Free software: MIT license\n* Documentation: https://templated-docs.readthedocs.io.\n\n\nRequirements\n------------\n\n* Python 2.7 or 3.4+\n* Django >= 1.8\n* A recent LibreOffice version (>=4.3.0) supporting LibreOfficeKit API.\n\n.. include:: docs/partial/libffi-warning.rst\n\nExample usage\n-------------\n\nCreate a ``sample.odt`` document (make sure it's in OpenDocument format) and\nput it in your Django templates folder. It should look something like this:\n\n.. image:: https://github.com/alexmorozov/templated-docs/raw/master/docs/document-template.png\n\nThen write a view to generate documents from this template:\n\n .. code-block:: python\n\n from templated_docs import fill_template\n from templated_docs.http import FileResponse\n\n def get_document(request):\n \"\"\"\n A view to get a document filled with context variables.\n \"\"\"\n context = {'user': request.user} # Just an example\n\n filename = fill_template('sample.odt', context, output_format='pdf')\n visible_filename = 'greeting.pdf'\n\n return FileResponse(filename, visible_filename)\n\nNavigate to the url your view is connected to, and you'll see a rendered and converted document:\n\n.. image:: https://github.com/alexmorozov/templated-docs/raw/master/docs/generated-document.png\n\nFor more examples, see the ``examples/`` subfolder in the repository. More detailed documentation is available on https://templated-docs.readthedocs.io.\n\nCredits\n---------\n\nTemplated-docs was written by `Alex Morozov`_.\n\nThis package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.\n\n.. _Cookiecutter: https://github.com/audreyr/cookiecutter\n.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage\n.. _pylokit: https://github.com/xrmx/pylokit\n.. _`Alex Morozov`: http://morozov.ca", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/alexmorozov/templated-docs", "keywords": "templated_docs", "license": "MIT license", "maintainer": "", "maintainer_email": "", "name": "templated_docs", "package_url": "https://pypi.org/project/templated_docs/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/templated_docs/", "project_urls": { "Homepage": "https://github.com/alexmorozov/templated-docs" }, "release_url": "https://pypi.org/project/templated_docs/0.3.1/", "requires_dist": [ "django (>=1.8,<1.11)", "pylokit (==0.8.1)" ], "requires_python": "", "summary": "Generate PDF, MS Word and Excel documents from templates in Django.", "version": "0.3.1" }, "last_serial": 2404088, "releases": { "0.2.0": [], "0.2.10": [ { "comment_text": "", "digests": { "md5": "1874ae37fb8dcfd085a8293edf45c56c", "sha256": "805a3f87cbc1b667c023f70605551e7ae7c4f1caf4b865c9c200fc2405cab951" }, "downloads": -1, "filename": "templated_docs-0.2.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1874ae37fb8dcfd085a8293edf45c56c", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18235, "upload_time": "2016-08-22T08:55:30", "url": "https://files.pythonhosted.org/packages/7d/72/3da7534c403727e1106d4bc3361a079ae71bd7788d4dc85f7761d86be920/templated_docs-0.2.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7de8904c0c0fe032bdb7b915af17c748", "sha256": "3fa0ef7562c40c856faaecdc297006dfc59b2b21077702a23384b71da2c5bcb9" }, "downloads": -1, "filename": "templated_docs-0.2.10.tar.gz", "has_sig": false, "md5_digest": "7de8904c0c0fe032bdb7b915af17c748", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45478, "upload_time": "2016-08-22T08:55:32", "url": "https://files.pythonhosted.org/packages/75/0d/41d1f835ef0f456de45966f42523459c42af6a3432b55fafbbd035b3fdcb/templated_docs-0.2.10.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "22632d91ea58fbb31314af3d4c6c341a", "sha256": "0e71440b8da800ee29729768cd1614f8089f234358a178d2c52b5ae5b1b1757b" }, "downloads": -1, "filename": "templated_docs-0.2.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "22632d91ea58fbb31314af3d4c6c341a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6591, "upload_time": "2016-07-13T15:20:05", "url": "https://files.pythonhosted.org/packages/f6/3d/07bf1e3796f6b405adcfdd03af705fa274170c7c3a0eff768637421c7262/templated_docs-0.2.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e2478e0fe943dcedf495a7fbd42b47d7", "sha256": "109c28311d61bdfc2162e851de24fce6074aad668437f662b2e4750cf5f9847f" }, "downloads": -1, "filename": "templated_docs-0.2.5.tar.gz", "has_sig": false, "md5_digest": "e2478e0fe943dcedf495a7fbd42b47d7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32914, "upload_time": "2016-07-13T15:20:08", "url": "https://files.pythonhosted.org/packages/ff/fb/34bbf99a2af81b71e820914988b0acbde266d2b62cfb2ab082c958ef4776/templated_docs-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "7b8f9db2f1f9d459a293da8f3712f836", "sha256": "62554e1577e3eb9f7666244fadacd31b24972712815352168705291470e3a374" }, "downloads": -1, "filename": "templated_docs-0.2.6-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7b8f9db2f1f9d459a293da8f3712f836", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6597, "upload_time": "2016-07-20T13:06:40", "url": "https://files.pythonhosted.org/packages/44/8e/b4103ac6e06f8d186128d337e360b04a5f525105e6d10b89766e1240ed85/templated_docs-0.2.6-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e96e4e57329cb3e6d06af82d402dbf56", "sha256": "65f7056207e270172bd1e2efb03891276396cc799bafb4b37bc699fb6f6e5d89" }, "downloads": -1, "filename": "templated_docs-0.2.6.tar.gz", "has_sig": false, "md5_digest": "e96e4e57329cb3e6d06af82d402dbf56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44133, "upload_time": "2016-07-20T13:06:42", "url": "https://files.pythonhosted.org/packages/e5/0e/96f53e4279a1858a2ccb43ee18c45162ff8cf48f76c181ddfb60404e1b5e/templated_docs-0.2.6.tar.gz" } ], "0.2.7": [ { "comment_text": "", "digests": { "md5": "ac9ba0df5b2cfacb16c4a826bb0e2508", "sha256": "d7f5e86c1a825d537b92e3d0ca0b300a11f191adfb20b9b995aa4cea4d78f89f" }, "downloads": -1, "filename": "templated_docs-0.2.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ac9ba0df5b2cfacb16c4a826bb0e2508", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 6597, "upload_time": "2016-07-20T13:17:19", "url": "https://files.pythonhosted.org/packages/e8/6e/6ae0406db3fb50a2fbd48ed772dd51536af7743d1280ba5efaa2682cc9a6/templated_docs-0.2.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25e20a8962fee5765271b33e5997316b", "sha256": "bc7d7708837b4e7ebf9055f3029ddb1c9f47e19a3687e373067e290990d4c87a" }, "downloads": -1, "filename": "templated_docs-0.2.7.tar.gz", "has_sig": false, "md5_digest": "25e20a8962fee5765271b33e5997316b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44152, "upload_time": "2016-07-20T13:17:21", "url": "https://files.pythonhosted.org/packages/41/dc/90b9cd02111a0082da1655cf8795939530efd901ca9b5849a4ebf2403088/templated_docs-0.2.7.tar.gz" } ], "0.2.9": [ { "comment_text": "", "digests": { "md5": "3d5f74c632def2fbe541fa7fc41e26ea", "sha256": "b66c8eab1349802af7fa02bad32b48b1a48a96192998e1f9d2e0a2e980d49901" }, "downloads": -1, "filename": "templated_docs-0.2.9-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d5f74c632def2fbe541fa7fc41e26ea", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18193, "upload_time": "2016-07-22T08:56:37", "url": "https://files.pythonhosted.org/packages/43/26/527b104579ce59967cd0fffb20b1db480ec6269ebb0d8dc91dd05d73cff7/templated_docs-0.2.9-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "be7092922c0db1eec88aec1f2e3b024b", "sha256": "6ab340e5c3a82665daef757afa015168d7a559583be43683a5425bcfc60578a8" }, "downloads": -1, "filename": "templated_docs-0.2.9.tar.gz", "has_sig": false, "md5_digest": "be7092922c0db1eec88aec1f2e3b024b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45502, "upload_time": "2016-07-22T08:56:40", "url": "https://files.pythonhosted.org/packages/9b/2b/8bf978403e01699561fb71b23113a117d35b7993843de73ce8861f7c4692/templated_docs-0.2.9.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "af95fef5c09acd9450a7dffc855e7cc3", "sha256": "378b3473e3e852b125d4473d46a2974c1b727f134e00551761122f4b062e1227" }, "downloads": -1, "filename": "templated_docs-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "af95fef5c09acd9450a7dffc855e7cc3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18418, "upload_time": "2016-09-29T13:28:19", "url": "https://files.pythonhosted.org/packages/c8/77/72469e66e6a8dd2dfc2c33bc432720ebf20e019f2306e68680ea2c2a9110/templated_docs-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "48d84597aa1176e3b57fdd37fb4fc48d", "sha256": "b11e0a0021edb0edb63acca37ece0903f48e9ff51798fd556e4fc1b8a194a684" }, "downloads": -1, "filename": "templated_docs-0.3.0.tar.gz", "has_sig": false, "md5_digest": "48d84597aa1176e3b57fdd37fb4fc48d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45668, "upload_time": "2016-09-29T13:28:21", "url": "https://files.pythonhosted.org/packages/ed/2e/6410d831391465030e43c528018469e0fd991fa087b5575713a2aee1bfa6/templated_docs-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "cd5e5718bdeae2fbc6de351f2d62c26a", "sha256": "ab03ca9f648ae7feaa2751b8177c921bf5dd20646360d02f9cd69d87cb4a1f98" }, "downloads": -1, "filename": "templated_docs-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd5e5718bdeae2fbc6de351f2d62c26a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18436, "upload_time": "2016-10-17T13:40:59", "url": "https://files.pythonhosted.org/packages/76/8e/9b9bf0a2a7af9a4145a516067f52816ce711532bde88d81315b50b7dad09/templated_docs-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "adb4c110039e68c64e054d974bff5973", "sha256": "cd943db61781db2967e36b058cd1d6e0736d8f83c8c80b5acb6bdbe80c72ce02" }, "downloads": -1, "filename": "templated_docs-0.3.1.tar.gz", "has_sig": false, "md5_digest": "adb4c110039e68c64e054d974bff5973", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45679, "upload_time": "2016-10-17T13:41:01", "url": "https://files.pythonhosted.org/packages/91/94/a290070ea50a1f858016787c10a90c36a33f84b7f882c5bed7f8b61f848c/templated_docs-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cd5e5718bdeae2fbc6de351f2d62c26a", "sha256": "ab03ca9f648ae7feaa2751b8177c921bf5dd20646360d02f9cd69d87cb4a1f98" }, "downloads": -1, "filename": "templated_docs-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "cd5e5718bdeae2fbc6de351f2d62c26a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 18436, "upload_time": "2016-10-17T13:40:59", "url": "https://files.pythonhosted.org/packages/76/8e/9b9bf0a2a7af9a4145a516067f52816ce711532bde88d81315b50b7dad09/templated_docs-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "adb4c110039e68c64e054d974bff5973", "sha256": "cd943db61781db2967e36b058cd1d6e0736d8f83c8c80b5acb6bdbe80c72ce02" }, "downloads": -1, "filename": "templated_docs-0.3.1.tar.gz", "has_sig": false, "md5_digest": "adb4c110039e68c64e054d974bff5973", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45679, "upload_time": "2016-10-17T13:41:01", "url": "https://files.pythonhosted.org/packages/91/94/a290070ea50a1f858016787c10a90c36a33f84b7f882c5bed7f8b61f848c/templated_docs-0.3.1.tar.gz" } ] }