如何计算从TTF领先的PDF?

时间:2009-05-01 14:33:25

标签: pdf true-type-fonts

PDF规范定义了一个名为'(撇号)的文本运算符。定义是它写出一些文本,并根据当前的前导状态移动到下一行。可以使用TL运算符设置当前的前导状态。如果您知道它们应该垂直间隔开多少,这样就可以很容易地编写文本行:

16 TL
/F1 12 Tf
(Line 1) '
(Line 2) '
(Line 3) '
(Line 4) '

我没有使用任何库,因为这是一个学习练习。我编写了一些代码来直接解析TTF文件并提取字符宽度以及PDF FontDescriptor字典所需的其他项目。

我一直在阅读TTF文件格式规范,以便试图弄清楚行高的位置或计算方式,但我没有运气。

假设我有以下几点:

  • 字体大小。
  • TTF文件中的所有相关值(Ascender,Descender,Line Gap等)

如何计算从TTF领先的PDF?

修改

TTF文件中的Line Gap值似乎有助于计算PDF前导,但某些字体不能为它提供合理的值(例如,Windows上的Courier New)。

2 个答案:

答案 0 :(得分:3)

我绝不是对字体知之甚少,或者有明确的答案,但我想我会发布一些有关该主题的一些信息的链接。

Microsoft OpenType Specification(参见Baseline To Baseline Distances部分,底部)将前导定义为等于LineGap。

Apple Text System Overview声明:

  

在传统金属类型页面布局中用于此目的的铅块之后,在类型的线之间排版期间添加的空间称为行距。 (领先有时也被称为linegap。)

所以,根据这些链接,LineGap不仅用于计算领先,而且实际上是领先的。

答案 1 :(得分:0)

我不完全确定你要做的是什么,但听起来你想在pdf文档中嵌入真正的字体。如果是这样的话,为什么不用乳胶?

http://www.radamir.com/tex/ttf-tex.htm