使用未嵌入的 TrueType 字体打印 PDF (cups / lpr)

使用未嵌入的 TrueType 字体打印 PDF (cups / lpr)

我有一个使用 TrueType 字体的 PDF OCRB,但未嵌入该字体。

所以我尝试在我的系统上安装该字体(顺便说一句是 SLES11 SP2),我做了以下事情:

  • 双击 gnome 桌面上的字体并单击安装
  • 复制到/user/home/username/.fonts文件夹里了
  • 将其复制到/usr/share/fonts
  • 有根:SuSEconfig --module fonts
  • fc-cache

当我尝试使用以下命令打印 .pdf 时:

lpr -PHL2400Ce -# 1 test.pdf

.pdf 打印得很好,但OCRB字体消失了并被标准字体取代。

evince但是,当我使用(gnome 文档查看器)打开 .pdf 时,我OCRB在查看器中看到字体(正确),当我打印它(使用同一台打印机)时,它就在那里并且绝对正确。

我不明白这一点,因为我猜也以某种方式evince使用?lpr有什么想法我可以做什么吗? (对我来说能够通过命令行打印 .pdf 非常重要,因为它将成为在后台运行的批处理作业的一部分)

我还尝试了一些这样的方法:

gs -dSAFER -dNOPLATFONTS -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sPAPERSIZE=letter -dCompatibilityLevel=1.4 -dPDFSETTINGS=/printer -dCompatibilityLevel=1.4 -dMaxSubsetPct=100 -dSubsetFonts=true -dEmbedAllFonts=true -sOutputFile=output2.pdf -f test.pdf

这给我带来了输出:

....
Can't find (or can't open) font file Arial-BoldMT. 
Didn't find this font on the system!
Substituting font Helvetica-Bold for Arial-BoldMT.
Substituting font Helvetica for OCRB

所以我在这里看到的是,即使没有消息,它也gs替代Helvetica了。知道为什么吗?OCRBCan't find or can't open font...Arial-Bold

答案1

您还需要在打印机渲染器中添加字体。打印机渲染器字体库的正确文件夹很难找到,但查看所有 CUPS/Ghostscript/lpr 配置,您会找到该位置。字体可能需要重新索引,并且 CUPS 和 GS 中都有相应的脚本。

为什么 Evince 能很好地打印出来,是因为通过轻微的强制,你基本上告诉它将所有东西预渲染为向量。

这有点不必要的复杂,主要是因为这些模块化部件是分开诞生的,并且在系统级别发生的聚合最近才发生。

Apple 在内部使用 CUPS,并以某种方式解决了字体安装问题。我没有检查细节,但基本上它要么使用中央系统范围的字体库,要么将字体复制到 GUI 和 CUPS 字体路径。我猜他们不会复制,而是更改了软件以支持通用字体路径。

相关内容