我正在使用Ghostscript附带的ps2pdf14
实用程序,我遇到了字体问题。
我传递给命令的指令似乎并不重要,它坚持对在源文档中找到的任何字体进行子集化。
e.g
-dPDFSETTINGS#/prepress -dEmbedAllFonts#true -dSubsetFonts#false -dMaxSubsetPct#0
请注意,#是因为该命令在Windows上运行,它与=。
相同如果有人知道如何告诉ps2pdf
不要使用子集字体,我将非常感激。
-------------------------- Notes -------------------- ----------------------
源文件是包含嵌入字体的PDF,因此它是已经嵌入源文件中的字体,我需要防止它成为目标文件中的子集。
目前所有源文件嵌入字体都是子集,在某些情况下,这从字体名称来看并不明显,即它不包含散列,并且乍一看似乎是完整字体,但宽度数组已经是所有字体的子集例。
答案 0 :(得分:5)
我不确定你到底想要达到什么目标。可能根本没有嵌入字体(甚至不作为子集)?或者它是“我不想要子集,但是完整的字体”?
ps2pdf14
实用程序是一个批处理文件,它使用预先设置的命令行参数数组调用实际gswin32c.exe
。如果您完全自己构建gswin32c命令行,则可以更灵活地进行实验。我一直使用以下命令行成功控制字体嵌入策略:
gswin32c.exe ^ -dBATCH ^ -dNOPAUSE ^ -sOutputFile=c:/path/to/my/output.pdf ^ -sDEVICE=pdfwrite ^ -dPDFSETTINGS=/prepress ^ -dCompressFonts=false ^ -dSubsetFonts=false ^ -dEmbedAllFonts=true ^ -c ".setpdfwrite <</NeverEmbed [ ]>> setdistillerparams" ^ -f c:/path/to/my/postscript.ps
前一个完全嵌入所有字体(甚至是“Base 14”字体)(无子集)。下一个没有嵌入任何字体:
gswin32c.exe ^ -dBATCH ^ -dNOPAUSE ^ -sOutputFile=c:/path/to/my/output.pdf ^ -sDEVICE=pdfwrite ^ -dPDFSETTINGS=/default ^ -dEmbedAllFonts=false ^ -c ".setpdfwrite <</AlwaysEmbed [ ]>> setdistillerparams" ^ -f c:/path/to/my/postscript.ps
/NeverEmbed [ ]
和/或/AlwaysEmbed [ ]
p部分在调用输入文件之前添加 之后 。 答案 1 :(得分:0)
尝试创建包含以下内容的设置文件:
&LT;&LT; / SubsetFonts false &GT;&GT; setdistillerparams