python清除PDF文件中水印的項目實踐
學(xué)校老師發(fā)的資料,有時候會帶水印,有點強(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文件中水印的項目實踐的文章就介紹到這了,更多相關(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-08Python中文分詞庫jieba(結(jié)巴分詞)詳細(xì)使用介紹
這篇文章主要介紹了Python中文分詞庫jieba(結(jié)巴分詞)提取詞,加載詞,修改詞頻,定義詞庫詳細(xì)使用介紹,需要的朋友可以參考下2022-04-04python中的hashlib和base64加密模塊使用實例
這篇文章主要介紹了python中的hashlib和base64加密模塊使用實例,hashlib模塊支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512,需要的朋友可以參考下2014-09-09對python的unittest架構(gòu)公共參數(shù)token提取方法詳解
今天小編就為大家分享一篇對python的unittest架構(gòu)公共參數(shù)token提取方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Tensorflow2.4從頭訓(xùn)練Word?Embedding實現(xiàn)文本分類
這篇文章主要為大家介紹了Tensorflow2.4從頭訓(xùn)練Word?Embedding實現(xiàn)文本分類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01