添加骑缝章的方式:

1、代码实现

2、PS实现

下面介绍用python进行自动化实现的方法。

一、加载模块:

import time
from pathlib import Path
import os
from fpdf import FPDF
from PIL import Image
import sys
import pdfplumber
from PyPDF2 import PdfReader,PdfWriter

二、核心代码

1、图片分割:

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 = Image.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 + "路径下)")print(result_path, split_size_w, split_size_h)return (result_path, split_size_w, split_size_h)

2、PDF合成

def merge_pdf(water_pdf, target_pdf, pages_count, result_path):"""两个pdf融合:param water_pdf: 水印PDF文件:param target_pdf: 合同PDF文件:param pages_count: 文件页数: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]print((pages_count-1-page_index))page.merge_page(reader.pages[(pages_count-1-page_index)])  #倒序合并writer.add_page(page)with open(result_path, "wb") as f:writer.write(f)

三、使用范例:

print('请输入需要加盖骑缝章的文件页数:')    # 输入切片数量
num= int(input())image_path='/Users/.../自动化加盖骑缝章/电子章.png'    #电子章路径
#电子章 图片信息:
pt=(72/25.4)
img=Image.open(image_path)
imgSize=img.size
img_w_mm=img.width/pt
print(img_w_mm)xz(image_path,num)    #进行切片,保存,保存路径看输出结果。
#图片分割结束,一共2张图片(保存在/Users/.../自动化加盖骑缝章/images/路径下)source_path=Path('/Users/.../自动化加盖骑缝章/images')
print('目录 %s 下所有文件:' % source_dir)
images = list(source_dir.glob('*.png'))    #查看输出结果
for name in images:print(name)#将PNG图片合成PDF
result_dir = Path('/Users/.../自动化加盖骑缝章/result')
if not result_dir.exists():result_dir.mkdir(parents=True)pdf = FPDF(format='A4')    #创建PDF,大小A4 A4尺寸:210mm*297mm
for image in images:pdf.add_page()pdf.image(str(image),x=(210-img_w_mm/num),y=150)     #调整切片在A4纸中的位置#输出骑缝章水印pdf
dest= os.path.join(result_dir,"qfz_watermark.pdf")
pdf.output(dest)#在需要加盖的文件上加盖骑缝章
print('请输入需要加盖骑缝章的文件路径:')
#'/Users/.../自动化加盖骑缝章/xx合同.pdf
target_pdf = input()
result_path = '/Users/.../自动化加盖骑缝章/OK.pdf'
merge_pdf(dest,target_pdf,num,result_path)
print('加盖好的文件输出到路径:',result_path,'请及时保存')

四、完整代码段:

#PS:直接复制无法成功运行,本地路径需要自行修改import time
from pathlib import Path
import os
from fpdf import FPDF
from PIL import Image
import sys
import pdfplumber
from PyPDF2 import PdfReader,PdfWriter#1、图片分割函数:
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 = Image.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 + "路径下)")print(result_path, split_size_w, split_size_h)return (result_path, split_size_w, split_size_h)#2、PDF合并函数
def merge_pdf(water_pdf, target_pdf, pages_count, result_path):"""两个pdf融合:param water_pdf: 水印PDF文件:param target_pdf: 合同PDF文件:param pages_count: 文件页数: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]print((pages_count-1-page_index))page.merge_page(reader.pages[(pages_count-1-page_index)])  #倒序合并writer.add_page(page)with open(result_path, "wb") as f:writer.write(f)#输入参数
print('请输入需要加盖骑缝章的文件页数:')    # 输入切片数量
num= int(input())image_path='/Users/.../自动化加盖骑缝章/电子章.png'    #电子章路径
#电子章 图片信息:
pt=(72/25.4)
img=Image.open(image_path)
imgSize=img.size
img_w_mm=img.width/pt
print(img_w_mm)xz(image_path,num)    #进行切片,保存,保存路径看输出结果。
#图片分割结束,一共2张图片(保存在/Users/.../自动化加盖骑缝章/images/路径下)source_path=Path('/Users/.../自动化加盖骑缝章/images')
print('目录 %s 下所有文件:' % source_dir)
images = list(source_dir.glob('*.png'))    #查看输出结果
for name in images:print(name)#将PNG图片合成PDF
result_dir = Path('/Users/.../自动化加盖骑缝章/result')
if not result_dir.exists():result_dir.mkdir(parents=True)pdf = FPDF(format='A4')    #创建PDF,大小A4 A4尺寸:210mm*297mm
for image in images:pdf.add_page()pdf.image(str(image),x=(210-img_w_mm/num),y=150)     #调整切片在A4纸中的位置#输出骑缝章水印pdf
dest= os.path.join(result_dir,"qfz_watermark.pdf")
pdf.output(dest)#在需要加盖的文件上加盖骑缝章
print('请输入需要加盖骑缝章的文件路径:')
#'/Users/.../自动化加盖骑缝章/xx合同.pdf
target_pdf = input()
result_path = '/Users/.../自动化加盖骑缝章/OK.pdf'
merge_pdf(dest,target_pdf,num,result_path)
print('加盖好的文件输出到路径:',result_path,'请及时保存')

