最近做的一个关于向pdf中加入背景透明的印章图片

  • 我的环境是anaconda python3.6 和 其他的都是按照参考文章pip install 的环境
  • 思路历程第一阶段
  • 思路历程第二阶段
  • 好了,这里大概讲完了我的思路,因为图片的合成,基本就是用的我给的连接的方法,就不放代码了。
    • 补充:关于imagemagic实现将pdf转png图片的方法,可以参考下边这个博主的方法,安装不了imagemagic的请去留言中找地址,那里的地址是更新的

我的环境是anaconda python3.6 和 其他的都是按照参考文章pip install 的环境

思路历程第一阶段

1.首先,肯定是想有一个函数可以直接实现,因为印章图片已经是去掉背景后的png图片了,即32bit(也就是RGBA格式),所以就想直接把图片放到指定位置不就可以了,然后去百度python中的做法,最后没有发现可用的库和函数(可能是我没有找到吧,有知道的也可以留言)
2.既然一步做不成我们就分两部做,然后有去百度,发现可以先将印章图片转为pdf,然后在和目标pdf进行合并,然后又开始上手,发现因为我是RGBA的图片,所以在直接转pdf的时候,图片的Alpha通道无一起写到pdf中,这个方法就又失败了。但是这里要说的是,24bit以下的图片就可以实现,因为他们都没有A通道,所以可以直接实现。
3.虽然上边的方法不行,但至少提供了思路,就是我可不可以先把目标pdf转图片,然后再把印章图片与其进行叠加,这样不就有了我要的效果,然后去百度,发现了2中方法,一种是用opencv 在python中就是cv2 库,另外一种用的PIL,这些都可以百度出来,不再细说,然后实现了带透明背景的印章和目标文件图片的叠加,效果不错,这个方法主要参考了下边这个博主的做法。

链接: 基于python的两张图片RGBA alpha 透明度混合实现.
有兴趣的可以参考参考,我也有在下边的评论提问,估计新手也会碰到我问的问题。

思路历程第二阶段

第一阶段确定了我们是先把目标pdf转为图片后再和印章图片合成,然后再把图片写回pdf中的总体思路,下边就是分步实现了,这里放一个关于python将pdf转图片的参考,用这个方法前百度了还有种用imagemagic做的,但是我的imagemagic安装后有问题,所以又找到了下边这种方法。

链接: windows下用Python把pdf文件转化为图片(png高清).
这里我在自己的需求上又加上了路径的拼接
代码如下

import fitz
import osdef run(target_file):#  打开PDF文件,生成一个对象doc = fitz.open(target_file)pic_path = r'E:\PythonFormat\pdf2image\all_pages' #这里的文件路径看你自己的项目路径,#我的项目是E:\PythonFormat\pdf2image 这个是我的项目路径,后边是要创建的文件夹路径# 判断路径文件夹是否存在,如果不存在我们就创建一个 好吧if not os.path.exists(pic_path):os.mkdir(pic_path)# 这里就是参考的上边连接的方法了,你们看人家的代码很容易明白for pg in range(doc.pageCount):page = doc[pg]rotate = int(0)# 每个尺寸的缩放系数为2,这将为我们生成分辨率提高四倍的图像。zoom_x = 2.0zoom_y = 2.0trans = fitz.Matrix(zoom_x, zoom_y).preRotate(rotate)pm = page.getPixmap(matrix=trans, alpha=False)# pm.writePNG('%s.png' % pg)# 这里因为我要写入我上边创建的文件加下,所以我要进行路径的拼接,# 注意不要直接在这里去改pic_path,否则他会在原有path基础上向后追加新的字段,产生新的路径,一定要重新写的新的变量存储路径temppic_path = os.path.join(pic_path, (str(pg) + '.png'))print(temppic_path)pm.writePNG(temppic_path)print('done@@@')# 这里是因为我后边需要在最后一页加盖章,所以我要返回个关于页数的图片索引,去进行图片的寻找 # 这里减1是因为 pageCount 得到的是从1 开始的pdf页数,而我后边要索引的时候是从0 进行查查找的,所以先在这里 -1 return str(doc.pageCount -1)

好了,这里大概讲完了我的思路,因为图片的合成,基本就是用的我给的连接的方法,就不放代码了。

这里因为我不太会ps就不放我的图片了,我用的图片涉及个人信息了

补充:关于imagemagic实现将pdf转png图片的方法,可以参考下边这个博主的方法,安装不了imagemagic的请去留言中找地址,那里的地址是更新的

链接: 通过ImageMagick将pdf转为图片的方法.
有兴趣的可以参考参考,我也有在下边的评论提问,估计新手也会碰到我问的问题。

关于Python 向pdf添加印章效果的思考及实现相关推荐

  1. JAVA实现 PDF转换 常用工具类(html转PDF、PDF添加页码、PDF文件下载、PDF添加印章或者水印)

    JAVA实现 PDF转换 常用工具类(html转PDF.PDF添加页码.PDF文件下载.PDF添加印章或者水印)可直接使用 package com.bestvike.util; import com. ...

  2. 基于springboot的spire.pdf添加印章

    在一些场合,我们往往需要使用印章来给每页文档加盖一个印章,以表示该文档经过某个部门的认证的,常规的做法就是打印文档后盖章,如果需要电子档再行扫描一下.这样的处理,如果文档很多,且仅仅需要电子文档的就很 ...

  3. python 给PDF添加目录

    目录 一.相关库安装 1.PyPDF系列: 2.pdfplumber 3.pdfminer3k 二.主要代码 1.pdfplumber提取相关信息 2.addBookmark 一.相关库安装 pip ...

  4. 【PDF添加印章】Java在PDF中添加指定尺寸大小的图片印章

    文章目录 需求 问题 解决 需求 需要在导出PDF时,添加指定大小为 4cm × 4cm 大小的图片印章 问题 客户提供的图片由 PhotoShop 导出,尺寸大小为 4cm × 4cm ,按说使用 ...

  5. python去除PDF中印章

    import sys, fitz, os, datetime import time from PIL import Image import numpy as np import tabula '' ...

  6. Python给pdf制定权限加密

    上一篇文章介绍了,为了保护pdf,使用python给pdf添加密码.但是,上锁之后,让客户可以看,但是不能随意复制.打印之类的话,还是不能满足的.因为加密之后,所有的功能权限都进行了加密.就是一个开关 ...

  7. 给知网没有书签的pdf文件添加书签(利用python解析txt文件内容并为pdf添加目录)

    今天利用tampermonkey的知网下载助手脚本下载pdf格式论文时,发现论文缺少书签,而脚本可以下载一个txt格式的书签(目录),因此打算利用python将txt格式的目录添加到pdf中. txt ...

  8. python小欢喜(七)游戏编程 (2) 挡球游戏的改进:使用中文提示并添加声音效果

    在前面的文章<python小欢喜(六)动画 (1) pygame的安装与初步使用>中介绍了如何安装pygame. <python小欢喜(七)游戏编程 (1) 挡球>实现了一个小 ...

  9. python读取pdf文档书签 bookmark_用Python为PDF文件批量添加书签

    平时看一些大部头的技术书籍,大多数都是PDF版的,而且有一些书籍是影印扫描版的,几百上千页的书,没有任何书签,想要找到一个章节的位置非常费劲.那么就想,能不能搞一个工具,来自动地为这些大部头的PDF书 ...

  10. Python自动化办公系列之Python操作PDF

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 输 作者介绍: 大家可以叫我黄同学(博客名:Huang Supre ...

最新文章

  1. Android Tab 选项卡的简单实现
  2. linux命令行中,双引号中的感叹号将被解释为历史命令
  3. 连接远程mysql遇到的问题及解决方法
  4. 通过OracleDataReader来读取BLOB类型的数据
  5. console 速查手册
  6. extundelete反删除总结
  7. 百度昆仑AI芯片已完成研发:明年初量产 由三星代工
  8. SQL Server2000导出数据时包含主键、字段默认值、描述等信息
  9. Comet入门及最简单的Java Demo
  10. json文件使用tips
  11. Django 结构及处理流程分析
  12. 2016PHP开发者大会
  13. python小学教材全解_小学教材全解三年级下数学
  14. java获取文件名格式 / java获取文件名后缀
  15. 是什么撑起了极兔快递近200亿美元的估值?
  16. Mac音频录制软件哪个好 怎么录制屏幕声音
  17. 树莓派-10-安装jupyter并控制SG90舵机
  18. SSD_OneStage
  19. 产品读书《创业36条军规》
  20. 1300:鸡蛋的硬度

热门文章

  1. mediator模式-调停者模式
  2. blender 常用快捷键
  3. python显示单片机温度_基于Python串口和单片机的实时温度采集系统
  4. 一个链接搞定源码下载
  5. 尚学堂马士兵java多线程部分笔记
  6. 公开课丨重中之重!Web安全漏洞与防御
  7. 小马哥---高仿山寨三星S8出世 谨防购买到假货!! 高仿三星S8 s305刷机拆机主板图示
  8. MASM 32位汇编 32与16汇编区别
  9. mysql数据库初始化不成功_初始化mysql的数据库失败怎么办
  10. 顽固文件文件夹删除工具