学校老师发的资料,有时候会带水印,有点强迫症的都想给它去掉。用AdobeAcrobat试了下,检测不到水印,无法删除!分析发现原来这类PDF文件是用word编辑的,其中的水印是加在了页眉中!
自己动手想办法搞定它。
“””Title: 清除PDF水印(非pdf加的水印而是用word文件头加的接着转成了pdf)Author: JackieZhengDate: 2025-05-11 10:31:23LastEditTime: 2025-05-12 23:43:21LastEditors: Please set LastEditorsDescription:FilePath: \pythonCode\remove_pdf_watermark.py”””import osimport fitz PyMuPDFdef remove_image_watermark(pdf_path): doc = fitz.open(pdf_path) for page_num in range(len(doc)): page = doc[page_num] xref = page.get_contents()[0] 获取页面字节流,以xref的形式返回 cont0 = doc.xref_stream(xref).decode() 将流解码为字符串 page.clean_contents() if ‘/Header>> BDC’ in cont0: 找到word页眉总分 start_str = ‘/Header>> BDC’ 获取水印起始位置 end_str = ‘crnhrnf*rnq’ 获取水印结束位置 (需要自己根据情况找到类似字符) cont = remove_between_strings(cont0, start_str, end_str) doc.update_stream(xref, cont.encode()) 更新流 print(‘page’, page_num, ‘processed’) doc.save(pdf_path[:-4] + ‘_processed.pdf’) doc.close()def remove_between_strings(original_text, start_str, end_str): start = original_text.index(start_str) + len(start_str) end = original_text.index(end_str, start) content = original_text[:start] + original_text[end:] print(content) return contentpdf_path = r’C:UsersJackieZhengDesktop满分冲刺练.pdf’remove_image_watermark(pdf_path)
操作原理:把文件解码为字符串,分析找出水印部分内容,从中剔除掉即可。
前后效果对比:
到此这篇关于python清除PDF文件中水印的项目操作的文章就介绍到这了,更多相关python清除PDF水印内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
无论兄弟们可能感兴趣的文章:
- Python去除PDF水印的实现示例
- python为图片和PDF去水印详解
- 2行Python代码实现给pdf文件添加水印
- 十行Python3代码实现去除pdf文件水印
- Python实现为pdf添加水印功能
- 详解Python怎样实现批量为PDF添加水印
- Python实现为PDF大文件批量去除水印
- Python使用PyMuPDF实现添加PDF水印
- 使用python去除PDF简单水印的示例