import fitz
def remove_watermark(pdf_path, output_path):
doc = fitz.open(pdf_path)
for page in doc:
watermark_list = page.search_for("watermark")
for mark in watermark_list:
page.delete_object(mark)
doc.save(output_path)
doc.close()
remove_watermark(r'C:\Users\win10\Desktop\需要处理的.pdf', r'C:\Users\win10\Desktop\取出后生成的.pdf')
具体来说,该函数 remove_watermark()
接受两个参数,一个是需要处理的 PDF 文件的路径,另一个则是要保存去水印后生成的新 PDF 文件的路径。
在函数中,我们首先打开原始的 PDF 文件并获取文档对象 doc
。接着,我们循环遍历每一页并使用 search_for()
方法查找包含“watermark”文本的页面元素,并使用 delete_object()
方法删除这些元素,从而去除前景和背景水印。
最后,我们使用 save()
方法将修改后的 PDF 文件保存到指定的输出路径,并通过 close()
方法关闭文档对象,释放资源。
在调用该函数时,我们需要传递需要处理的 PDF 文件的完整路径(包括文件名和扩展名),以及新生成的 PDF 文件的完整路径(与原始文件不同的文件名或目录)。在这里,我们使用了 r
前缀将 Windows 路径中的反斜杠字符转义为普通字符,使其能够被 Python 正确解析。