如何计算从TTF领先的PDF?

Mar*_*tin 7 pdf truetype

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文件中的线间隙值有助于计算PDF前导,但某些字体不能为它提供合理的值(例如,Windows上的Courier New).

Tar*_*ier 3

我对字体一点也不了解,也没有明确的答案,但我想我应该发布一些关于我发现的有关该主题的信息的链接。

Microsoft OpenType 规范(请参阅底部的“基线到基线距离”部分)将行距定义为等于 LineGap。

Apple文本系统概述指出:

在排版过程中在字体行之间添加的空间称为行距,以传统金属活字页面布局中用于此目的的铅块命名。(行距有时也称为行距。)

所以,根据这些链接,LineGap不仅仅用于计算行距,而且实际上就是行距。