ReportLab创建合同PDF

news2024/10/6 14:29:52

一、前言

有一个项目需要将电子签名后的报价合同和生成的发票发送给客户,这种发送给客户的文件一般都是使用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文件中了,签名后的文件如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1206545.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL最新2023年面试题及答案,汇总版(7)【MySQL最新2023年面试题及答案,汇总版-第三十七刊】

文章目录 MySQL最新2023年面试题及答案,汇总版(7)01、NOW() 和 CURRENT_DATE() 有什么区别?02、CHAR和VARCHAR的区别?03、主键索引与唯一索引的区别?04、MySQL中有哪些不同的表格?05、SQL的生命周期?06、你…

nginx四层tcp负载均衡及主备、四层udp负载均衡及主备、7层http负载均衡及主备配置(wndows系统主备、负载均衡)

准备工作 服务器上安装、配置网络负载平衡管理器 windows服务器热备、负载均衡配置-CSDN博客 在windows服务器上安装vmware17 在windows上利用vmware17 搭建centos7 mini版本服务器 设置好静态ip地址(因为windows 服务器上的网络负载平衡管理器不支持dhcp的服务器…

【git】解决git报错:ssh:connect to host github.com port 22: Connection timed out 亲测有效

如题,git使用中突然报错 ssh:connect to host github.com port 22: Connection timed out 通过查阅各种资料,得知原因可能是由于电脑的防火墙或者其他网络原因导致ssh连接方式 端口22被封锁。 解决方法 一:抛弃ssh连接方式,使…

YOLOv8-Seg改进:卷积变体系列篇 | PConv,减少冗余计算和内存访问可以更有效地提取空间特征 | CVPR2023 FasterNet

🚀🚀🚀本文改进:PConv,减少冗余计算和内存访问可以更有效地提取空间特征,引入到YOLOv8,与C2f结合实现二次创新; 🚀🚀🚀PConv 亲测在多个数据集能够实现涨点,同样适用于小目标分割 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐带你学习…

第2关:多表查询

任务描述 join操作符编程要求测试说明 任务描述 本关任务: 使用join操作符实现多表查询。 join操作符 1.笛卡尔积,RXS 可直接转换为SQL语句 2.等值连接,记作 可直接转换为SQL语句 3.自然连接,记作 可转换为SQL语句 4.左外连接…

对这套BI零售数据分析方案心动,是零售人天性

零售数据分析做了这么多年,难道真的没累积点经验,摸索出一条又快又能满足绝大多数需求的数据分析捷径?别人不知道,奥威BI还真就有这么一套标准化的BI零售数据分析方案,不管是服装零售、医药连锁、商超都能利用这套方案…

基于springboot实现小学家校一体“作业帮”系统项目【项目源码】

基于springboot实现小学家校一体“作业帮”系统演示 Java语言简介 Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具…

如何在 macOS 中删除 Time Machine 本地快照

看到这个可用82GB(458.3MB可清除) 顿时感觉清爽,之前的还是可用82GB(65GB可清除),安装个xcode都安装不上,费解半天,怎么都解决不了这个问题,就是买磁盘情理软件也解决不了…

JavaScript中this关键字实践

● 在全局中, this关键字表示全局窗口 console.log(this);● 在严格模式下,this不指向函数本身,在非严格模式下,this指向全局窗口 console.log(this);const calcAge function (birthYear) {console.log(2037 - birthYear);cons…

Intellij IDEA 内存设置的问题 及解决

解决方案: 在IDEA上运行较大项目时,编译量很大,可能会报出 Error:java: java.lang.OutOfMemoryError: Java heap space 的错误,解决方法如下: java.lang.OutOfMemoryError是内存不足导致的,因此需要修改Id…

主从复制和读写分离

MySQL 主从复制和读写分离: 主从复制:主MySQL上的数据,新增,修改库,表,表里的数据,都会同步到从MySQL上。 MySQL的主从复制的模式:(面试题) 1,异…

【PE】PE文件结构(一)

概述:PE文件结构基础认识之DOS头和PE头(以 rpcrt4.dll 为例分析) 0x01 前言 PE(Portable Executable),即可移植的执行体。 Linux平台:ELF(Executable and Linking Format)文件结构。 Windows平…

新生儿奶瓣:原因、科普和注意事项

引言: 新生儿奶瓣是一种婴儿口腔内的常见现象,它通常被视为正常的生理发展。然而,对于一些新父母而言,了解奶瓣的原因以及如何处理是至关重要的。本文将科普新生儿奶瓣的原因,提供相关信息,并为父母和监护…

YOLOv8-Seg改进:卷积变体系列篇 | DCNv3可形变卷积基于DCNv2优化 | CVPR2023

🚀🚀🚀本文改进:DCNv3算子,基于DCNv2算子引入共享投射权重、多组机制和采样点调制,引入到YOLOv8,与C2f结合实现二次创新; 🚀🚀🚀DCNv3 亲测在多个数据集能够实现涨点,同样适用于小目标分割 🚀🚀🚀YOLOv8-seg创新专栏:http://t.csdnimg.cn/KLSdv 学姐…

算法的入门基础了解

目录 算法的特征 如何设计算法? 伪代码 “算法”一词最早出现在《周髀算经》这本书中,对应的英文单词是“algorism”(由 9 世纪的波斯数学家阿尔霍瓦里兹米提出),代指阿拉伯数字的运算规则。随着计算机的快速发展&a…

设计大咖亲授:Figma中文环境设置全攻略!

作为UI设计师,你一定很熟悉Figma,Figma是一款专注于UI/UX设计的在线协作工具,使用非常高效方便,不需要下载和安装。它只需要通过浏览器编辑,在国外很受欢迎。但是Figma对于国内的小伙伴来说,使用Figma有一定…

Java面试题(每天10题)-------连载(30)

目录 多线程篇 1、可以运行时kill掉一个线程吗? 2、关于synchronized 3、分布式锁,程序数据库中死锁机制及解决方案 4、spring单例为什么没有安全问题(ThreadLocal) 5、线程池原理 6、Java锁多个对象 7、Java线程如何启动 …

基于opencv+tensorflow+神经网络的智能银行卡卡号识别系统——深度学习算法应用(含python、模型源码)+数据集(一)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境OpenCV环境 相关其它博客工程源代码下载其它资料下载 前言 本项目基于从网络获取的多种银行卡数据集,采用OpenCV库的函数进行图像处理,并通过神经网络进行模型训练。最终实…

雅虎、美客多、Temu、Allegro、亚马逊跨境平台选品技巧方法,测评养号攻略。

(1) Best Sellers选品法 这个方法顾名思义,就是大家熟悉的热销榜单选品法。 不做过多解释,在自己熟悉的品类,隔几天就会观察一下前100名里有没有冒出什么新品。 它和现有的产品相同还是不同,自己做哪些搭配或者迭代…

数字农业农村解决方案:PPT全文69页,附下载

关键词:智慧农业解决方案,数字农村,数字农业,智慧农业大数据平台 一、数字农业建设背景 数字农业建设是在国家大数据战略和“互联网”行动计划的指引下,充分利用现代信息技术和人工智能手段,对农业农村领…