如何在不光栅化字体的情况下添加 TrimBox 和 BleedBox

How to add TrimBox and BleedBox without fonts being rasterized

我希望 Ghostscript 准备 PDF 用于印刷制作。输入的 PDF(版本 1.3)为 RGB,使用透明度并具有裁剪标记。

  1. 通过应用 ICC 配置文件将颜色转换为 CMYK
  2. 添加裁切框和出血框

我使用以下命令成功完成了上述步骤:

gs -o output.pdf -sDEVICE=pdfwrite -dPDFX  -r100 -dOverrideICC=true -sOutputICCProfile=ISOcoated_v2_300_eci.icc -sColorConversionStrategy=CMYK -dProcessColorModel=/DeviceCMYK -dRenderIntent=3 input.pdf -c "[ /PAGES pdfmark << /PDFXSetBleedBoxToMediaBox false /PDFXTrimBoxToMediaBoxOffset [29 29 29 29] /PDFXBleedBoxToTrimBoxOffset [8 8 8 8] >> setdistillerparams" -f 

但不幸的是,字体被栅格化了。 我发现是 -dPDFX 造成的。 但似乎需要 -dPDFX 来添加 TrimBox 和 BleedBox。如果没有 -dPDFX,字体保持不变,但不会添加方框。

我在 OSX,PDF 包含两种 Type 3 字体。
非常感谢任何帮助。

好的,几点:

Ghostscript(尤其是 pdfwrite 设备)不会向 PDF 文件添加任何内容。它根据提供的输入生成全新的 PDF 文件,该文件可能是也可能不是 PDF 文件。

描述了该过程 here,我建议您阅读它。从本质上讲,如果是 PDF 文件,您不能假设生成的 PDF 文件的内容与输入的内容有任何关系。

您对 ICC 配置文件的使用不会导致转换为 CMYK,这是通过设置 ColorConversionStrategy 完成的。您的 OverrideICC 和 OutputICCProfile 设置没有做任何事情,您应该删除这些开关。此外,如果您正在设置 ColorConversionStrategy,则不应设置 ProcessColorModel。类似地,设置 RenderIntent 对 pdfwrite 设备没有任何作用,也将其删除。

不要设置分辨率。所做的只是设置必须呈现的任何内容的分辨率(例如,从包含透明度的输入文件创建 PDF 文件 < 1.4 版)。所以删除 -r100.

-dPDFX 不会导致字体光栅化。

如果发生这种情况,那么几乎可以肯定这与选择 PDFX 无关,没有看到您的输入文件我无法进一步评论。

使用 TrimBox 或 BleedBox 创建 PDF 文件不需要

-dPDFX。

当然,您的 PostScript 实际上 所做的是创建 PDFX Bleed 和 Trim Offsets,是的,如果您想要那些,那么您需要清楚地设置 PDFX。另一方面,如果您真的想设置正常的常规出血或 Trim 框,那么 pdfmark 参考中也有记录(请参阅 1.7 pdfmark 参考的第 37 页):

The syntax for specifying a non-default page cropping for a particular page in a document is as follows: [ /CropBox [xll yll xur yur] /PAGE pdfmark The syntax for specifying the default page cropping for a document is as follows: [ /CropBox [xll yll xur yur] /PAGES pdfmark

显然您会用 Bleed 或 Trim 代替 CropBox。

更新

此命令行:

gs -sDEVICE=pdfwrite -sOutputFile=new.pdf  /temp/input.pdf -c "[/CropBox [100 100 7568 3784] /PAGES pdfmark" -f

为我生成了一个 PDF 文件 (new.pdf),它在页面树根节点中有一个 CropBox。页面树中的条目由定义它们的节点下的所有页面继承,当我用 Acrobatm 打开文件时,我可以看到裁剪标记不再可见。

所以对我来说,一切正常,而且没有使用 PDFX。添加 -sColorConversionStrategy=CMYK 应该足以获取 CMYK 文件。因为它没有使用 PDF/X,所以它会保持透明度而不是渲染它。请注意,由于您的文件全部为 DeviceGray,因此无论如何颜色都保持不变。

我忘了说,使用 /TrimBox 而不是 /CropBox 对我来说效果也非常好,方式完全相同。