NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2127 most downloaded on PyPI
Python docx template engine
Last release 10 months ago
13 Nov 2025
Ships fairly regularly
a new release about every 3 months
Some releases are documented
notes for 25 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
101 releases · first in 2015
Move docxcompose to optional dependency (Thanks to Waket Zheng)
Fix fix_tables()
Move docxcompose to optional dependency (Thanks to Waket Zheng)
Run black on template.py
Run black on template.py
Fix and improve get_undeclared_template_variables() method (Thanks to Pablo Esteban)
One column per quarter.
Add RichTextParagraph (Thanks to ST-Imrie)
Add RichTextParagraph (Thanks to ST-Imrie)
Add RTL support for bold/italic (Thanks to bm-rana)
Update documentation
PR #575 : fix unicode in footnotes (Thanks to Jonathan Pyle)
PR #575 : fix unicode in footnotes (Thanks to Jonathan Pyle)
Merge branch 'bartbroere-patch-1'
Merge branch 'bartbroere-patch-1'
IMPORTANT : Remove Python 2.x support
IMPORTANT : Remove Python 2.x support
Add hyperlink option in InlineImage (Thanks to Jean Marcos da Rosa)
Update index.rst (Thanks to jkpet)
Add poetry env
Black all files
Add support to python-docx 1.1.1
Add support to python-docx 1.1.1
PR #527 : upgrade Jinja2 in Pipfile.lock
PR #527 : upgrade Jinja2 in Pipfile.lock
PR #493
PR #482 - thanks to dreizehnutters
PR #482 - thanks to dreizehnutters
remove unused code in doc_properties.py
remove unused code in doc_properties.py
- Regional fonts for RichText - Reorganize documentation
Regional fonts for RichText
Reorganize documentation
- fix #448
fix #448
- fix #444 - fix #443
fix #444
fix #443
add jinja2 comment support - Thanks to staffanm
add jinja2 comment support - Thanks to staffanm
Multi-rendering with same DocxTemplate object is now possible see tests/multi_rendering.py
fix #408
Multi-rendering with same DocxTemplate object is now possible see tests/multi_rendering.py
fix #392
fix #398
Nothing published for this version
Nothing published for this version
Nothing published for this version
One can now use python -m docxtpl on command line to generate a docx from a template and a json file as a context Thanks to Lcrs123@github
One can now use python -m docxtpl on command line to generate a docx from a template and a json file as a context Thanks to Lcrs123@github
Code has be split into many files for better readability
Code has be split into many files for better readability
Use docxcomposer to attach parts when a docx file is given to create a subdoc Images, styles etc... must now be taken in account in subdocs
Some internal XML IDs are now renumbered to avoid collision, thus images are not randomly disapearing anymore.
fix #372
fix #374
fix #375
fix #369
fix #368
fix #347
fix #181
fix #61
It is now possible to put InlineImage in header/footer
PR #351
It is now possible to put InlineImage in header/footer
fix #323
fix #320
\n, \a, \t and \f are now accepted in simple context string. Thanks to chabErch@github
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix spaces missing in some cases (#116, #227)
Remove extension testing (#297)
Fix spaces missing in some cases (#116, #227)
Nothing published for this version
Nothing published for this version
Nothing published for this version
- Fix #271 - Code styling
Fix #271
Code styling
Nothing published for this version
docxtpl is now able to use latest python-docx (0.8.10). Thanks to Dutchy-@github.
fix #266
docxtpl is now able to use latest python-docx (0.8.10). Thanks to Dutchy-@github.
Nothing published for this version
Add replace_zipname() method to replace Excel and PowerPoint embedded files
Add replace_zipname() method to replace Excel and PowerPoint embedded files
Add the possibility to add RichText to a Richtext
Add the possibility to add RichText to a Richtext
Prevent lxml from attempting to parse None
PR #207 and #209
Handle spaces correctly when run are split by Jinja code (#205)
PR #203
DocxTemplate now accepts file-like objects (Thanks to edufresne)
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Import html.escape instead of cgi.escape (deprecated)
Fix #199
Add support for file-like objects for replace_media (#197)
Fix #176
Delegated autoescaping to Jinja2 Environment (#175)
Force to use python-docx 0.8.7 (#170)
Add getting undeclared variables in the template (#171)
Added PAGE_BREAK feature (#168)
Fixed issue #159: autoescaped values for both str and unicode.
Fix tables with gridSpan that have less cells after the tc forloop (#164)
Smart double quotes in jinja tags are now converted into simple double quotes
Smart quotes in jinja tags are now converted into simple quotes
Add custom jinja filter example in tests/
Reformat the code to be a little more PEP8 compliant
Add {% hm %} tag for table columns horizontal merging (Thanks to nickgashkov)
Split tests/tests_files dir into templates and output dirs
autoescape support for python 2.7
fix issue #154
Render can now autoescape context dict
Fix invalid xml parse because using {% vm %}
Cast to string non-string value given to RichText or Listing objects
Import html.escape instead of cgi.escape (deprecated)
Declare package as python2 and python3 compatible for wheel distrib
Add sub/superscript in RichText
Fix table vertical merge
An hyperlink can now be used in RichText
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →