gpt4 book ai didi

PDF TJ 运算符

转载 作者:行者123 更新时间:2023-12-03 08:56:12 28 4
gpt4 key购买 nike

是否可以确定TJ运算符中的数字是否代表单词之间的空格?

示例:[(Sta)28(ry)-333(Plzenec,)]TJ

数字28空格不够,否则333应该根据实际字号空格。字体大小为 9.96

最佳答案

首先请注意,单词之间的空格数与字距调整空格数之间的分隔数没有绝对限制。您所能做的就是开发启发式方法,这对于某些文档(通常是非常严格的文档)来说会失败。

现在记住在计算文本替换 txty 时如何应用这些数字数字之前的最后一个字符的原点到其后第一个字符的原点:

screen shot from ISO 32000-1, 9.4.4 Text Space Details

(ISO 32000-1,第 9.4.4 节文本空间详细信息,还讨论了 here )

因此,首先,如果这个数字是,那么它只会加宽到下一个字符的间隙。

此外,该数字乘以字体大小之前应用;因此,正如我在对该问题的评论中错误声称的那样,不必考虑字体大小。

直接从字形位移中减去该数字(按 1/1000 缩放)。因此,人们可以将其与相关字体的字形位移进行比较,以了解数字的含义。

字形位移本质上是相应字体的WidthsW数组中的数字(默认为MissingWidth/DW 值)按 1/1000 缩放。由于TJ数字和宽度均按1/1000缩放,因此您可以直接比较它们。

因此,一个明显的选择是将负 TJ 数字的绝对值与相关字体中空格字形的宽度进行比较。这因字体而异,例如Courier 为 600,Helvetica 为 278,Times-Roman 为 250。

TJ 数字创建的单词之间的空格不一定必须与字体的整个空格字形一样宽,而是其相关部分,例如其值的一半 (YMMV),可用作将 TJ 数字解释为单词之间的空格的最小值。

不幸的是,如果 PDF 生成器通过 TJ 数字在单词之间创建所有空格,而没有通过空格字形创建空格,并且如果字体仅作为子集嵌入,则无需嵌入空间字形根本不存在。在这种情况下,您可能想使用其他字形进行比较;通常,大写“M”的长度用作字体宽度的度量,您可能需要使用其相关分数,例如五分之一(又是YMMV)。


你可以提高你的启发式

  • 同时考虑字符间距值Tc:如果Tc/Tfs 为负值并具有相关绝对值,文本紧密设置。在这种情况下,您可能需要减少上面确定的限制数量。或者
  • 通过分析您的文本或周围文本中的所有 TJ 数字。不过,在这里我只能猜测什么是可以接受的启发法......

关于PDF TJ 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55147999/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com