我在从 Ghostscript 输出的 pdf 中嵌入字体时遇到问题。我的主要方法是将pdf分割为半宽,所以我最初使用以下命令:
gs -o left_sections.pdf -sDEVICE=pdfwrite -dAutoRotatePages=/None -g17700x6120 -c "[/CropBox [0 0 1770 6120] /PAGES pdfmark" -dFIXEDMEDIA -c "<</PageOffset [0 0]>> setpagedevice" -f page.pdf
我最初的命令运行良好,直到我发现 1 个 pdf 缺少瑞典语特殊字符 (Å),所以我发现我可以添加 -dPDFX 参数以使所有字体都包含在 pdf 中
gs -o left_sections.pdf -sDEVICE=pdfwrite -dPDFX -dAutoRotatePages=/None -g17700x6120 -c "[/CropBox [0 0 1770 6120] /PAGES pdfmark" -dFIXEDMEDIA -c "<</PageOffset [0 0]>> setpagedevice" -f page.pdf
到目前为止一切顺利。除了最后,我需要将所有字体转换为轮廓(使用 -dNoOutputFonts)。我注意到的是,如果 pdf 包含 SMASK(我无法控制这一点),则实际页面会转换为图像,并且可以理解该特定页面不会转换为轮廓,因为它现在是图像。所以我不能使用 -dPDFX 参数。
我想我已经尝试了我发现的不同组合中的所有可能的参数。
-dPDFSETTINGS=/prepress
-dPDFSETTINGS=/printer
-dPDFA
-dEmbedAllFonts=true
-c "<</NeverEmbed []>> setdistillerparams"
-dSubsetFonts=true
我做错了什么?
我在 Mac OSX 10.10.5 上使用 Ghostscript 9.21。我试图分割的pdf是https://nofile.io/f/dxJQh2bDNOv/page.pdf。我的第一个命令的结果是 https://nofile.io/f/NZHMhRUwNEe/left_sections.pdf
好的第一点;您没有将 PDF 文件分成两半。您正在创建一个新的 PDF 文件,其内部内容都不会与原始文件相同,设备的唯一目标是它在视觉上应与输入相同。
指定 PDF/X 时渲染页面的原因是 PDF/X 规范不允许使用透明度(SMask 是透明度操作)。因此,获得视觉上正确输出的唯一方法是将内容渲染为图像。所以不要这样做。
同样,您不应使用 PDFA 或任何其他此类格式,除非您需要该格式。
关于嵌入字体,pdfwrite 设备默认嵌入所有字体。如果缺少字体,它将使用默认字体。
如果没有看到导致您的问题(Aring 字形问题)的原始 PDF 文件,就不可能说出您做错了什么(如果有的话)。如果您想将其发布到某个地方,以及有关您正在使用的 Ghostscript 版本、操作系统以及来源的信息,那么我可以看一下。
但是,我的建议是不要使用 PDFX 或 PDFA,因为这些将导致输出文件的功能受到限制。