技术技巧:使用 Ghostscript 转换和合并文件

作者:Kurt Pfeifle

Ghostscript 使您能够从命令行合并文件、转换文件等等。

使用 Ghostscript 将多个输入文件合并为一个组合的 PDF 文件很容易

 gs -sDEVICE=pdfwrite \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=combined.pdf \
    first.pdf \
    second.pdf \
    third.pdf [...]

您的输入文件甚至不需要是 PDF 文件。您也可以使用 PostScript 或 EPS 文件,或这三种文件的任意组合

 gs -sDEVICE=pdfwrite \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=combined.pdf \
    first.pdf \
    second.ps \
    third.eps [...]

combined.pdf 文件将包含命令行中给定的顺序的输入文件。如果您不希望组合文件是 PDF,而是 PostScript,您可能想使用这个

 gs -sDEVICE=pswrite \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=combined.ps \
    first.pdf \
    second.ps \
    third.eps [...]

如果您出于任何原因需要 PostScript 1 级输出,请添加一个语言级别参数

 gs -sDEVICE=pswrite \
    -dLanguageLevel=1 \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=combined.ps \
    first.pdf \
    second.ps \
    third.eps [...]

默认的 PostScript 语言输出级别是 2。也支持使用 "1.5",它是带有颜色扩展的语言级别 1。

您可以像这样将彩色输入文件转换为黑白或非彩色/灰色 PostScript

 gs -sDEVICE=psgray \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=combined.ps \
    first.pdf \
    second.ps \
    third.eps [...]

 gs -sDEVICE=psmono \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=combined.ps \
    first.pdf \
    second.ps \
    third.eps [...]

如果您出于某种原因需要一系列由来自各种输入文件的页面组成的单页 EPS 文件,请尝试这个

 gs -sDEVICE=epswrite \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=p%08d.eps \
    5page-first.pdf \
    7page-second.ps \
    1page-third.eps [...]

生成的文件将被很好地命名为 p00000001.eps .... p00000013.eps ...

但请注意,像最后 6 个命令那样将 PDF 转换回 PostScript(或 EPS)可能会损失原始质量的一部分或大部分。 例如,PostScript 不能直接处理透明度(它通过将它们转换为位图模式来伪造它们),并且将这样的 PostScript 文件转换回 PDF 将不会恢复原始的透明度特性。 此外,输入 PDF 的图形质量的某些其他方面可能会恶化。

所以一般来说,最好坚持使用 PDF,避免往返转换到 PostScript 并返回 PDF...

如果您需要来自输入文件所有页面的 TIFF 或 JPEG 文件,请尝试这个

 gs -sDEVICE=tiffg4 \
    -dNOPAUSE -dBATCH -dSAFER \
    -sOutputFile=p%08d.tif \
    -r600x600 \
    5page-first.pdf \
    7page-second.ps \
    1page-third.eps [...]

 gs -sDEVICE=jpeg \
    -dNOPAUSE -dBATCH -dSAFER \
    -r600x600 \
    -sOutputFile=p%08d.jpg \
    5page-first.pdf \
    7page-second.ps \
    1page-third.eps [...]

图形大师们,看看这个。要创建分色(CMYK),请使用

 gs -sDEVICE=tiffsep \
    -dNOPAUSE -dBATCH -dSAFER \
    -r600x600 \
    -sOutputFile=p%08d.tif \
    5page-first.pdf \
    7page-second.ps \
    1page-third.eps [...]

我们在最后几个示例中包含了一个额外的参数,以使输出分辨率为 600dpi,因为对于纯整页图像文件,我们不喜欢默认的 72dpi。 现在,您可能会感到惊讶:对于输入文件的每一页,您都会自动获得 5 个不同的文件

 p000000XX.tif
 p000000XX.Cyan.tif
 p000000XX.Magenta.tif
 p000000XX.Yellow.tif
 p000000XX.Black.tif

*.tif 文件将是最大的,因为它包含一个 32 位复合 CMYK 文件(tiff32nc 格式)。 四个 *.Colorname.tif 文件并非真正的彩色(正如人们可能从它们的名称中想到的那样),但实际上它们是 tiffgray 文件,用于为 4 色 CMYK 印刷中各自的分色创建胶印印版。 如果 Ghostscript 自动检测到输入文件中的所谓“专色”,这些将获得它们自己的分色文件,命名约定为 *.s1.tif、*.s2.tif 等。(最多支持 64 种不同的工艺和专色)。

加载 Disqus 评论