Linux PDF版本转换器

Linux PDF版本转换器

我想使用命令行实用程序将 PDF 从版本 1.5 转换为 1.4。

有沒有可用的?

答案1

Ubuntu 论坛

 # gs -sDEVICE=pdfwrite -dCompatibilityLevel=<VERSION> -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=output.pdf input.pdf

刚刚测试过并且运行良好,我现在将发布一些输出。

[14:08:41]lee@barlow:~/superuser # pdfinfo org_1-4.pdf 
Title:          CV 2009
Producer:       Prince 7.0 alpha 16 (www.princexml.com)
Tagged:         no
Pages:          3
Encrypted:      no
Page size:      595 x 842 pts (A4)
File size:      51793 bytes
Optimized:      no
PDF version:    1.4
[14:08:59]lee@barlow:~/superuser # gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.5 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=out_1.5.pdf org_1-4.pdf
[14:09:35]lee@barlow:~/superuser # pdfinfo out_1.5.pdf 
Producer:       GPL Ghostscript 8.64
CreationDate:   Wed Aug 19 14:09:34 2009
ModDate:        Wed Aug 19 14:09:34 2009
Tagged:         no
Pages:          3
Encrypted:      no
Page size:      595 x 842 pts (A4)
File size:      60658 bytes
Optimized:      no
PDF version:    1.5

答案2

查找 ghostscript 选项,而不是盲目地从其他人那里复制命令(等等),这是值得花时间的。例如-dPDFSETTINGS=/screen得票最多的答案(以及许多其他)会降低您的 pdf 质量。

来自ghostscript 手册

-dPDFSETTINGS=configuration预设“蒸馏器参数”[...] 使用任何这些预设都将涉及更改输入,因此可能导致 PDF 质量(与输入相比)比仅使用默认值更差。通过完全不设置此参数(或使用 /default)可获得“最佳”质量(其中最佳意味着最接近原始输入)。

此外,有用的选项如下,-dNOPAUSE-o选项

要将任何 PDF 转换为 1.4 版本,请使用

gs -q -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -o out.pdf in.pdf

仅用于-q使命令静音。如果您想看到警告(例如缺少字体)等,可以将其省略。

注意:即使没有,Ghostscript 也不会通知您不存在/不支持的版本-q。例如,如果您指定-dCompatibilityLevel=1.9(没有 pdf 1.9),您会得到一个 pdf 2.0,但 ghostscript 不会告诉您。我找不到 支持的版本的完整列表-dCompatibilityLevel=。1.0 似乎不受支持。1.1 - 1.7 可以工作。2.0 也可以工作,但创建的 pdf 不符合标准(尽管它们在 evince 中显示得很好)。

您可以使用 查看书面版本grep -oa '%PDF-...' out.pdf
此外,我发现只能使用 创建 PDF/A -dPDFA。遗憾的是,所有这些选项似乎都没有很好的记录或根本没有记录。

相关内容