python实现给pdf文件加骑缝章效果

news/2024/11/7 8:36:28/

骑缝章是在合同上经常看到的一种盖章方式,如下图所示。现在电子合同的应用已经越来越广泛,合同上如何实现骑缝章的效果 ,也是有必要研究一下的。本文几乎Python的方式,讲述了如果对印章图片进行处理,然后,实现给Pdf文件加上骑缝章的效果。
骑缝章

运行环境

  • Python3.0+

实现思路

实现思路如下:

印章PNG文件
印章图片分割
PDF合同文件
读取页数
创建空白同页数PDF文件
图片绘制PDF制定位置
临时PDF
融合
最终结果

一定要避免一个误区,尽量不要在word上操作,然后再转PDF。python实现Word转PDF基本都要依赖于windows上安装的Word程序,这就限制了只能在Windows上运行。

实现效果

注意,必须是A4纸大小的PDF文件
实现效果

核心代码

图片分割

def xz(image_path, count):"""将图片水平分割:param image_path:PNG图片路径:param count: 页数:return:"""img_path = image_path# 判断是否有效if img_path != '':print(img_path)  # 图片路径# 分割成1行img_split_row = 1  # 行数# 分割成几列sp = count  # 输入拆分列数量img_split_col = int(sp)# 要保存的图片路径(保存为png图片格式)if os.path.dirname(img_path) == "":img_path = os.getcwd() + os.sep + img_pathimg_save = os.path.dirname(img_path) + os.sep + "images" + os.sepif not os.path.exists(img_save):os.makedirs(img_save)# 分割图片img_ext_name = os.path.splitext(os.path.basename(img_path))[1]img_now = imim.open(img_path)split_size_w = int(img_now.size[0] / img_split_col)split_size_h = int(img_now.size[1] / img_split_row)result_path = []for r in range(img_split_row):for c in range(img_split_col):split_area = (split_size_w * c, r * split_size_h, split_size_w * (c + 1), split_size_h * (r + 1))# print( (r*img_split_col+c+1) );img_now.crop(split_area).save(img_save + str(r * img_split_col + c + 1) + img_ext_name)result_path.append(img_save + str(r * img_split_col + c + 1) + img_ext_name)time.sleep(0.5)  # 等待# 结束print("图片分割结束,一共" + str(img_split_row * img_split_col) + "张图片(保存在" + img_save)return (result_path, split_size_w, split_size_h)

PDF合成

from PyPDF2 import PdfReader,PdfWriter
import osdef merge_pdf(water_pdf, target_pdf, result_path):"""两个pdf融合:param water_pdf: 水印PDF文件:param target_pdf: 合同PDF文件:param result_path: 结果输出录路径:return: """# 获取页数pages_count = get_num_pages(target_pdf)watermark_reader = PdfReader(target_pdf)# 读取需要被添加水印的PDFreader = PdfReader(water_pdf)writer = PdfWriter()# 遍历所有页面for page_index in range(0, pages_count):# 合并水印页面page = watermark_reader.pages[page_index]page.merge_page(reader.pages[page_index])writer.add_page(page)with open(result_path, "wb") as f:writer.write(f)

源代码下载

如果还有疑问,可以前往下载源代码https://download.csdn.net/download/GISuuser/87387763


http://www.ppmy.cn/news/356742.html

相关文章

使用PDF.js如何显示pdf文件的电子签章

将pdf.js源码下载后,在build/pdf.worker.js文件中找到如下图所示的代码段 将this.setFlags(AnnotationFlag.HIDDEN);注释掉就会显示电子签章,反之不显示。 PS:如果有的同学源码解压过后没有build文件夹,可以从这下载http://files.…

原生JS实现文件自定义位置盖章功能并导出PDF

原生JS实现文件自定义位置盖章功能并导出PDF 实现原理 在需要签章的文件上面创建一个div,可以通过移动这个div来确定签章位置,然后在通过获取这个位置把章子替换到这,并导出PDF,可以多次盖章! 实现截图 代码实现 废…

电子签章pdf文件之我见

现在电子签章主要针对pdf文件,所以如果要验签,那么必须要熟悉pdf文件结构。Pdf文件知识点较多,仅pdf标准文档就已经到第7版了,最后一个版本就有800页,学习起来难度相对较大,但如果仅仅是为了验签&#xff0…

vue里面使用pdfjs-dist+fabric实现pdf电子签章!!!

2022.9.6 一、需求 最近领导提了一个新需求:仿照e签宝,实现pdf电子签章! 最终实现效果图 这是做出来的效果图,当然还有很多待修改 二、思路 然后我就去看了下人家e签宝的操作界面,左侧是印章,右侧是…

使用Java对PDF进行电子签章

使用Java对PDF进行电子签章 开始之前前期准备开始生成keystore证书来张材料全家福编码项目结构签署工具类 开始之前 公司近期做的项目用到了电子签章(给PDF盖章签名),这过程真是曲折。恰逢现在时间比较空闲(有时间摸鱼&#xff0…

1024程序员节|历经一个月总结使用java实现pdf文件的电子签字+盖章+防伪二维码+水印+PDF文件加密的全套解决方案

🍅程序员小王的博客:程序员小王的博客 🍅CSDN地址:程序员小王java 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我&#xff0c…

怎样在PDF文件上添加印章

1、首先将需要添加制公司的印章的文件转换成.pdf文件 2、从Adobe 官网上下载Adobe Acrobat XI Pro 这款软件并安装到我们的电脑上,安装完后打开软件,界面如下: 3、准备好我们要添加水印的pdf文档,用Adobe Acrobat XI打开&#xf…

Word盖章和PDF盖章

一、电子签章的作用 对文档进行数字签名与签署纸质文档的原因大致相同,数字签名通过使用计算机加密来验证 (身份验证:验证人员和产品所声明的身份是否属实的过程。例如,通过验证用于签名代码的数字签名来确认软件发行商的代码来源和完整性。…