去掉 PDF 右下角
那个甩不掉的角标

NotebookLM 导出的 PDF,每一页右下角都盖着一个固定角标。这个工具把它抹掉, 其余像素一个不动。

这不是一个在线服务。你下载它,装在自己电脑上,PDF 从头到尾没离开过你的硬盘 —— 程序只监听本机地址,压根没有上传这个动作。这一页只是说明书。

它处理的是哪种水印

整页是一张图、角标烙在像素里的那种。

处理前
处理后

上图是示意,不是实际截图。

如果角标是可选中的文字,那它是一个独立的文本对象,用 PDF 编辑器直接删掉就行, 比涂像素干净得多。所以这个工具遇到有文字层的页会主动跳过,不去趟那趟浑水。

它怎么知道哪块是水印

不靠内置模板图,所以换字体、换版本、换成别家的角标,一样认得出来。

水印的定义就是「内容在变,它不变」的那部分像素。所以做法是把若干页的右下角叠起来求交集 —— 在几乎每一页的同一个坐标都长得一样的,才算数。

两路投票,先找深色的,找不到再找浅的:

要是找出来的区域超过整页的 0.5%,或者形状不像一行角标(太小、长宽比不对), 一律判为认错了,直接中止不处理。宁可交还给你一个没动过的文件,也不乱涂一气。

不会把你的文件搞坏

怎么用

需要电脑上有 Python 3.10 或更新的版本。

  1. 下载代码

    有 git 就用这条;没有的话,去 GitHub 页面点 Code → Download ZIP 也一样。

    git clone https://github.com/avatartulkun/unmark.git
    cd unmark
  2. 装依赖(只需一次)

    python3 -m pip install -r requirements.txt
  3. 启动

    Mac 上双击 启动去水印网页.command 就行,浏览器会自己打开。 也可以用命令行:

    python3 server.py

    然后把 PDF 拖进页面,等进度跑完,看「处理前 / 处理后」的放大对比,确认没问题再下载。

也可以当成 Python 库直接调用:

from unwatermark import clean_pdf

result = clean_pdf("输入.pdf", "输出.pdf")
print(result.success, result.message)

先说在前面的几件事

情况 说明
输出文件更大 例如 15.9 MB 变成 19.3 MB。因为中间图用 PNG 无损重编码,而原件是 JPEG。 要的是像素不失真,代价就是体积。
有文字层的页会跳过 那种水印多半是能直接删除的文本对象,不该用涂像素的办法处理。
一次只能处理一个文件 暂时还不支持批量导入。
认不出来就不动手 检测不到、或者检测结果不合理,程序会明确告诉你「未处理」,而不是硬涂一块。