PDF文字定位

时间:2016-01-17 14:25:13

标签: pdf

考虑以下操作员序列:

Tf: R8 9.96
Tm: 0 1.00057 -1 0 105.12 60.3506
TJ: line 1:

Tf: R8 9.96
Tm: 0 1.00057 -1 0 105.12 95.9906
TJ: value 1

Tm: 0 1.00057 -1 0 116.16 60.3505
TJ: line 2:

Tf: R8 9.96
Tm: 0 1.00057 -1 0 116.16 124.551
TJ: value 2

Tm: 0 1.00057 -1 0 127.2 60.3507
TJ: line 3:

Tf: R8 9.96
Tm: 0 1.00057 -1 0 127.2 106.671
TJ: value 3

Tm: 0 1.00057 -1 0 138.24 60.3508
TJ: line 4:

Tf: R8 9.96
Tm: 0 1.00057 -1 0 138.24 112.791
TJ: value 4

PDF将其显示为:

line 1: value 1
line 2: value 2
line 3: value 3
line 4: value 4

参考PDF文档矩阵由[a b c d e f]组成,其中e = Tx且f = Ty

从前两个命令块(给出第一行文本)我注意到Tx和Ty实际上切换了位置。 105.12保持相同,应说明垂直位置。

PDF参考文献也谈到了轮换:

  

旋转由[cosθsinθ-sinθcosθ00]产生,其具有   将坐标系轴旋转角度θ的效果   逆时针方向。

似乎是因为Tx改变垂直位置而Ty改变水平为sin(90)= 1 cos(0)= 0.含义90逆时针

Effects of coordinate transformations Questionы:

  1. 为什么增加考虑旋转的e(Tx)会改变实际PDF文档行中的垂直位置?根据翻译e(Tx)应该下降。
  2. 为什么字母和单词不会旋转?只有e(Tx)和f(Ty)切换,这就是全部。

1 个答案:

答案 0 :(得分:1)

您只考虑文本矩阵设置。您没有告诉我们这些文本对象时当前的转换矩阵,也没有告诉我们页面旋转值。

考虑到您的观察,我会假设全局页面顺时针旋转90°。

这可以解释为什么你的90°逆时针旋转文字是直立的(你的第二个问题)。

此外,通过该页面旋转,x轴将是垂直的,坐标值向下升,以回答您的第一个问题。

部分参考

  

旋转 - 整数 - (可选;可继承)页面的度数   显示或打印时应顺时针旋转。价值   应为90的倍数。默认值:0。

     

(表30 - 页面对象中的条目 - Bug #45301 Serious flaw in array_rand()

     

CTM - array - 当前转换矩阵,用于映射位置   用户坐标到设备坐标(参见8.3,“坐标   系统“)。该矩阵由每个应用程序修改   坐标变换算子,cm。初始值:矩阵   将默认用户坐标转换为设备   坐标。

     

(表52 - 与设备无关的图形状态参数 - ISO 32000-1