用Python对PDF去水印(终极版)原则上所有水印都可去除(Pdftron)

本人一直想做DWG文件批量处理成PDF文件,无意中从网上查找到Pdftron这个软件,当我用DWG批量处理成PDF文件时,用demo试用版本发现导出的文件会出现如下图的水印

 那如果我们运用时需要去除上面的水印,鄙人从网上查阅好多资料都是转成图片再根据色差去除水印然后再转回pdfk但是会得到以下效果

 可以看出pdf非常不清晰,这不能到达我们的需求,究其根本原因就是不能从pdf本身,解决这些问题。我在想能不能从pdf本身来解析其中信息,找到水印的信息直接删除呢,最终运用PyPDF4达到自己的目的,这里代码只列出一个文件去除pdf水印,多文件就需要写几个for循环即可,这对于大家来说小菜一碟,这里这是给大家提供一个可靠的思路,原则上所有水印即文字的,图画的,图形的都可以去除代码如下:

import os
from PyPDF4 import PdfFileReader,PdfFileWriter
output = PdfFileWriter()
pdf = PdfFileReader("C:/Users/13283/Desktop/hahaha/output/Drawing1.pdf", 'rb')
pdf1=pdf.getPage(0)
pdf1['/Resources']['/XObject']['/Trn3dK9'].clear()
output.addPage(pdf1)
with open("C:/Users/13283/Desktop/hahaha/output/out.pdf",'wb') as ouf:
      output.write(ouf)

其中"C:/Users/13283/Desktop/hahaha/output/Drawing1.pdf"为带有水印的文件pdf1=pdf.getPage(0)为第一页,因为这里只有一页,多页的话直接遍历就可,因为水印的形式大多数都差不多,遍历都就可以都删除pdf1['/Resources']为页面结构,本人经验来说大多数元素都在pdf1['/Resources']['/XObject']之中,其中['/Trn3dK9']就为中间的水印,我们把它删除掉再加入pdf页面中水印就消失。下图为处理之后的

​​​​​​​

 

 是不是和原来一样。

这里说一下,Pdftron是商业软件,此方法仅供学习使用禁止商用,谢谢。

如果你你们满意的话,请多多支持,本人为R语言与python学习者,有啥问题可私信一起学习哈。

基于Python+Flask、requests的抖音去水印工具-毕业设计源码+使用文档(高分优秀项目) 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计 基于Python+Flask、requests的抖音去水印工具-毕业设计源码+使用文档(高分优秀项目) 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计 基于Python+Flask、requests的抖音去水印工具-毕业设计源码+使用文档(高分优秀项目) 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计 基于Python+Flask、requests的抖音去水印工具-毕业设计源码+使用文档(高分优秀项目) 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计 基于Python+Flask、requests的抖音去水印工具-毕业设计源码+使用文档(高分优秀项目) 该项目是个人高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到97分,在window10/11测试环境严格调试,下载即用,确保可以运行,部署教程齐全,也可以作为课程设计
回答: 要使用Python去除PDF中的水印,可以使用PyPDF4库来实现。首先,你需要导入PyPDF4库并创建一个PdfFileWriter对象来存储处理后的PDF文件。然后,使用PdfFileReader对象打开带有水印PDF文件。接下来,你可以使用getPage()方法获取PDF的页面,并使用\['/Resources'\]\['/XObject'\]来访问页面的结构。通常情况下,水印元素都在\['/Resources'\]\['/XObject'\]中。你可以通过删除特定的水印元素来去除水印。最后,将处理后的页面添加到PdfFileWriter对象中,并将结果写入新的PDF文件中。下面是一个示例代码: ```python from PyPDF4 import PdfFileReader, PdfFileWriter output = PdfFileWriter() pdf = PdfFileReader("C:/Users/13283/Desktop/hahaha/output/Drawing1.pdf", 'rb') pdf1 = pdf.getPage(0) pdf1\['/Resources'\]\['/XObject'\]\['/Trn3dK9'\].clear() output.addPage(pdf1) with open("C:/Users/13283/Desktop/hahaha/output/out.pdf", 'wb') as ouf: output.write(ouf) ``` 在这个示例代码中,"C:/Users/13283/Desktop/hahaha/output/Drawing1.pdf"是带有水印PDF文件路径。pdf1=pdf.getPage(0)表示获取第一页,如果有多页的话,可以使用循环来遍历每一页。一般来说,水印的元素大多数都在pdf1\['/Resources'\]\['/XObject'\]中。\['/Trn3dK9'\]是表示要删除的水印元素。通过删除该元素,水印就会消失。最后,将处理后的页面添加到PdfFileWriter对象中,并将结果写入新的PDF文件中。 #### 引用[.reference_title] - *1* *2* [用PythonPDF去水印终极版原则上所有水印都可去除Pdftron)](https://blog.csdn.net/m0_53956136/article/details/127633298)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值