python清除PDF文件中水印的項(xiàng)目實(shí)踐
學(xué)校老師發(fā)的資料,有時候會帶水印,有點(diǎn)強(qiáng)迫癥的都想給它去掉。用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文件中水印的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)python清除PDF水印內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python爬蟲requests模塊之URL地址中的參數(shù)解讀
這篇文章主要介紹了Python爬蟲requests模塊之URL地址中的參數(shù)解讀,在你拿到數(shù)據(jù)所在的url地址之后,發(fā)送網(wǎng)絡(luò)請求時,請求的url中包含兩種地址參數(shù):查詢參數(shù)和請求參數(shù),需要的朋友可以參考下2023-08-08
python調(diào)用自定義函數(shù)的實(shí)例操作
在本文里我們給大家整理了關(guān)于python調(diào)用自定義函數(shù)的實(shí)例操作相關(guān)內(nèi)容,有此需要的朋友們可以學(xué)習(xí)參考下。2019-06-06
Python中文分詞庫jieba(結(jié)巴分詞)詳細(xì)使用介紹
這篇文章主要介紹了Python中文分詞庫jieba(結(jié)巴分詞)提取詞,加載詞,修改詞頻,定義詞庫詳細(xì)使用介紹,需要的朋友可以參考下2022-04-04
python中的hashlib和base64加密模塊使用實(shí)例
這篇文章主要介紹了python中的hashlib和base64加密模塊使用實(shí)例,hashlib模塊支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512,需要的朋友可以參考下2014-09-09
對python的unittest架構(gòu)公共參數(shù)token提取方法詳解
今天小編就為大家分享一篇對python的unittest架構(gòu)公共參數(shù)token提取方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類
這篇文章主要為大家介紹了Tensorflow2.4從頭訓(xùn)練Word?Embedding實(shí)現(xiàn)文本分類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
Python編程中歸并排序算法的實(shí)現(xiàn)步驟詳解
這篇文章主要介紹了Python編程中歸并排序算法的實(shí)現(xiàn)步驟詳解,歸并排序的平均時間復(fù)雜度為(n\log n),需要的朋友可以參考下2016-05-05

