【发布时间】:2018-01-03 05:16:44
【问题描述】:
我确实有一个 pdf 生成管道,最后会调用 ghostscript (Linux) 以生成 PDF(输入 ps)。 PDF必须尽可能小,所以使用的通用命令行是
ps2pdf13 -dSAFER -dPDFSETTINGS=/default -dEmbedAllFonts=false -dNoOutputFonts -dFastWebView infile outfile
生成漂亮的 PDF 文件,但不包含所需的字体,假设目标系统应该使用它们必须替换的任何内容。是的,这可能意味着不同的系统确实使用略有不同的字体,因此会得到不同的外观。
大多数情况下,PDF 属性中列出了 7 种不同的字体。在 Linux 上运行良好。
Windows (Acrobat Reader) 抱怨其中一个字符丢失,然后不呈现任何字符。
我知道我可以让 gs 嵌入字体,但会使 PDF 大小增加 50%。希望避免这种情况(虽然它大约 6000 字节,但每次运行都会乘以大约 30000 倍,因此也很重要)。
我希望有一种方法可以在 PDF 中“嵌入”“For Font Helvetica-Narrow 只需使用 Arial Narrow”(或类似内容)的信息。
存在吗?
[编辑]
抱歉回复晚了,忙。 :(
好吧,好吧。我正在考虑字体选择的可能选项列表。此外,从这种方式出发,问题可能会走错路。
选项,顺便说一句,确实有不同的大小,虽然它似乎是 -dEmbedAllFonts 一个负责大小,-dNoOutPutFonts 实际上似乎没有任何作用。
我必须与我们尝试替换的(非常旧的)蒸馏器进行比较,并使用 pdffonts,我得到以下表格:
psp2df:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
Helvetica-Narrow Type 1 Custom no no no 11 0
Helvetica-Bold Type 1 Custom no no no 9 0
Helvetica-Narrow-Bold Type 1 WinAnsi no no no 13 0
Courier Type 1 Custom no no no 15 0
Courier-Bold Type 1 Standard no no no 10 0
Helvetica Type 1 Custom no no no 8 0
Times-Italic Type 1 Standard no no no 21 0
蒸馏器:
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
Helvetica Type 1 Custom no no no 4 0
Helvetica-Bold Type 1 Custom no no no 5 0
Courier Type 1 Custom no no no 6 0
Courier-Bold Type 1 Custom no no no 7 0
Helvetica-Narrow Type 1 Custom no no no 8 0
Helvetica-Narrow-Bold Type 1 Custom no no no 9 0
Times-Italic Type 1 Custom no no no 15 0
使用 ps2pdf 创建的 PDF 文件 Acrobat Reader 抱怨“字体 Helvetica-Narrow can't be found”。蒸馏器工作。 我不明白。这是同一个列表,至少对于那个字体而言。
显然它看起来很糟糕。
一种解决方案是嵌入字体。然后字体列表变成了
name type encoding emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
XVQNWP+Helvetica-Narrow Type 1C Custom yes yes no 11 0
Helvetica-Bold Type 1 Custom no no no 9 0
LBTZEH+Helvetica-Narrow-Bold Type 1C WinAnsi yes yes no 13 0
Courier Type 1 Custom no no no 15 0
Courier-Bold Type 1 Standard no no no 10 0
Helvetica Type 1 Custom no no no 8 0
Times-Italic Type 1 Standard no no no 21 0
并且文件大小会增加负载,这是我们想要避免的。蒸馏器 展示了它的可能,但不是如何。
【问题讨论】:
标签: pdf fonts ghostscript