我用 iPad 扫描了一些文件,想把它保存在印象笔记,但文件体积有点大,同步时间可能有点久。有很多在线压缩 PDF 文件的网站,不过需要把文件上传到他们的服务器,再从他们的服务器下载下来,效率有点低。
我需要一种本地压缩 PDF 文件的方法。我用 Mac,苹果官网介绍了如何使用预览应用压缩 PDF,但压缩后太模糊,完全不能用。以下是更好用的方法。
updating homebrew...
,control + C 一次,再稍等;cd
进入 shrinkpdf.sh 所在的路径,然后使用 sh shrinkpdf.sh input.pdf output.pdf 144
这样的命令压缩 pdf 文件;其中的 input.pdf 是需要压缩的 pdf 文件,output.pdf 是最后生成的文件,通过 144 设置目标文件的 DPI,144 是比较理想的值,数值越小体积越小,当然也越模糊。
2023-03-25 补充:我问了 ChatGPT 什么是 Ghostscript,以及它有什么用:
Ghostscript 是一种用于 PostScript 语言和 PDF 文件格式的免费开源解释器。它用于将 PostScript 和 PDF 文件转换为其他格式,例如光栅图像(JPEG,PNG 等)或其他矢量格式(SVG,DXF 等)。Ghostscript 通常用作需要处理 PostScript 或 PDF 文件的其他程序的后端,例如打印机,PDF 查看器和图像编辑器。
Ghostscript 可以从命令行或其他程序的库中使用。它适用于 Windows,macOS 和 Linux,并在 GNU Affero 通用公共许可证下获得许可。Ghostscript 是处理 PostScript 和 PDF 文件的强大工具,并广泛用于印刷和出版行业。
imagemagick 有很多功能,可以把 pdf 文件转换成图片,或者反过来把多个图片合并成一个 pdf,等等。当涉及 pdf 操作时,似乎都需要 Ghostscript 的支持,所以首先在电脑安装 Ghostscript 和 imagemagick,用 brew 安装即可。
imagemagick 压缩 pdf 的思路如下:
convert -density 144 file.pdf image.jpg
convert -sampling-factor 4:2:0 -strip -quality 60 -interlace JPEG -colorspace RGB image*.jpg output.jpg
convert output*.jpg -quality 60 output.pdf
关于压缩图片所使用的 -sampling-factor 4:2:0 -strip -quality 60 -interlace JPEG -colorspace RGB
,可参考stackoverflow的一个问答。
使用 imagemagick 压缩 pdf 有一个大缺点。如果这个 pdf 是扫描件,这样压缩效果很好,但是如果 pdf 的内容是矢量内容,例如 word 文档转换过来的等等,这样反而会增加生成的 pdf 文件的体积。因为 imagemagick 把矢量内容栅格化了,页面都变成了图片,而 shrinkpdf.sh 不存在这个问题。
Hacker News 有一个帖子分享了多种把 PDF 转换成看起来是用扫描仪扫描出来的样子的方法,例如:
convert -density 150 ORIGINAL.pdf -colorspace gray +noise Gaussian -rotate 0.5 -depth 2 SCANNED.pdf
lookscanned 是国内开发者做的在浏览器本地处理 PDF 使之看上起被打印的网站。
相关文章: