├── .github
└── ISSUE_TEMPLATE.md
├── README.md
├── logo.icns
├── main.py
├── num.png
├── pdf_none.ui
├── totle.png
└── vi.png
/.github/ISSUE_TEMPLATE.md:
--------------------------------------------------------------------------------
1 | 系统版本:例如 macos Monterey12.13
2 |
3 | Release版本:例如 v1.1.3
4 |
5 | 问题描述:尽量简洁明了 例如 应用闪退
6 |
7 | 步骤复现:如何操作导致的问题出现,第一步xxx,第二步xxx
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | #
NO-PDF-WM
2 |
3 |
4 |
5 |

6 |

7 |

8 |
9 |

10 |

11 |
12 |
13 |
14 | ## 提示!!
15 |
16 | 目前仅支持MAC OS。
17 |
18 | WIN以及ANDROID正在开发中。喜欢的可以点一个🌟。
19 |
20 | ## 简介
21 | 用途 删除PDF上的水印!!!
22 | 最新版本:V1.1.4
23 |
24 | 目前经过测试的平台为:MAC OS MONTEREY 12.3.1
25 |
26 | python版本为:3.8.5
27 |
28 | ## 使用教程
29 | ### 1.界面总览
30 | 
31 | ### 2.水印颜色设置
32 | 输入水印颜色的R、G、B数值的总和。
33 | 
34 | ### 3.清晰度设置
35 | 越大的清晰度耗时越长,但画质清晰。
36 | 例如选择的值为1,清晰度可能低于原PDF,建议测试合适的值再批量处理。
37 | 
38 |
39 | ## 更新记录
40 | Rlease:V1.1.0 BETA🐱
41 |
42 | 增加功能:设置RGB颜色,设置清晰度
43 |
44 | 更新时间:2022.8.23 10:35 BEIJING
45 |
46 |
47 | Rlease:V1.1.3🐱
48 |
49 | 增加功能:应用图标,帮助跳转github🥝
50 |
51 | 更新时间:2022.8.26 20:32 BEIJING
52 |
53 |
54 | Rlease:V1.1.4🐱
55 |
56 | 增加功能:修改应用图标,增加同时修改多种水印
57 |
58 | 更新时间:2022.10.11 21:03 BEIJING
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/logo.icns:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TAber-W/NO-PDF-WM/6a8cf7d9c155d5cbf2d1021af7bbab30701d6bd1/logo.icns
--------------------------------------------------------------------------------
/main.py:
--------------------------------------------------------------------------------
1 |
2 | import sys
3 | import os
4 | from PyQt5.QtCore import QThread,pyqtSignal
5 | from PyQt5 import QtCore,QtGui,QtWidgets,uic,Qt
6 | from PyQt5.QtWidgets import QApplication,QFileDialog,QInputDialog,QDialog,QMessageBox
7 | from PIL import Image
8 | from itertools import product
9 | import webbrowser
10 | import fitz
11 | import os
12 |
13 |
14 | #import py
15 | #from regex import W
16 |
17 | sec=0
18 | page_no = 0
19 | col = 0
20 | val = 0
21 | t = []
22 | filename = ""
23 | disname = ""
24 | class WorkThread(QThread):
25 | timer = pyqtSignal()
26 | end = pyqtSignal()
27 | def run(self):
28 | #打开源pfd文件
29 | pdf_file = fitz.open(filename[0])
30 |
31 |
32 | #page_no 设置为0
33 | global page_no
34 | #page在pdf文件中遍历
35 | for page in pdf_file:
36 | #self.sleep(1)
37 | self.timer.emit()
38 |
39 | #print(filename[0])
40 | trans = fitz.Matrix(int(col),int(col)).prerotate(0)
41 | #获取每一页对应的图片pix (pix对象类似于我们上面看到的img对象,可以读取、修改它的 RGB)
42 | #page.get_pixmap() 这个操作是不可逆的,即能够实现从 PDF 到图片的转换,但修改图片 RGB 后无法应用到 PDF 上,只能输出为图片
43 | pix = page.get_pixmap(matrix=trans, alpha=False)
44 |
45 | #遍历图片中的宽和高,如果像素的rgb值总和大于510,就认为是水印,转换成255,255,255-->即白色
46 | for i in range (len(t)):
47 |
48 | for pos in product(range(pix.width), range(pix.height)):
49 | if sum(pix.pixel(pos[0], pos[1])) >= t[i]:
50 | pix.set_pixel(pos[0], pos[1], (255, 255, 255))
51 | #保存去掉水印的截图
52 | pix.pil_save( disname+f'/{page_no}.png', dpi=(267, 267))
53 | #打印结果
54 | #print(f'第 {page_no} 页去除完成')
55 |
56 | page_no += 1
57 |
58 | self.end.emit()
59 |
60 |
61 |
62 | class Stats:
63 | def __init__(self):
64 | self.ui = uic.loadUi("/Users/apple/Desktop/dad/pdf_none.ui")
65 | self.ui.setWindowTitle("PDF 去水印")
66 | self.ui.choosebutton.clicked.connect(self.xfile)
67 | self.ui.valuebutton.clicked.connect(self.xvalue)
68 | self.ui.colorbutton.clicked.connect(self.xcolor)
69 | self.ui.savebutton.clicked.connect(self.xsave)
70 |
71 |
72 |
73 | self.ui.workThread = WorkThread()
74 |
75 | self.ui.actionbangzhu.triggered.connect(self.go_github)
76 |
77 |
78 | self.ui.workThread.end.connect(self.end)
79 | self.ui.workThread.timer.connect(self.timer)
80 | self.ui.donebutton.clicked.connect(self.xwork)
81 | #self.ui.stopbutton.clicked.connect(self.xstop)
82 |
83 | def timer(self):
84 | self.ui.textEdit.append(f'第 {page_no} 页去除完成')
85 |
86 | def end(self):
87 | self.ui.textEdit.append(f'去除完成!!')
88 |
89 | def stop(self):
90 | self.ui.workThread.stop()
91 |
92 |
93 | def xwork(self):
94 | if(filename=="") :
95 | self.ui.textEdit.append('请选择文件!')
96 | elif int(col)==0:
97 | self.ui.textEdit.append('请选择清晰度!')
98 | elif disname == "":
99 | self.ui.textEdit.append('请选择保存位置!')
100 | else:
101 | self.ui.workThread.start()
102 |
103 | def xsave(self):
104 | global disname
105 | disname=QFileDialog.getExistingDirectory(self.ui,"xuanze","/")
106 | self.ui.saveline.setText(disname)
107 |
108 | def xvalue(self):
109 | global val,t
110 | val,ok = QInputDialog.getText(self.ui,"水印数值","请输入水印RGB总和",text="多个水印用;分割")
111 | t = val.split(";")
112 | t=list(map(int,t))
113 |
114 |
115 | def xfile(self):
116 | global filename
117 | filename= QFileDialog.getOpenFileName(self.ui,'dd',os.getcwd(),"All Files(*);Pdf Files(*.pdf)")
118 | self.ui.lineEdit.setText(filename[0])
119 |
120 | print(filename[0])
121 |
122 | def xcolor(self):
123 | items = ["1","2","5"]
124 | global col
125 | col,ok = QInputDialog.getItem(self.ui,"清晰度:会影响速度","请选择清晰度",items,0,True)
126 | if col != "1":
127 | self.ui.textEdit.append('清晰度较大,速度较慢,耐心等待')
128 |
129 | def go_github(self):
130 |
131 | url='https://github.com/TAber-W/NO-PDF-WM'
132 | webbrowser.open(url)
133 |
134 |
135 |
136 |
137 |
138 | if __name__ == "__main__":
139 | App = QApplication(sys.argv)
140 |
141 | stats = Stats()
142 | stats.ui.setWindowIcon(QtGui.QIcon("/Users/apple/Desktop/dad/1.ico"))
143 | stats.ui.show()
144 | sys.exit(App.exec_())
--------------------------------------------------------------------------------
/num.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TAber-W/NO-PDF-WM/6a8cf7d9c155d5cbf2d1021af7bbab30701d6bd1/num.png
--------------------------------------------------------------------------------
/pdf_none.ui:
--------------------------------------------------------------------------------
1 |
2 |
3 | MainWindow
4 |
5 |
6 |
7 | 0
8 | 0
9 | 451
10 | 365
11 |
12 |
13 |
14 | MainWindow
15 |
16 |
17 |
18 | -
19 |
20 |
-
21 |
22 |
23 | -
24 |
25 |
26 | 选择文件
27 |
28 |
29 |
30 |
31 |
32 | -
33 |
34 |
-
35 |
36 |
-
37 |
38 |
39 | 水印颜色
40 |
41 |
42 |
43 | -
44 |
45 |
46 | 清晰度
47 |
48 |
49 |
50 | -
51 |
52 |
53 | 保存目录
54 |
55 |
56 |
57 | -
58 |
59 |
60 | -
61 |
62 |
63 | 开始处理
64 |
65 |
66 |
67 | -
68 |
69 |
70 | 停止处理
71 |
72 |
73 |
74 |
75 |
76 | -
77 |
78 |
-
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
104 |
105 |
106 | 帮助
107 |
108 |
109 |
110 |
111 |
112 |
113 |
--------------------------------------------------------------------------------
/totle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TAber-W/NO-PDF-WM/6a8cf7d9c155d5cbf2d1021af7bbab30701d6bd1/totle.png
--------------------------------------------------------------------------------
/vi.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/TAber-W/NO-PDF-WM/6a8cf7d9c155d5cbf2d1021af7bbab30701d6bd1/vi.png
--------------------------------------------------------------------------------