前言

  • 今天因为工作需求需要清除一份PDF文件上的水印
  • 经过查询发现这篇博客但是在使用过程中发现有些方法报错,查阅PyMuPDF包官方文档后发现,因版本更新有很多方法写法发生了变化,导致报错
  • 这里我在上述博客基础上对函数进行改进,添加了文件夹新建模块、进度条模块。

去除水印

  • 如果没有安装PyMuPDF包请先安装
!pip install PyMuPDF
  • 导入必要库
from PIL import Image
from tqdm.notebook import tqdm
from itertools import product
import fitz
import os
  • 将PDF转换为PNG图片文件
def remove_pdf(pdf_file, out_file):if not os.path.exists(out_file):os.mkdir(out_file)page_num = 0pdf = fitz.open(pdf_file);for page in tqdm(pdf):pixmap = page.get_pixmap()for pos in product(range(pixmap.width), range(pixmap.height)):rgb = pixmap.pixel(pos[0], pos[1])if(sum(rgb) > 620):pixmap.set_pixel(pos[0], pos[1], (255, 255, 255))pixmap.pil_save(os.path.join(out_file, '%d.png'%page_num))page_num = page_num + 1
  • 将图片文件重新合并为PDF文件
def pic2pdf(pic_dir):pdf = fitz.open()img_files = sorted(os.listdir(pic_dir),key=lambda x:int(str(x).split('.')[0]))for img in tqdm(img_files):imgdoc = fitz.open(pic_dir + '/' + img)  pdfbytes = imgdoc.convert_to_pdf()imgpdf = fitz.open("pdf", pdfbytes)pdf.insert_pdf(imgpdf)pdf.save("demo.pdf")pdf.close()
  • 调用函数
pdf_file = '../input/pdfcheck/CET4.pdf'
out_file = './temp'
remove_pdf(pdf_file, out_file)
pic2pdf(out_file)
  • 效果展示

后记

  • 有个小问题就是再对彩色PDF进行转换时,对图像质量可能会有影响,这个我也不清楚怎么调节一下,建议先用PDF软件把PDF转换为图片后再进行水印去除,对应的图片去水印函数如下:
def remove_img(in_file, out_file):if not os.path.exists(out_file):os.mkdir(out_file)count = 0img_files = sorted(os.listdir(in_file),key=lambda x:int((str(x).split('_')[1]).split('.')[0]))for image_file in tqdm(img_files):img = Image.open(os.path.join(in_file, image_file))width, height = img.sizefor pos in product(range(width), range(height)):rgb = img.getpixel(pos)[:3]if(sum(rgb) >= 620):img.putpixel(pos, (255, 255, 255))img.save(os.path.join(out_file, '%d.png'%count))count = count + 1
  • 截止2022年11月20日 13:00代码有效。

Python去除PDF文件水印(PyMuPDF包)相关推荐

  1. 告诉你一个去除PDF文件水印简单快速的方法

    有时候下载一个pdf文件会发里面有水印,正在使用里面内容的时候很不方便,那么如何能去掉这些pdf中的水印呢?下面就告诉你一个去除PDF文件水印简单快速的方法. 方法/步骤 先安装一个迅捷pdf编辑器, ...

  2. 去除PDF文件水印方法

    之所以要去除PDF文件的水印,不仅是因为打印稿上有水印看着乱,更严重的原因: 1.打印出水印时文件本身文字颜色会变浅,看不清楚: 2.带水印打印时打印时间延长非常严重. 我实验成功的方法是: 若用Ad ...

  3. PDF如何去除水印?三种方法教你如何去除PDF文件水印

    PDF水印是PDF文档中常见的一种标识符号,用于标识文件的版权或者来源等信息.如果您想去除PDF文档中的水印,可以尝试以下方法: 1.使用Adobe Acrobat Pro 这是全世界最大的软件公司A ...

  4. 怎么去除pdf文件的水印?好用软件说明

    怎么去除pdf文件的水印?在某些情况下,PDF 文件的水印可能会影响文件的可读性和美观度.为了解决这个问题,您可以考虑使用其他方法来标记文档,例如添加页眉或页脚.另一种选择是使用透明度更低的水印,这样 ...

  5. 用 Python 去除 PDF 水印,你学会吗?

    今天介绍下用 Python 去除 PDF (图片)的水印.思路很简单,代码也很简洁. 首先来考虑 Python 如何去除图片的水印,然后再将思路复用到 PDF 上面. 这张图片是前几天整理<数据 ...

  6. 利用 Python 去除 PDF 水印(和图片水印原理一样)

    前言 今天介绍下用 Python 去除 PDF (图片)的水印.思路很简单,代码也很简洁. 首先来考虑 Python 如何去除图片的水印,然后再将思路复用到 PDF 上面. 原理 这张图片是前几天整理 ...

  7. 8、【办公自动化】Python实现PDF文件的批量操作

    说明 平时工作中,经常会和 PDF 文件打交道,比如,合并.拆分.加解密.添加和去除水印.提取指定内容.转换成其他文件格式等操作.如果只是处理单个 PDF 文件的话,有些操作是比较简单的,而如果需要批 ...

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

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

  9. Python:PDF文件转图像

    Python:PDF文件转图像 什么是PyMuPDF? Python环境下想要将PDF文件转图像,可以使用PyMuPDF库. PyMuPDF是MuPDF的Python绑定-"轻量级PDF和X ...

最新文章

  1. 利用TCMalloc替换Nginx和Redis默认glibc库的malloc内存分配
  2. android shape 按钮背景_flutter好用的轮子推荐十三-flutter可展开选项的浮动按钮
  3. php 移动端隐藏引导页,移动端引导设计技巧1:前置的引导页
  4. 液晶电视服务器无响应时间,液晶电视响应速度时间是多少更好啊?
  5. Vue.js学习系列(二十八)-- 计算属性(二)
  6. 云栖大会上,阿里巴巴重磅发布前端知识图谱!
  7. return view详解
  8. 48session的生命周期
  9. Kotlin 接口(三)
  10. 算数基本定理 + 例题
  11. PID算法之模糊PID
  12. 西电软件工程概论复习纲要
  13. html表格图片垂直居中 css,利用Display: table;实现img图片垂直居中
  14. 计算机视觉:图像映射与全景拼接
  15. 应该怎样学习Unity3D
  16. python自身的数据结构
  17. 李大学:互联网裂变里最重要的是资金流|正和岛|正和岛联席总裁黄丽陆|2015正和岛东部(海宁)论坛_新浪财经_新浪网...
  18. laravel入门及技术指南
  19. 电子信息工程技术就业方向有哪些?
  20. 分布式版本控制系统Git的下载、安装与使用其复制GitHub项目代码的方法

热门文章

  1. 怎么选择合适的PLM系统
  2. 牛客练习赛24-B-贪心
  3. php对接AliGenie天猫精灵服务器控制智能硬件esp8266② 全面认识第三方授权机制 oauth2.0 协议,如何在 php 上搭建 oauth2.0服务端!(附带demo)
  4. 前端路由和 VueRouter
  5. 慕容垂:百万战骨风云里——激荡的鲜卑史略之二(转载)
  6. chapter8——消抖技术
  7. 单片机是指把组成微型计算机的各功能部件即,单片机结题报告.doc
  8. 软件体系结构---基础知识点(2)
  9. Studio One 5机架设置一键切换效果通道
  10. 人工智能教程第四课 yolo入门和案例