PDF:如何通过 TM 和 TD 计算起始位置

PDF: How starting Position is Calculated through TM and TD

我正在阅读 PDF 规范,但无法计算 x 轴的起始偏移量可见文本如下:

Preface            vii
Acknowledgments    ix

INTRODUCTION       3

PDF 文本解压缩流文本如下:

10 0 0 10 99 475.09 Tm        <-New setting fontsize=10 and x and y axis
-.2 Tc                        <-Character spacing
[(            P)-207(r)-181(e)-211(f)-187(a)-207(c)-191(e)-200(   )-500(  )-500(  )]TJ
^Array having text

/F2 1 Tf        <-New font is set
7.5 0 0 7.5 137.289 475.09 Tm   <-New settings Fontsize=7.5 and x and Y axis
.002 Tc        <-Character spacing
(vii)Tj        <-Text String

/F6 1 Tf     <-New Font
10 0 0 10 144.857 475.09 Tm    <-New settings Fontsize=10 and x and Y axis
-.2 Tc      <-Character spacing
(   )Tj     <-Text String

现在新的 x 轴和 y 轴是什么

-4.5857 -1.3 TD        <- What x-axis?
 [(      A)-226(c)-190(k)-202(n)-201(o)-197(w)-192(l)
  -199(e)-200(d)-211(g)-216(m)-200(e)-201(n)-204(t)-201(s)
   -200(   )-500(  )-500(  )]TJ

 /F2 1 Tf     <- New Font
 7.5 0 0 7.5 178.759 462.09 Tm    <-New Text Matrix
 0 Tc                    <-Character spacing
 (ix)Tj                 <- text string

 /F6 1 Tf
 10 0 0 10 184.309 462.09 Tm
 -.2 Tc
 (   )Tj

表示x轴必须等于462.09?但是它是如何计算的

 /F2 1 Tf
 7 0 0 7 99.4 434.09 Tm
 .1599 Tc
 -.3799 Tw
 [(         IN)-19.1(T)-10.1(R)1.9(ODUCT)-20.1(I)6.9(O)6.9(N)-.1(  )-660(  )-660(  )]TJ

 /F2 1 Tf
-5.5427 -1.8857 TD
-.22 Tc
[(       )-42.9(  )]TJ
7 0 0 7 99.6 407.69 Tm
.1663 Tc
[(CH)5.3(APT)-13.7(E)2.3(R)6.3( )]TJ

再次重复同样的事情,但如何计算 x 轴位置

您遗漏了 Tm 设置 矩阵 ,而不仅仅是字体大小:

10 0 0 10 144.857 475.09 Tm   <-New settings Fontsize=7.5 and x and Y axis

除了字体比例外,这还将原点设置为 137.289 475.09。接下来,指令

-4.5857 -1.3 TD        <- What x-axis?

横向移动-4.5857'units',向下移动-1.3'units'。单位的大小在 text space 中,即水平缩放 10 和垂直缩放 10 -- 两个单独的计算。这归结为水平 -45.857 和垂直 -13 个单位,在 graphics space 和相对于原点:

137.289 + 10*-4.5857 = 91.432 (horizontal)
475.09  + 10*-1.3    = 462.09 (vertical)