爱意满满的作品展示区。
Sy007

做了一个不上传文件的 PDF 工具,合并压缩全在浏览器里跑

  •  
  •   Sy007 · 4 days ago · 693 views
    去年帮朋友处理一份租房合同,需要把三份扫描件合成一个 PDF 。随手搜了个在线工具,
    传上去、合并、下载,很顺。但传完那一刻我盯着进度条想了一下:这是一份带身份证号和
    签字的合同,我刚刚把它完整交给了某个不知道在哪儿的服务器,而对方的隐私政策写着
    「文件将在 2 小时后自动删除」。

    这句话无法验证。删没删、有没有留副本、会不会进训练集,全靠对方自觉。

    后来发现这类需求其实很固定,绕来绕去就是五件事:合并、拆分、压缩、PDF 转图片、
    图片转 PDF 。而这五件事在技术上**根本不需要服务器**——pdf-lib 负责写 PDF ,pdf.js
    负责渲染,浏览器里就能做完。

    于是做了 pdf.iceai.cloud 。核心就一条:以上五件事全程在本地跑,文件不上传。

    **怎么验证它不是嘴上说说**

    不用信我。打开页面等加载完,然后**把 WiFi 关掉**,再点合并。能出结果就是本地跑的,
    这条没法作弊。

    这个自证方式比任何说明文字都有用,所以我在首页直接写了「断网也能用」。

    **哪些必须走服务端**

    PDF 和 Word 互转。这个真的做不到纯前端——Word 的版式引擎、分页、字体嵌入,
    浏览器里没有能对齐 Word 输出的实现,硬做出来会是「能转,但排版全废」。
    所以这部分是老老实实上传,处理完立刻删文件,不留副本。

    我宁愿在页面上把这件事说清楚,也不想假装全站都是纯本地。用户被骗一次就不会再来。

    **几个实现上的坑,写下来给同样想做的人**

    **压缩压不动的真相**:很多人抱怨「压缩没效果」,十次有八次是文件类型不对。
    扫描件本质是一堆 JPEG ,降分辨率重编码,压掉 60%–85% 很正常; Word 导出的文字 PDF
    体积全在嵌入字体里,里面根本没几张图,怎么调都只有个位数百分比。
    这时候正确解法是拆分,不是加大压缩力度。首页把这条写成了提示,省了不少解释。

    **大文件的内存**:纯前端处理意味着文件整个进内存。几百兆的扫描件在低配机器上会崩。
    所以做了大小提示和分块读取,而不是假装没有上限。

    **字体嵌入**:中文 PDF 合并时如果字体没正确保留,结果是页面空白。
    pdf-lib 默认不处理这个,得手动把 font 数据带去新文档。

    **现在是什么状态**

    免费,不用注册,无广告,不给文件加水印(有些站导出时会盖一个,挺膈应人的)。

    另外写了三十来篇长尾场景的说明,比如「扫描件怎么压到 1MB 以内」
    「为什么你的 PDF 拆分后打不开」,主站 https://pdf.iceai.cloud ,另外三十来篇长尾场景写法在 /guides 里。

    服务器在香港,速度还行,但大陆偶尔会慢一点,遇到慢的刷新一次。

    有 bug 或者想要的功能可以直接回帖说,我基本每天都会看。
    1 replies  •  2026-11-05 17:20:50 +08:00
    tars13344
    tars13344
    4 days ago
    1
    vibe 之前都不调查一下竞品的么 pdf24 了解一下
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1441 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 00:01 · PVG 08:01 · LAX 16:01 · JFK 19:01
    ♥ Do have faith in what you're doing.