Python去除pdf水印怎么做?Python如何将pdf文件水印去除

【Python去除pdf水印怎么做?Python如何将pdf文件水印去除】小编在之前的文章之中给大家讲解过了python是如何来给pdf文件添加水印的,但是在生活工作中也会去下载一些pdf文件使用,但是有些文件带水印很影响阅读体验 。所以这一篇文章是来给大家讲解pdf文件去除水印的方法,感兴趣的话就一起往下看看吧 。

Python去除pdf水印怎么做?Python如何将pdf文件水印去除

文章插图
1.那么第一步实际上是要将所需要的模块和第三方库都给下载安装好,那么操作pdf文件可以使用fitz模块,除此之外还要itertools库和Pillow库,代码如下:
from PIL import Imagefrom itertools import productimport fitz2.第二步就是将pdf文件打开然后进行遍历读取,读取出来的pdf文件都需要将其转为图片,因为是不能够对pdf文件直接进行操作的 。图片都取出来之后根据RGB色差来定位到水印像素点,并且使用相邻像素颜色对其进行填充 。
然后将这些图片都保存在文件夹里面即可,去除水印之后的图片需要用字符串格式化来动态命名,代码示例如下所示:
def remove_pdfwatermark():    pdf_file = fitz.open("sy.pdf")    page_no = 0    for page in pdf_file:        pix = page.get_pixmap()        for pos in product(range(pix.width), range(pix.height)):            if sum(pix.pixel(pos[0], pos[1])) >= 510:                pix.set_pixel(pos[0], pos[1], (255, 255, 255))        pix.pil_save(f"./{page_no}.png", dpi=(30000, 30000))        page_no += 13.那么这些去除掉了水印的图片是无法直接的使用,还需要将这些图片按照名称的数字大小来排序,这样才能保证图片转为pdf文件插入时的顺序不会变化,详细代码示例如下所示:
pic_dir = 'D:\Project\watemark'pdf = fitz.open()img_files = sorted(os.listdir(pic_dir), key=lambda x: int(str(x).split('.')[0]))for img in img_files:    print(img)    imgdoc = fitz.open(pic_dir + '/' + img)    pdfbytes = imgdoc.convertToPDF()    imgpdf = fitz.open("pdf", pdfbytes)    pdf.insertPDF(imgpdf)pdf.save("sywc.pdf")pdf.close()以上就是关于“Python去除pdf水印怎么做?Python如何将pdf文件水印去除”的全部内容了,希望对你有所帮助 。

    推荐阅读