我正在 Ubuntu 中寻找一种方法来减小 pdf 的大小(通过降低图像的质量)。
我知道这可以通过在终端中键入以下命令在 Ghostscript 中完成:
gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Run Code Online (Sandbox Code Playgroud)
问题是我无法准确地指定质量。参数-dPDFSETTINGS=/screen
是决定质量的参数;但替代方案是非常严格的(例如,可以-dPDFSETTINGS=/ebook
为稍微好一点的质量做)。
我正在寻找一种方法来减小 pdf 的大小,使我能够以数字方式指定所需的质量。
我有一个大约 20MB 的扫描文档的 PDF,我需要大幅减小文件大小才能通过电子邮件发送它。我试过了
gs -sDevice=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf
Run Code Online (Sandbox Code Playgroud)
但output.pdf
没有创建。相反,我简要地获得了 Ghostscript 的 X 查看器。我哪里错了?
我看到 LibreOffice Draw 应该能够打开一个 pdf 并使用更改质量和 DPI 分辨率的选项将其导出。但是我拥有的高分辨率扫描 pdf 在这个应用程序中没有正确打开(只导入第一页)所以我想找到一个更专业的应用程序。
此时我并没有要求命令行选项(我的 pdf 文件太大了,我以这种方式尝试的所有方法都失败了)。
我有一个我广泛使用的小众 Java 应用程序(因为它是 Java,因此基本上是跨平台的,因为它可以满足我的需求),它的工作是生成带有文本的打印页面。
但是,我需要以电子方式分发这些打印的页面,因此我安装了该printer-driver-cups-pdf
软件包,它为我提供了一个 PDF 打印机,因此我可以将 PDF 分发给我的团队成员。
然而,这些“打印的”PDF 是巨大的。一个 2 页的 PDF 很容易达到 800kb,而三页则超过 1MB。这是一个问题,因为我无法轻松地将其中 10 个文档快速通过电子邮件发送给某人。
在 LibreOffice 中导出具有大致相同文本量的页面会导致 PDF 文件至少小 10 倍。
有没有人有什么建议?
我不能使用图像压缩,因为这些页面只包含矢量。
顺便说一句,我使用的是 Ubuntu 15.10。
提前致谢!
编辑:我已经尝试过各种-dPDFSETTINGS=/
设置的Ghostscript 。但是,这不起作用,因为它仅适用于光栅图像。我也尝试过在 SVG、PS 和 EPS 之间转换。我仍然坚持使用巨大的矢量 PDF 文件。
如何将纸质文档的照片转换为扫描文档?是相关的,但不一样,因为我在谈论 pdf 文件。在链接问题下的答案中,图像处理似乎很复杂,尤其是因为它涉及单独处理每个图像:鉴于我的 pdf 有数百页,我期望的解决方案不是处理/编辑图像,而只是扫描数码照片并以真实的方式记录。我的意思是像“虚拟扫描仪”这样的东西,它的输入是基于照片的 pdf 或照片集,输出是“普通”扫描文档。(还有推荐的Scantailor工具 - 也在这里- 现在似乎缺少 Linux 版本。)
这是不是对OCR和不有关转换图像文本。
为了澄清我的意思,我将发布一些示例。
有基于 text而非图像的pdf 文件,它们是导出为 pdf 的文本文件(让我们使用 docx 或 odt)。它们看起来可以打印了:
以上不是我在这里讨论的。
我感兴趣的是下面图像中的pdf,即看起来太像图像的扫描文本页面和看起来像数字化文本的扫描文本页面之间的区别。
第一个是由看起来像书页照片的图像组成的:
或者
这样的副本很难在纸上重新打印,因为背景也会被打印出来。
第二个是人们对扫描文本的期望,可以打印:
或者
图片般的 pdf 可能已经经过 OCR 处理并且其文本可搜索,并且看起来仍然像(页面)照片的集合:OCR 不是这里的问题。
我想要的是“扫描”pdf 的清晰黑白外观,并删除照片中正常但应在打印页面中不存在的所有“真实”细节(尤其是阴影)。
正如@vanadium 在评论中注意到的那样,我正在寻找一种可以自动清理文档图片的软件解决方案,就像智能手机上的 Google Scan 一样。
正如@user535733 在评论中所说,这里的问题至少在某种程度上似乎是将灰度(扫描/图像)文本转换为 black-and-white 的问题。