ReportLab创建合同PDF

一、前言

有一个项目需要将电子签名后的报价合同和生成的发票发送给客户,这种发送给客户的文件一般都是使用PDF格式,主要是因为PDF特别适合阅读且不同平台打开文件格式不会变形,不过要在程序中生成PDF还是比较麻烦的,我们的发票是用Java IText生成PDF文件,而报价合同因为内容有7,8页比较长,很难用IText画出来,这个我们是通过先将报价文件Word模板渲染数据,然后将渲染数据后的Word再使用aspose-words转换为PDF并且贴上签名图片。本文我们用Python的Reportlab 来【画】一个最简单的报价合同PDF。

注:澳洲/新西兰那边的发票更像是一个凭证,是可以自定义格式的,不像国内由税务局统一开发票,合同据说也不需要公司盖章直接电子签名即可。

二、ReportLab库使用介绍

ReportLab是Python处理PDF的一个库,可以编辑文字、画图、画表格然后输出到PDF中。

PyPDF2也是一个处理PDF的Python库,它主要提供读取、合并、文件转换等功能,但它好像不支持直接编辑文字,这里使用PyPDF2主要是为了将签名的图片文件合并到合同的PDF中。

安装ReportLab 、PyPDF2

复制代码
pip3 install reportlabpip3 install pypdf2

注:引入相应的包

注:在PDF中绘制标题,可以设置字体、背景色等,这里使用的是Python3 安装目录下内置的字体,如果要引用其它字体,需要将字体文件ttf或ttc 复制到Python3环境下。window下的字体文件是可以直接Copy到Linux环境中使用的,我觉得理论上是不可行的,但同事测试过,有效

注:绘制表格 style设置表格的字体,背景色,边框等,其中第二个第三个参数(0,0) (-1,-1)指的是单元格索引位置,(0,0)左上角第一个单元格,(-1,-1)右下角最后一个单元格。

注:构建pdf对象,然后将标题和表格添加到文档中。

注:插入签名图片,通过canvas加载原始签名图片然后转换成PDF,再与原pdf文件合并,这样就可以将签名图片嵌入到PDF文件中了,签名后的文件如下:

相关推荐
2501_920955571 小时前
PDF文件损坏打不开怎么修复?2025年最新修复工具测评与对比
pdf
季春二九1 小时前
PDF-XChange Editor丨加拿大PDF编辑转换工具
pdf
开开心心就好6 小时前
微软官方出品:免费数据恢复工具推荐
网络·笔记·microsoft·pdf·word·音视频·symfony
Dontla6 小时前
如何在PDF文档中打钩?(福昕阅读器)打√
pdf·福昕阅读器
拓端研究室6 小时前
2025全球生成式人工智能AIGC产业全景与行业应用研究报告|附900+份报告PDF、数据、可视化模板汇总下载
pdf·aigc
拓端研究室6 小时前
专题:2025中国制造业出海与出海品牌社媒影响力洞察报告|附300+份报告PDF、数据、绘图模板汇总下载
pdf
烽火连城诀6 小时前
PDF 全文翻译开发实现思路:挑战、细节与工程化解决方案
pdf·pdf全文翻译·pdf保持格式翻译·全文翻译·pdf版式保持
袁煦丞 cpolar内网穿透实验室6 小时前
Stirling-PDF合并拆分加密样样行:cpolar内网穿透实验室第563个成功挑战
pdf·远程工作·内网穿透·cpolar·pdf工具
小嘟嚷ovo6 小时前
h5单页预览PDF文件模糊问题解决
pdf
星光一影9 小时前
PDF工具箱/合并拆分pdf/提取图片
pdf·c#