<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
為什麼做出這個?
就是有時候從網上下載的資料中的pdf有水印,看著不舒服。
比如說我從網上下載的試卷,然後去列印店列印,列印之後水印看著很不舒服,而去水印wps要會員,而我是一個程式設計師,為什麼不做一個呢,何樂而不為。
雖然最後是做出來的,但是還是有限制。
把pdf轉化為圖片,然後將圖片去水印。
圖片去水印,是又條件限制的,必須水印的顏色和pdf中文字的顏色的rgb相差很大,然後把水印的顏色改變成背景顏色。
網上很多和我類似的原理去水印,但是都是先pdf轉化為圖片存起來,然後圖片去水印之後,然後把圖片拼接成pdf。
而我就不需要中間步驟,我是直接輸入pdf檔案,輸出pdf檔案。
Image
pip install pillow
fitz
pip install PyMuPDF
程式處理pdf需要的時間比較久(因為處理的是畫素點),可以先用頁數少的pdf進行測試之後再去頁數比較多的pdf。
from PIL import Image import os import io import fitz import time def single_pdf_clearwater(pdf_path: str): pdf = fitz.open(pdf_path) # 開啟pdf目錄 pdf_img = fitz.open() # 開啟空檔案,用來存圖片pdf for page_inf in pdf: definition = 3 # 清晰度,感覺輸出的pdf不夠清晰,可以調大,調大,檔案大小也會變大 matrix = fitz.Matrix(definition, definition) img = page_inf.get_pixmap(matrix=matrix).tobytes() img = Image.open(io.BytesIO(img)) width, height = img.size for i in range(width): for j in range(height): if sum(img.getpixel((i, j))) > 600: # 這裡的600你需要根據自己的水印的顏色進行更改。 img.putpixel((i, j), (255, 255, 255)) img = img.tobytes() # = img = np.asarray(img);img = bytearray(img) img = fitz.Pixmap(fitz.csRGB, width, height, img) img = img.tobytes() img = fitz.open("png", img) pdf_bytes = img.convert_to_pdf() pdf_img.insert_pdf(fitz.open("pdf", pdf_bytes)) if not os.path.exists("output"): os.makedirs("output") # 處理好的pdf存入了output目錄下 pdf_img.save("output/去水印pdf_" + os.path.basename(pdf_path)) def group_pdf_clearwater(path_array: list[str]): print("************去水印時間比較久***********") for pdf_path in path_array: print(pdf_path, "去水印中...") single_pdf_clearwater(pdf_path) print("完成") def folder_pdf_files(folder: str) -> list[str]: # 一個資料夾裡面有多少pdf檔案 file_list = [] for a, b, c in os.walk(folder): if b == []: for filename in c: if filename[-3:].lower() == 'pdf': file_path = os.path.join(a, filename) file_list.append(file_path) print(folder, ": 有", len(file_list), "個pdf檔案") return file_list if __name__ == '__main__': time_start = time.time() path_list = folder_pdf_files("pdf的目錄") group_pdf_clearwater(path_list) time_end = time.time() print("程式執行時間:", round(time_end - time_start, 2), "秒")
雖然最後實現了,但是有限制。
為了去除儲存圖片後取圖片的中間步驟,我查閱了很多的文獻和資料,後面發現只有我最不想看的英文檔案才找到了問題的答案。我就感覺,比較偏的點,只有英文文獻才有。
因為限制,我在想是不是可以和python-普通pdf的新增水印的逆向思維進行操作,就是把水印圖層直接取出來。
如果處理的pdf檔案比較多,並且頁數很多,程式執行就要很久,我都感覺像深度學習了。
到此這篇關於Python實現為PDF去除水印的範例程式碼的文章就介紹到這了,更多相關Python PDF去水印內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45