【发布时间】:2013-07-30 07:33:54
【问题描述】:
假设您正在开发的 C 程序中“手动”(没有库)生成 PDF 程序。您想编写一个下标任意文本的函数。在这里可以想象的最好的事情是 TeX 在排版数学时如何下标 \inf 和 \sup 符号。
现在,当您为 \inf 符号添加下标时,没有任何有趣的事情发生,它就在那里。另一方面,为\sup 符号添加下标会导致下标文本向下移动几个单位,因为字母“p”的下降幅度略低于字体基线。
然后我的问题是,从 Type-1 或 OTF 字体读取字形度量的最佳方法是什么,以便可以完美地完成排版?我特别在寻找 PDF 格式规范中提到的 ascent、descent 和 width 指标。
由于解析字体文件看起来像“做工作而不是 PostScript 解释器”,它必须执行这些计算来放置最终构成单词和段落的单个字母,如果我可以参考“结束PDF PostScript 流中的最后一个文本字符串。
考虑以下 PDF PostScript 流片段:BT /F1 12 Tf 0 0 Td (Hello World!)Tj (Hello again!)Tj ET,“Hello again”准确地呈现在它应该在的位置。所以 PostScript 解释器(当然)知道下一批用 Tj 编写的文本应该从哪里开始,但我不知道如何引用这些信息,以避免所有混乱的字体解析。
如果有人遇到这个问题,请查看a similar question I posted on Adobe forums,我在那里也得到了一些有价值的信息。
【问题讨论】:
-
是
sizeof()?你在找什么? -
我没听懂你说的字体
-
你能改进一下@David 的问题吗?
-
@PaulR 是的,就是这样。我希望它独立于平台。
-
亲爱的大卫,欢迎来到 stackoverflow。从 cmets 的数量来看,您的问题似乎可以通过更清楚地说明您正在使用的内容、您尝试过的内容以及失败的内容来改进。试图帮助您的人会对此表示赞赏,并且可能会提高您获得有意义答案的机会。