PDF 内容流文本对象中的负数

0 pdf

PDF 文本对象中字符串之间散布的负数的含义是什么?例如,在

/F1 1 Tf
4.2622 0 TD
[(has)-333.9(not)-334.7(been)-333.9(elucidated)-10.7(.)]TJ
Run Code Online (Sandbox Code Playgroud)

我一切都在进行,除了-333.9,,-334.7-10.7

我的问题是:

  • 他们叫什么?
  • PDF 参考中哪里讨论了它们?
  • 他们看起来并没有变形。他们会修改字体字典的信息吗?

Kur*_*fle 5

您引用的 PDF 源代码行

/F1 1 Tf 
4.2622 0 TD 
[(has)-333.9(not)-334.7(been)-333.9(elucidated)-10.7(.)]TJ
Run Code Online (Sandbox Code Playgroud)

可以这样解码:

  • /F1
    这会将当前字体设置为名为 的字体/F1。(这只是一个简短的名称——真正的字体是在 PDF 的其他地方定义的。)

  • 1 Tf
    选择文本字体并将其大小设置为1(以文本空间单位),因为Tf相当于selectfontPostScript 中的运算符。

  • 4.2622 0 TD
    这将移动文本位置4.2622 0并设置文本行距。TD在 PostScript 中没有直接等效项。

  • [....]TJ
    这定义了字符串的组成方式。这TJ是与 PostScript 类似的运算符show。不同之处在于TJ允许单独的字形定位。定义[....]了一个由单独的较小字符串组成的数组。

  • (has)(not)(been)(elucidated)(.):这些是放置在数组中
    完整文本的各个部分[....]

  • -333.9-334.7-333.9-10.7:这些数字
    各自的文本位置调整该量。数字以文本空间单位的千分之一表示。根据官方PDF规范,这个“数量应该从当前的水平或垂直坐标中减去” 。因此,当水平书写时,正数会将下一个字符串向左移动负数会将其向右移动。

因此,实际上,在此示例 PDF 代码中,负数决定了各自的单词距离。


参考

  1. 要了解 PDF 运算符的概述(以及它们与匹配的 PostScript 运算符名称的映射(如果有的话)),请查看以下文档的第 643 页:

  2. 有关TJ运算符和前面的数组的官方解释,请参见同一文档第 250 页的表 109 :