亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python清除PDF文件中水印的項目實踐

 更新時間:2025年05月15日 10:05:40   作者:JackieZhengChina  
本文主要介紹了python清除PDF文件中水印的項目實踐,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

學(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ù)解讀

    這篇文章主要介紹了Python爬蟲requests模塊之URL地址中的參數(shù)解讀,在你拿到數(shù)據(jù)所在的url地址之后,發(fā)送網(wǎng)絡(luò)請求時,請求的url中包含兩種地址參數(shù):查詢參數(shù)和請求參數(shù),需要的朋友可以參考下
    2023-08-08
  • python調(diào)用自定義函數(shù)的實例操作

    python調(diào)用自定義函數(shù)的實例操作

    在本文里我們給大家整理了關(guān)于python調(diào)用自定義函數(shù)的實例操作相關(guān)內(nèi)容,有此需要的朋友們可以學(xué)習(xí)參考下。
    2019-06-06
  • Python中文分詞庫jieba(結(jié)巴分詞)詳細(xì)使用介紹

    Python中文分詞庫jieba(結(jié)巴分詞)詳細(xì)使用介紹

    這篇文章主要介紹了Python中文分詞庫jieba(結(jié)巴分詞)提取詞,加載詞,修改詞頻,定義詞庫詳細(xì)使用介紹,需要的朋友可以參考下
    2022-04-04
  • python中的hashlib和base64加密模塊使用實例

    python中的hashlib和base64加密模塊使用實例

    這篇文章主要介紹了python中的hashlib和base64加密模塊使用實例,hashlib模塊支持的加密算法有md5 sha1 sha224 sha256 sha384 sha512,需要的朋友可以參考下
    2014-09-09
  • python中remove函數(shù)的踩坑記錄

    python中remove函數(shù)的踩坑記錄

    這篇文章主要給大家介紹了關(guān)于python中remove函數(shù)的踩坑記錄,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 對python的unittest架構(gòu)公共參數(shù)token提取方法詳解

    對python的unittest架構(gòu)公共參數(shù)token提取方法詳解

    今天小編就為大家分享一篇對python的unittest架構(gòu)公共參數(shù)token提取方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Pycharm如何運行.py文件的方法步驟

    Pycharm如何運行.py文件的方法步驟

    這篇文章主要介紹了Pycharm如何運行.py文件的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Tensorflow2.4從頭訓(xùn)練Word?Embedding實現(xiàn)文本分類

    Tensorflow2.4從頭訓(xùn)練Word?Embedding實現(xiàn)文本分類

    這篇文章主要為大家介紹了Tensorflow2.4從頭訓(xùn)練Word?Embedding實現(xiàn)文本分類,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Python ConfigParser模塊的使用示例

    Python ConfigParser模塊的使用示例

    這篇文章主要介紹了Python ConfigParser模塊的使用示例,幫助大家更好的理解和學(xué)習(xí)Python ConfigParser模塊的用法,感興趣的朋友可以了解下
    2020-10-10
  • Python編程中歸并排序算法的實現(xiàn)步驟詳解

    Python編程中歸并排序算法的實現(xiàn)步驟詳解

    這篇文章主要介紹了Python編程中歸并排序算法的實現(xiàn)步驟詳解,歸并排序的平均時間復(fù)雜度為(n\log n),需要的朋友可以參考下
    2016-05-05

最新評論