使用 Python 去除 PDF 水印:一步一步的实现
warning:
这篇文章距离上次修改已过198天,其中的内容可能已经有所变动。
from PyPDF2 import PdfReader, PdfWriter
def remove_watermark_from_pdf(input_pdf_path, output_pdf_path):
# 初始化一个PdfReader来读取PDF文件
reader = PdfReader(input_pdf_path)
# 初始化一个PdfWriter来写入新的PDF文件
writer = PdfWriter()
# 遍历PDF中的每一页
for page_index in range(len(reader.pages)):
# 获取当前页面
page = reader.pages[page_index]
# 获取当前页面的内容流
content_stream = page.get_contents()
# 如果内容流中包含'/Watermark',则认为该页有水印
if content_stream and b'/Watermark' in content_stream:
# 创建一个新的页面,并且替换掉原有的内容流
new_page = PageObject(page.media_box)
new_page.set_content(*content_stream.split(b'/Watermark')[:-1])
# 添加新页面到PdfWriter中
writer.add_page(new_page)
else:
# 如果没有水印,则直接添加原页面
writer.add_page(page)
# 将写好的页面写入到输出的PDF文件中
with open(output_pdf_path, 'wb') as output_pdf:
writer.write(output_pdf)
# 使用示例
remove_watermark_from_pdf('input.pdf', 'output.pdf')
这段代码首先导入了必要的PyPDF2库,然后定义了一个函数remove_watermark_from_pdf
,它接受输入和输出的PDF文件路径作为参数。函数中使用了PyPDF2库的PdfReader
和PdfWriter
类来读取和写入PDF文件。对于PDF中的每一页,检查是否有水印,如果有,则通过分割内容流来去除水印;如果没有水印,则直接保留该页。最后,将处理后的页面写入到输出的PDF文件中。
评论已关闭