跳转到主要内容

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,请查看我的一些其他项目

新闻

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/中添加一些示例

  • 首次运行版本

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

docxtpl-0.18.0.tar.gz (30.9 kB 查看哈希值)

上传时间

构建分发

docxtpl-0.18.0-py2.py3-none-any.whl (29.3 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下支持