这是一种“防止 Ghostscript 光栅化文本”的方法。但它的输出将是 PostScript。但是,您可以在附加步骤中成功将此 PostScript 转换为 PCL5e。
该方法会将所有字形转换为其PostScript输出的轮廓形状,并且不适用于其 PDF 或 PCL 输出。这里的关键是 -dNOCACHE 参数:
gs -o somepdf.ps -dNOCACHE -sDEVICE=pswrite somepdf.pdf
当然,将字体字形转换为轮廓将比保留原始字体嵌入更多空间,因为“字体”是一个空间优化的概念,用于存储、检索和渲染字形形状。
一旦您有了这个 PostScript,您就可以借助您之前尝试的用于 PDF 输入的任何一种方法(包括 {Apache?} FOP)将其转换为 PCL5e。
但是,我不知道输出是否会比带有光栅化字体(甚至是有益的光栅化页面)的版本小得多。但这可能值得一试。
现在也投票否决这个答案......
更新
显然,从 9.15 版(将于 2014 年 9 月/10 月发布)开始,Ghostscript 将支持一个新的命令行参数:
-dNoOutputFonts
这将导致输出设备pdfwrite
,ps2write
并“eps2write
将'扁平'字形转换为'基本'标记操作(而不是将字体写入输出)”。
这意味着上面的命令应该被替换为:
gs -o somepdf.ps -dNoOutputFonts -sDEVICE=ps2write somepdf.pdf
注意事项:我已经使用基于当前 Git 源代码的自编译 Ghostscript 对一些输入文件进行了测试。它在每种情况下都完美无缺。