查找pdf文本位置

问题描述 投票:0回答:2

我正在努力计算pdf文本位置。我已经通过互联网阅读,但是没有成功。我已经阅读了pdf参考资料,但这是uhmmmm。现在,我写了一段pdf,我会告诉你我的想法...

/TT3 1 Tf
11.9951 0 0 12 71.94 420.9803 Tm     //scale x=11.9951  scaley=12   x position=71.94 y position=420.9803
<0003>Tj
/TT2 1 Tf
1.6657 -1.22 TD   //x position=71.94+1.6657 y position=420.9803-1.22
-.0016 Tc
(2\))Tj   //x position=71.94+1.6657-0.0016 y position=420.9803-1.22
/TT6 1 Tf
.8203 0 TD   //x position=71.94+1.6657-0.0016+0.8203
0 Tc
( )Tj
/TT3 1 Tf
10.016 0 0 10.02 71.94 237.6803 Tm  //x position=71.94 y position=237.6803
<0003>Tj
/TT2 1 Tf

我肯定有问题,因为使用此方法无法正确重建序列。非常感谢。

pdf text position
2个回答
0
投票

首先,您不应尝试单独跟踪多个标量,而应跟踪整个当前文本矩阵和文本行矩阵。

然后,您从上下文中删除了这些指令。因此,我们必须假设在它们之前没有相关的说明。

因此,我们从等于单位矩阵的文本矩阵和文本行矩阵开始。

/TT3 1 Tf
11.9951 0 0 12 71.94 420.9803 Tm

这将文本矩阵和文本行矩阵都设置为

11.9951  0       0
 0      12       0
71.94  420.9803  1

然后

<0003>Tj

使文本矩阵靠此字符串的宽度前进。由于我不知道TT3的度量,因此我无法说出结果文本矩阵。

/TT2 1 Tf
1.6657 -1.22 TD

此乘积

1       0    0
0       1    0
1.6657 -1.22 1

到左边的文本行矩阵,得到新的文本行矩阵(略微四舍五入)

11.9951    0       0
 0        12       0
91.92    406.3403  1

然后,文本矩阵也设置为此值。

(2\))Tj

这将文本矩阵按此字符串的宽度前进。由于我不知道TT2的指标,因此我无法说出结果文本矩阵。我什至不知道TT2中的这个字符串代表一个还是两个字形。因此,我不知道多久应用一次字符间距。

/TT6 1 Tf
.8203 0 TD

此乘积

1       0    0
0       1    0
0.8203  0    1

到左边的文本行矩阵,得到新的文本行矩阵(略微四舍五入)

 11.9951    0       0
  0        12       0
101.76    406.3403  1

现在

0 Tc
( )Tj

这将文本矩阵按此字符串的宽度前进。因为我不知道TT6的度量,所以我无法说出结果文本矩阵。

/TT3 1 Tf
10.016 0 0 10.02 71.94 237.6803 Tm

这将文本矩阵和文本行矩阵都设置为

10.016    0        0
0        10.02     0
71.94   237.6803   1

0
投票

好,现在更清楚了。因此,假设具有:/ TT6 1英尺1.0吨()Tj

其中TT6为Width = 278 Ascent = 905下降= -211,在编写此()标志符号后,要乘以当前电流的矩阵应为:

1      0       0
0      1       0
0     -0.211   1

然后

1            0                  0
0            1                  0
(0.278+Tc)   (905+211)/1000     1

????这个对吗?谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.