概述
最近单位需要批量输出报告,好在这些报告的整体模板相同,只有一些跟用户相关的信息需要替换。几千份的重复工作,还是交给Python去处理吧。
本文的技术路径为:利用docxtpl对word模板文件进行变量替换,然后利用 将word转换为pdf。
本文代码应用环境如下:
1 | * Windows 7 |
Word文档处理
安装
主要用
docxtpl库实现。官方文档直接
pip install docxtpl即可,会自动安装依赖库:docx和jinja2。
模板文档准备
如下所示,将需要进行变量替换的位置用两对大括号括起来,并在其中添加变量名,这是后续能通过python识别替换的关键。

表格
表格的变量设置比较麻烦,可以查看官方github,里面有很多示例代码,随用随取。
设置表格变量的时候,有两个关键,一个是行 ,一个是列,其中行用字段tr(row)表示,列用字段tc(column)表示。
如下表中所示,我们通过构建列表循环 和 调用字典key的方式,对表格中的各个项进行填充。

使用示例
1 | from docxtpl import DocxTemplate,InlineImage |
Word转PDF
通过Windows Com组件(win32com),调用Word服务(Word.Application),实现Word到PDF文件的转换。因此,要求该Python程序需要在有Word服务(可能至少要求2007版本)的Windows机器上运行。
1 | import win32com.client |

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。