概述
最近单位需要批量输出报告,好在这些报告的整体模板相同,只有一些跟用户相关的信息需要替换。几千份的重复工作,还是交给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 国际许可协议进行许可。