PDF图像定位

时间:2016-01-20 12:40:22

标签: pdf

考虑以下操作员序列:


    q
    0.12 0 0 0.12 0 0 cm
    1 g
    472 471.922 4014 6073 re
    f
    0 G
    0 g
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R7 12 Tf
    0 1.00055 -1 0 71.52 336.711 Tm
    [text 1] TJ
    /R8 9.96 Tf
    0 1.00057 -1 0 105.12 60.3506 Tm
    [text 2] TJ
    ET
    Q
    885 502.922 6 297 re
    f
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R8 9.96 Tf
    0 1.00057 -1 0 105.12 95.9906 Tm
    [text 3] TJ
    0 1.00057 -1 0 116.16 60.3505 Tm
    [text 4] TJ
    ET
    Q
    977 502.922 6 535 re
    f
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R8 9.96 Tf
    0 1.00057 -1 0 116.16 124.551 Tm
    [text 5] TJ
    0 1.00057 -1 0 127.2 60.3507 Tm
    [text 6] TJ
    ET
    Q
    1069 502.922 6 386 re
    f
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R8 9.96 Tf
    0 1.00057 -1 0 127.2 106.671 Tm
    [text 7] TJ
    0 1.00057 -1 0 138.24 60.3508 Tm
    [text 8] TJ
    ET
    Q
    1161 502.922 6 437 re
    f
    q
    8.33333 0 0 8.33333 0 0 cm
-----------------------------------------------------------------------------
    BT
    /R8 9.96 Tf
    0 1.00057 -1 0 138.24 112.791 Tm
    [line 1] TJ
    ET
    Q
    q
    1268 2621.92 m
    1268 2675.92 l
    1380 2675.92 l
    1380 2621.92 l
    h
    W
    n
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R9 11.04 Tf
    0 0.999402 -1 0 162.6 314.631 Tm
     Tj
    ET
    Q
    Q
    q
    1268 2621.92 m
    1268 4396.92 l
    2049 4396.92 l
    2049 2621.92 l
    h
    W
    n
    1 g
    1267 2620.92 780 1775 re
    f*
    Q
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R9 11.04 Tf
    0 0.999402 -1 0 204.6 515.751 Tm
     Tj
    ET
    Q
    0 0 1 RG
    0 0 1 rg
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R9 11.04 Tf
    0 0.999402 -1 0 227.16 355.071 Tm
    [line 2] TJ
    ET
    Q
    1903 2958.92 6 1101 re
    f
    0 G
    0 g
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R9 11.04 Tf
    0 0.999402 -1 0 227.16 487.191 Tm
     Tj
    ET
    Q
    q
    0 1565 -408 0 1705 2732.92 cm
    /X0 Do
    Q
    q
    0 1738 -506 0 2659 2639.92 cm
    /X1 Do
    Q
    q
    8.33333 0 0 8.33333 0 0 cm
    BT
    /R7 12 Tf
    0 1.00055 -1 0 342 398.991 Tm
    [line 3] TJ
    ET

我简化了TJ命令以仅声明文本。请注意Tj被错误地显示为<01> Tj,当您尝试编辑问题时,您可以在源代码中看到它。

页面顺时针旋转90°。页面属性:


    [Type] => Page
    [MediaBox] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 595
            [3] => 842
        )

    [Rotate] => 90
    [Resources] => Array
        (
            [Font] => Array
                (
                    [R7] => Array
                        (
                            [Name] => Helvetica-Bold
                            [Type] => Type1
                            [BaseFont] => Helvetica-Bold
                            [Subtype] => Type1
                        )

                    [R8] => Array
                        (
                            [Name] => Helvetica
                            [Type] => Type1
                            [BaseFont] => Helvetica
                            [Subtype] => Type1
                        )

                    [R9] => Array
                        (
                            [Name] => DUCRGK+Calibri
                            [Type] => TrueType
                            [BaseFont] => DUCRGK+Calibri
                            [FirstChar] => 1
                            [LastChar] => 18
                            [Subtype] => TrueType
                        )

                )

            [XObject] => Array
                (
                    [X0] => Array
                        (
                            [Subtype] => Image
                            [ColorSpace] => DeviceRGB
                            [Width] => 250
                            [Height] => 65
                            [BitsPerComponent] => 8
                            [Filter] => DCTDecode
                            [Length] => 3927
                        )

                    [X1] => Array
                        (
                            [Subtype] => Image
                            [ColorSpace] => DeviceRGB
                            [Width] => 278
                            [Height] => 81
                            [BitsPerComponent] => 8
                            [Filter] => FlateDecode
                            [Length] => 2617
                        )

                )

        )

    [Contents] => Array
        (
            [Filter] => FlateDecode
            [Length] => 2525
        )

    [Parent] => Array
        (
            [Type] => Pages
            [Count] => 20
        )

在PDF查看器中,它看起来像:

    line 1
    image 1
    line 2
    image 2
    line 3

由于页面轮换e Txf Ty已切换。例如,在0 1.00057 -1 0 138.24 112.791 Tm中,138.24表示垂直移位,112.791表示水平移位。

为方便起见,我还在这里添加矩阵表示:


    [a b 0]
    [c d 0]
    [e f 1]

    or

    [a b c d e f]

似乎是因为cm运算符表示缩放图像Tx和Ty是如此之大。考虑到这一点,我们将得到以下结果:

Ty           Content             Calculation
138.24       line 1
204,6        image 1             1705/8.33333
227.16       line 2
319,08       image 1             2659/8.33333
342          line 3

这似乎是正确的。

根据PDF参考v1.7(页205)进行的转换:

  

•翻译指定为[1 0 0 1 tx ty],其中tx和ty为   转换坐标系原点的距离   水平和垂直尺寸。

     

•通过[sx 0 0 sy 0 0]获得缩放。这会缩放坐标   使1个单位在新的水平和垂直方向   坐标系分别与sx和sy单位的大小相同,   在之前的坐标系中。

     

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

     

•偏斜由[1tanαtanβ10 0]指定,使x轴倾斜   角度α和y轴角度β。

问题:

  1. cm/Tm运算符更改的矩阵是否是相同的矩阵?这意味着,在图像处理之后,然后使用像Td/TD这样的运算符修改文本矩阵应该在cm状态之后修改矩阵吗?
  2. 引用带有转换描述的引用。如何知道哪些转换可以与1命令一起应用?例如,对于Scaling,应该只有sxsy,并且所有其他值都与示例0类似,它标识它是缩放但是0值不应该应用于实际矩阵?很明显,Skew + Rotation不能在1个命令中应用,因为两个用途b c。同时翻译和旋转一起使用,如上例所示。
  3. 在PDF参考中,表示Tm替换当前矩阵(页426)和cm连接(页219)。考虑到这一点,我的结果与1705/8.33333一样不正确,我们还应该添加前一个Ty位置,即138.24,结果我们将得到342,84并且它给出了错误的Ty位置。这有什么问题?
  4. 根据PDF参考v1.7(页206),转换按以下顺序应用:平移,旋转,缩放或倾斜。我认为缩放适用于对象本身而不是Tx和Ty定位。那就是我正在做的1705/8.33333来识别图像位置吗?

0 个答案:

没有答案