python:实现pdf文件加盖骑缝章相关推荐

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

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

  2. java maven 读写pdf_Java 在PDF中加盖骑缝章

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...

  3. Java给PDF文件生成骑缝章

    什么是缝骑章? 骑缝章(Paging seal.)是海关常用词汇.为了保证海关监管货物留存单据的完整齐全以及核对有关单证,在单据交接处所加盖的印章. 在两张纸交接处的印章.这种印章多盖在条据.证书或其 ...

  4. Java实现pdf加盖骑缝章_Java 在PDF中添加骑缝章示例解析

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...

  5. Java 中pdf部分内容加边线_Java 在PDF中添加骑缝章示例解析

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...

  6. 骑缝章 Java_Java 在PDF中添加骑缝章示例解析

    骑缝章是用于往来业务合同,以确保合同真实.有效的印章加盖方法,是一种防范风险的重要方式.在Java程序中,可以通过使用工具来辅助加盖这种骑缝章. 工具:Free Spire.PDF for Java ...

  7. python 从PDF文件中读取书签/目录

    python 从PDF文件中读取书签/目录 代码介绍 需要使用到的函数 代码部分 有时候需要将PDF文件中的书签读取出来进行处理,因此写这篇博客记录具体的处理过程(某些pdf文件会出现打不开报错的情况 ...

  8. Python绘制PDF文件~超简单的小程序

    Python绘制PDF文件 项目简介 这次项目很简单,本次项目课,代码不超过40行,主要是使用 urllib和reportlab模块,来生成一个pdf文件. reportlab官方文档 http:// ...

  9. gnuradio上怎么使用python文件_使用Python从PDF文件中提取数据

    前言 数据是数据科学中任何分析的关键,大多数分析中最常用的数据集类型是存储在逗号分隔值(csv)表中的干净数据.然而,由于可移植文档格式(pdf)文件是最常用的文件格式之一,因此每个数据科学家都应该了 ...

最新文章

  1. 为什么我会重回到Windows的怀抱?
  2. 如何解决…has been modified since the precompiled header… was built的问题
  3. static void SetSysClockTo72(void)的一些理解
  4. Linux加载Linux的引导程序,Linux的引导-引导加载程序:LILO和GRUB
  5. 已经连接到空闲例程的解决方法
  6. 大前端页面布局插件收藏
  7. 最近面试 Java 后端开发的感受!现在的环境太。。。
  8. python中sort与sorted的区别_python排序函数sort()与sorted()的区别
  9. project.management.cattle.io not found
  10. HTML5与Flash相比有哪些好处?
  11. 表白生成器PHP源码,表白网页在线生成源码
  12. 虚拟机安装centos7.2系统
  13. 电脑底部任务栏没反应怎么办?
  14. vc语言c1083错误,关于VC编译错误fatal error C1083的解决办法
  15. iphone11的计算机在哪,苹果备份文件的路径在哪?iphone11系列itunes备份文件位置介绍...
  16. Eclipse创建java Web项目工程
  17. 阅读笔记 |《哲学·科学·常识》陈嘉映
  18. Android Car automotive解析
  19. 【Flutter】GridView使用之总结篇
  20. C# 运用开放协议连接拧紧枪控制器(马头)

热门文章

  1. 布衣联盟 XP SP2 Ghost 官方正式版 V2.0
  2. python打牌小游戏,注意别玩上瘾了哟~~
  3. 蛋花花分析你学完前端后可以做什么
  4. 没有steam土耳其支付方式怎么充值?
  5. QBXT 2018春季DP图论班 2018.4.29 --- 最短路差分约束
  6. [每日一答] [20151014] MySQL统计函数记录——时间段统计
  7. 归纳常见几种下载文件方式
  8. linux backspace和方向键不能用问题记录
  9. 华为手机什么时候更新鸿蒙系统_华为什么时候用鸿蒙系统 鸿蒙OS上市时间与支持机型...
  10. 《Android 应用案例开发大全(第3版)》——第2章,第2.2节壁纸的策划及准备工作...