如何从TTF计算PDF前导?

如何从TTF计算PDF前导?,pdf,truetype,Pdf,Truetype,PDF规范定义了一个名为“(撇号)的文本运算符。定义是它写出一些文本,并根据当前的前导状态移动到下一行。可以使用TL运算符设置当前超前状态。如果您知道文本行在垂直方向上的间距,则可以非常轻松地书写文本行: 16 TL /F1 12 Tf (Line 1) ' (Line 2) ' (Line 3) ' (Line 4) ' 16铊 /F1 12 Tf (第1行)“ (第2行)“ (第3行)“ (第4行)“ 我没有为此使用任何库,因为这是一个学习练习。我已经编写了一些代码来直接解析TTF文件和提取

PDF规范定义了一个名为“(撇号)的文本运算符。定义是它写出一些文本,并根据当前的前导状态移动到下一行。可以使用TL运算符设置当前超前状态。如果您知道文本行在垂直方向上的间距,则可以非常轻松地书写文本行:

16 TL /F1 12 Tf (Line 1) ' (Line 2) ' (Line 3) ' (Line 4) ' 16铊 /F1 12 Tf (第1行)“ (第2行)“ (第3行)“ (第4行)“ 我没有为此使用任何库,因为这是一个学习练习。我已经编写了一些代码来直接解析TTF文件和提取字符宽度,以及PDF FontDescriptor字典所需的其他项

我一直在阅读TTF文件格式规范,试图找出行高度的位置或如何计算,但我没有运气

假设我有以下条件:

  • 字体大小
  • TTF文件中的所有相关值(上升、下降、线间距等)
如何从TTF计算PDF前导

编辑


TTF文件中的行距值似乎有助于计算PDF前导,但有些字体没有提供合理的值(例如,Courier New on Windows)。

我不完全确定您试图做什么,但听起来您想在PDF文档中嵌入true type字体。如果是这样的话,你为什么不直接用乳胶呢


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

(请参见底部的“基线到基线距离”部分)将引线定义为等于线间距

苹果公司声明:

排版过程中在字体行之间增加的空间称为行距,是在传统金属字体页面布局中用于此目的的一段行距之后添加的。(前导有时也称为线间隙。)


因此,根据这些链接,LineGap不仅仅用于计算行距,实际上是行距。

+1我不知道答案是什么,但我也很想知道,因为我已经完成了手动输出PDF的工作。Windows上的Courier New等字体的行距为0,你处理过这些问题吗?很好的研究,但据我所知,用PDF术语来说,领先实际上是指从上一个基线到当前基线的距离。换句话说,您可以直接在OpenType规范中使用基线到基线的距离计算。