python清除PDF文件中水印的項目實踐
學(xué)校老師發(fā)的資料,有時候會帶水印,有點強迫癥的都想給它去掉。用Adobe Acrobat試了下,檢測不到水印,無法刪除!分析發(fā)現(xiàn)原來這類PDF文件是用word編輯的,其中的水印是加在了頁眉中!

自己動手想辦法搞定它。
"""
Title: 清除PDF水?。ǚ莗df加的水印而是用word文件頭加的然后轉(zhuǎn)成了pdf)
Author: JackieZheng
Date: 2025-05-11 10:31:23
LastEditTime: 2025-05-12 23:43:21
LastEditors: Please set LastEditors
Description:
FilePath: \\pythonCode\\remove_pdf_watermark.py
"""
import os
import fitz # PyMuPDF
def 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] # 獲取頁面字節(jié)流,以xref的形式返回
cont0 = doc.xref_stream(xref).decode() # 將流解碼為字符串
page.clean_contents()
if '/Header>> BDC' in cont0: # 找到word頁眉總分
start_str = '/Header>> BDC' # 獲取水印起始位置
end_str = 'c\r\nh\r\nf*\r\nq' # 獲取水印結(jié)束位置 (需要自己根據(jù)情況找到類似字符)
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 content
pdf_path = r'C:\Users\JackieZheng\Desktop\滿分沖刺練.pdf'
remove_image_watermark(pdf_path)操作原理:把文件解碼為字符串,分析找出水印部分內(nèi)容,從中剔除掉即可。
前后效果對比:

到此這篇關(guān)于python清除PDF文件中水印的項目實踐的文章就介紹到這了,更多相關(guān)python清除PDF水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用matplotlib實現(xiàn)基礎(chǔ)繪圖功能示例
這篇文章主要介紹了Python使用matplotlib實現(xiàn)基礎(chǔ)繪圖功能,結(jié)合實例形式分析了Python基于matplotlib實現(xiàn)正弦、余弦圖形及多軸圖的相關(guān)繪制操作技巧,需要的朋友可以參考下2018-07-07
python xlsxwriter創(chuàng)建excel圖表的方法
這篇文章主要為大家詳細(xì)介紹了python xlsxwriter創(chuàng)建excel圖表的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
Pytorch加載數(shù)據(jù)集的方式總結(jié)及補充
Pytorch自定義數(shù)據(jù)集方法,應(yīng)該是用pytorch做算法的最基本的東西,下面這篇文章主要給大家介紹了關(guān)于Pytorch加載數(shù)據(jù)集的方式總結(jié)及補充,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-11-11
es+flask搜索小項目實現(xiàn)分頁+高亮的示例代碼
本文主要介紹了es+flask搜索小項目實現(xiàn)分頁+高亮的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-01-01
使用?Python?將?Excel?數(shù)據(jù)批量導(dǎo)入到SQLite數(shù)據(jù)庫中
本文介紹了一種使用Python實現(xiàn)Excel文件導(dǎo)入SQLite數(shù)據(jù)庫的方法,無環(huán)境依賴,支持多工作表自動識別、動態(tài)創(chuàng)建表結(jié)構(gòu)和安全的數(shù)據(jù)插入,核心步驟包括加載Excel文件、連接數(shù)據(jù)庫、遍歷工作表、讀取表頭動態(tài)建表和逐行數(shù)據(jù)插入2026-04-04

