Python docx模板引擎
项目描述
使用docx作为jinja2模板
简介
本软件包使用了2个主要包
python-docx用于读取、写入和创建子文档
jinja2用于管理插入到模板docx中的标签
创建python-docx-template是因为python-docx在创建文档方面非常强大,但在修改文档方面并不强大。
想法是开始使用Microsoft Word创建您想要的文档的示例,它可以像您想要的那么复杂:图片、索引表、页脚、页眉、变量,任何您可以用word做的事情。然后,当您还在用Microsoft Word编辑文档时,您可以直接在文档中插入类似jinja2的标签。将文档保存为.docx文件(xml格式):它将成为您的.docx模板文件。
现在,您可以使用python-docx-template从这个.docx模板和您将关联的上下文变量生成任意多的Word文档。
文档
请,阅读文档
其他项目
如果您喜欢python-docx-template,请查看我的一些其他项目
django-listing:Djano上的强效列表/表格库
python-textops3:可链式文本操作
django-robohash-svg:创建svg机器人头像
新闻
0.18.0 (2024-07-21)
重要:移除Python 2.x支持
在InlineImage中添加超链接选项(感谢Jean Marcos da Rosa)
更新index.rst(感谢jkpet)
添加poetry环境
所有文件使用Black
0.17.0 (2024-05-01)
支持python-docx 1.1.1
0.16.8 (2024-02-23)
PR #527:在Pipfile.lock中升级Jinja2
0.16.7 (2023-05-08)
PR #493 - 感谢AdrianVorobel
0.16.6 (2023-03-12)
PR #482 - 感谢 dreizehnutters
0.16.5 (2023-01-07)
PR #467 - 感谢 Slarag
修复 #465
修复 #464
0.16.4 (2022-08-04)
RichText 的区域字体
重新组织文档
0.16.3 (2022-07-14)
修复 #448
0.16.2 (2022-07-14)
修复 #444
修复 #443
0.16.1 (2022-06-12)
PR #442
0.16.0 (2022-04-16)
添加 jinja2 注释支持 - 感谢 staffanm
0.15.2 (2022-01-12)
修复 #408
现在可以使用相同的 DocxTemplate 对象进行多渲染,请参阅 tests/multi_rendering.py
修复 #392
修复 #398
0.14.1 (2021-10-01)
现在可以在命令行中使用 python -m docxtpl 从模板和 JSON 文件(作为上下文)生成 docx。感谢 Lcrs123@github
0.12.0 (2021-08-15)
代码已拆分为多个文件,以提高可读性
在将 docx 文件传递给 docxcomposer 创建子文档时,现在必须考虑图像、样式等部分
一些内部 XML ID 现在已重新编号以避免冲突,因此图像不再会随机消失。
修复 #372
修复 #374
修复 #375
修复 #369
修复 #368
修复 #347
修复 #181
修复 #61
0.11.5 (2021-05-09)
PR #351
现在可以在页眉/页脚中放置 InlineImage
修复 #323
修复 #320
\n, \a, \t 和 \f 现在接受在简单上下文字符串中。感谢 chabErch@github
0.10.5 (2020-10-15)
删除扩展测试 (#297)
修复某些情况下缺失空格的问题 (#116, #227)
0.9.2 (2020-04-26)
修复 #271
代码风格
0.8.1 (2020-04-14)
修复 #266
docxtpl 现在能够使用最新的 python-docx (0.8.10)。感谢 Dutchy-@github。
0.7.0 (2020-04-09)
添加 replace_zipname() 方法以替换 Excel 和 PowerPoint 嵌入文件
0.6.4 (2020-04-06)
添加将 RichText 添加到 Richtext 的可能性
防止 lxml 尝试解析 None
PR #207 和 #209
当运行时,Jinja 代码分割的空格现在被正确处理 (#205)
PR #203
DocxTemplate 现在接受文件-like 对象(感谢 edufresne)
0.5.20 (2019-05-23)
修复 #199
为 replace_media 添加对文件-like 对象的支持 (#197)
修复 #176
将自动转义委托给 Jinja2 环境 (#175)
强制使用 python-docx 0.8.7 (#170)
在模板中添加获取未声明变量的功能 (#171)
添加 PAGE_BREAK 功能 (#168)
修复问题 #159:对于 str 和 unicode 都进行自动转义。
修复具有较少单元格的 gridSpan 表格的 tc forloop 问题 (#164)
jinja 标签中的智能引号现在转换为简单引号
jinja 标签中的智能引号现在转换为简单引号
在 tests/ 中添加自定义 jinja 过滤器示例
重新格式化代码,使其更符合 PEP8 规范
添加 {% hm %} 标签以进行表格列的水平合并(感谢 nickgashkov)
将 tests/tests_files 目录拆分为模板和输出目录
为 python 2.7 添加 autoescape 支持
修复问题 #154
渲染现在可以自动转义上下文字典
修复使用 {% vm %} 导致的无效 xml 解析
将非字符串值转换为字符串,传递给 RichText 或 Listing 对象
导入 html.escape 而不是 cgi.escape(已弃用)
将包声明为 python2 和 python3 兼容的 wheel 分发
在 RichText 中添加上标和下标
修复表格垂直合并
现在可以在 RichText 中使用超链接
0.4.13 (2018-06-21)
子文档现在可以基于现有的 docx
在 RichText 中添加字体选项
更好地管理 MS Word 2016 中的制表符和空格
Wheel 分发
管理 InlineImage、Richtext 和 Subdoc 上的自动转义
清除 MANIFEST.in 文件
当 {{} 后没有空格时,接受以 'r' 开头的变量
删除调试跟踪
添加 {% vm %} 以在循环中垂直合并单元格(感谢 Arthaslixin)
使用 six.iteritems() 而不是 iteritems 以提高 python 3 兼容性
修复了 replace_pic() 方法上的 Bug #95
添加 replace_pic() 方法以替换图片的文件名(感谢 Riccardo Gusmeroli)
优化图片附件功能,适用于InlineImage对象
添加replace_media()方法(适用于头部/尾部图像)
添加replace_embedded()方法(适用于嵌入docx文件)
0.3.9 (2017-06-27)
修复fix_table()中的异常
修复在同一个运行中使用多个{{r }}或{%r %}时的错误
修复git标签v0.3.6实际上是针对0.3.5版本包的问题,因此为0.3.7版本创建标签0.3.7
改进头部/尾部Jinja2处理(感谢hugokernel)
修复在标签内部使用“%”(取模运算符)时的错误
添加Listing类来管理n和a(新段落)以及转义文本并保持当前样式
添加{%tc }标签以支持动态表格列(感谢majkls23)
在setup.py中移除对sphinx包的版本限制
在tests/test_files/中添加PNG和JPEG
现在可以直接添加图片而无需使用subdoc,这要快得多。
0.2.5 (2017-01-14)
为表格添加动态colspan标签
修复RichText类中的/n问题
为页脚和页眉添加Python 3支持
修复在.docx模板中页脚或页眉内部使用utf-8字符时的错误,现在它将自动检测页脚/页眉编码
修复使用subdocs时损坏生成的docx中的页脚和页眉的错误,感谢Denny Weinberg的帮助。
添加页脚和页眉支持(感谢Denny Weinberg)
0.1.11 (2016-03-1)
现在可以在Jinja标签内部使用“>”和“<”
render()接受可选的jinja_env参数:用于设置自定义过滤器和其他内容
改进subdoc管理:接受表格
改进Jinja2标签周围的XML代码清理
支持Python 3
移除调试代码
添加lxml依赖项
修复包含引号的模板过滤器
添加RichText支持
添加subdoc支持
在tests/中添加一些示例
首次运行版本
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。