Lookscanned:NAS 上把电子 PDF 变成扫描件,不用打印再扫
作者
小编
发布时间

项目介绍
Lookscanned 是一个纯前端的网站,专门干一件事:把电子版 PDF 变成看起来像扫描件的样子。很多时候材料要打印、要提交,一份规规矩矩的电子文档反而显得「太新」;过一遍扫描效果,纸感、轻微倾斜、颗粒噪点都有,拿在手里更像真的纸质文件。
用法很简单:选一个 PDF,左边调参数——颜色可以选彩色或黑白,旋转角度和随机度决定每一页歪多少,模糊、噪点、分辨率决定颗粒粗细,右边并排两张预览,一张是原页,一张是加过效果的样子,所见即所得。满意了点保存,直接下载一份扫描版 PDF,原来的文件一点没变。
它最大的特点是全程在浏览器里用 WebAssembly 处理,文件不会上传到任何服务器,也就不存在「上传到别人家」的隐私顾虑。这一点对合同、证件这类敏感材料尤其重要。
这个网站的灵感来自开源项目 scanyourpdf,想要更细的控制可以去看它的实现。
部署安装
只要能跑 Docker 的 NAS 都能装,下面用飞牛 NAS 演示:先用 帕斯内网穿透 拿到一个公网地址,再把 Lookscanned 用 Docker Compose 装起来,以后在外面用手机也能随手把文件转成扫描件。
一、先用帕斯内网穿透拿到公网地址
飞牛的「应用中心」里搜 PassNAT,装上这个穿透插件,打开它,点「创建隧道」。隧道名字随便起(不超过 12 个字符),接入节点和传输协议留默认,本地 IP 留默认的 127.0.0.1,本地端口填 8080(就是下面编排里冒号左边那个端口)。
建好之后点开这条隧道,按一下电源,状态变成运行中,详情里就能看到分配好的公网地址(形如 IP:端口),先记下来。
不是飞牛的系统,PassNAT 文档的「连接使用」里有其他系统的连接教程:点我跳转。
二、新建 Compose 项目
打开飞牛的「Docker」应用,切到「Compose」标签,点右上角的新增项目。项目名称填 lookscanned,路径在「我的文件」下面挑一个空文件夹,没有就当场新建一个。来源选「创建 docker-compose.yml」,把下面这段整个贴进去:
1services:2 lookscanned:3 image: wbsu2003/lookscanned:latest4 container_name: lookscanned5 ports:6 - "8080:80"7 restart: unless-stopped
这段编排很短,只有三件事:用官方镜像 wbsu2003/lookscanned,映射端口 8080 到容器里的 80,设置重启策略。整段不用改任何东西;端口 8080 被占用的话,把冒号左边的数字换一个,隧道里的本地端口也跟着改。勾上「创建项目后立即启动」,镜像下完就起来了。
它是纯静态的前端页面,没有数据库、没有账号、不存任何东西,所以不需要挂卷,备份也省了——你的文件始终只在你自己浏览器里处理。
三、用起来
用公网地址打开,就是那个干净的落地页。点「开始扫描」,选一个 PDF 文件。
调参数。 左边把颜色切成黑白(扫描件一般是黑白的),旋转角度和随机度往上拉一点,让每页有一点自然的歪;模糊和噪点往上拉一点,出颗粒感;分辨率往低调,颗粒更粗、更像老扫描仪。右边实时并排:一张原页,一张扫描效果页。
保存。 满意了点「保存」,浏览器直接下载一份扫描版 PDF,页面弹「处理完成」。原来的 PDF 一点没动,两份文件都在。
几点说明
隐私。 全程在浏览器里用 WebAssembly 处理,文件不上传服务器。这一点是它相比在线转换站最大的不同:你的合同、证件、内部材料不会经过任何人的服务器。
平台中立。 只要能跑 Docker 的 NAS 都能装,飞牛只是演示;其他系统装 Docker 再跑同样的编排即可。
公网访问。 内网穿透给的是 http 地址,Lookscanned 本身不需要 HTTPS 也能用。虽然文件不离开浏览器,公网地址也别到处发,用完可以在插件里把隧道关掉。
开源。 Lookscanned 是一个开源的纯前端工具,思路来自开源项目 scanyourpdf,想要更细的控制可以自己改参数甚至改源码。