本帖最后由 制冷设备 于 2021-2-19 13:20 编辑
先还是感谢之前大佬BOOK118下载的两本电子书~
仅针对本帖样本PDF,写了PY程序,仅使用fitz包,实际效果有点瑕疵但可实用
之前也研究过删除pdf中Xobject图片水印,帖子https://www.52pojie.cn/thread-1285821-1-1.html
同样思路是分析样本水印,均为Xobject,大小正好都是100X100
根据这个条件筛选得到水印Xref行数,然后逐一删除
最终输出样本_neo.pdf,打开提示出错,应该是已用数据源行被删除了,无法已用导致报错,但对实际阅读无影响
如果想不报错,目前有个想法,晚点再试一下
代码如下
[Python] 纯文本查看 复制代码 import fitz #pip install pymupdf
path = r'样本.pdf' #目标pdf
pdfname = path.split(".")[0]
pdf = fitz.open(path)
marklist= []
# 逐页读取页面
for page_index in range(len(pdf)):
page = pdf[page_index]
for p in page.getImageList():
if p[2]==100 and p[3]==100: # 根据水印大小筛选出水印图片的xref位置并加入数组
marklist.append(p[0])
marklist=list(set(marklist))
# 根据数组逐项删除xref
for i in marklist:
pdf._deleteObject(i)
# 保存
pdf.save(f"{pdfname}_neo.pdf") |