3

我正在尝试突出显示 PDF 文档中的文本,但我找到了一个带有以下操作数的 Tm 运算符:

0 7.98 -7.98 0 90.8898 715.4183 Tm

Tm 运算符应该仅在其操作数上替换文本矩阵和文本行矩阵。根据Pdf Reference,可以进行以下操作:

  • 翻译 [1 0 0 1 tx ty]
  • 缩放 [sx 0 0 sy 0 0]
  • 旋转 [cos(angle) sin(angle) -sin(angle) cos(angle) 0 0]
  • 偏斜 [1 tan(alpha) tan(beta) 1 0 0]

操作数的格式与上述任何转换都不匹配,这导致了以下问题。

  • 前面提到的文本矩阵应该做什么?
  • 几个转换会是什么样子?例如缩放和旋转。
4

1 回答 1

9

前面提到的文本矩阵应该做什么?

你的矩阵

0 7.98 -7.98 0 90.8898 715.4183

(这是 PDF 的缩写形式

⌈  0        7.98    0 ⌉
| -7.98     0       0 |
⌊ 90.8898 715.4183  1 ⌋

不幸的是,确实很难画大括号)

是 90° 旋转、7.98 缩放和 90.8898、715.4183 平移操作的组合。我将在下面近似这些数字,7.98 ≅8、90.8898 ≅ 91 和 715.4183 ≅ 715:

⌈  0   8  0 ⌉   ⌈  0  8  0 ⌉   ⌈  1   0  0 ⌉
| -8   0  0 | = | -8  0  0 | x |  0   1  0 |
⌊ 91 715  1 ⌋   ⌊  0  0  1 ⌋   ⌊ 91 715  1 ⌋

  ⌈ 8 0 0 ⌉   ⌈  0  1  0 ⌉   ⌈  1   0  0 ⌉
= | 0 8 0 | x | -1  0  0 | x |  0   1  0 |
  ⌊ 0 0 1 ⌋   ⌊  0  0  1 ⌋   ⌊ 91 715  1 ⌋

几个转换会是什么样子?例如缩放和旋转

我们在上面的分解中有这样一个例子,

⌈  0  8  0 ⌉   ⌈ 8 0 0 ⌉   ⌈  0  1  0 ⌉
| -8  0  0 | = | 0 8 0 | x | -1  0  0 |
⌊  0  0  1 ⌋   ⌊ 0 0 1 ⌋   ⌊  0  0  1 ⌋

8 倍缩放和 90° 旋转的组合。

于 2013-08-21T10:30:34.943 回答