如何在pdf文档中生成tj运算符的值(对齐文本)

时间:2017-05-25 14:45:38

标签: pdf text pdf-generation right-justified pdftextstream

我无法理解并找到如何生成tj运算符的值?

这里我在文本显示中更改之前和之后粘贴结果(在第二个块上我改变了位置Left-Justice然后再次回归到Centered)

我认为pdf使用了一些prng,但是我找不到什么样的

请点击

  

[(\ 003 \ 024 \ 027 \ 005 \ 003 \ 030 \ 036 \ b)中的 -114.267 (\ 003 \ 006 \ 007 \ 024 \ 036 \ B)-113.297(\ 026 \ 002 \ 024 \ 003 \ 032 \ 020 \ b)中的 -113.337 (\ b)中的 -111.574 (#\ 024 \ 002 \˚F\ 005 \ 002 \ 021 \ 003 \ 007 \ 004 \˚F\ 005 \ b)中的 -117.089 (\ 003 \ 006 \ 002 \ 003 \ b)中的 -114.08

  

[(\ 003 \ 024 \ 027 \ 005 \ 003 \ 030 \ 036 \ b)中的 -114.366 (\ 003 \ 006 \ 007 \ 024 \ 036 \ B)-113.297(\ 026 \ 002 \ 024 \ 003 \ 032 \ 020 \ b)中的 -113.327 (\ b)中的 -111.693 (#\ 024 \ 002 \˚F\ 005 \ 002 \ 021 \ 003 \ 007 \ 004 \˚F\ 005 \ b)中的 -116.98 (\ 003 \ 006 \ 002 \ 003 \ b)中的 -114.188

1 个答案:

答案 0 :(得分:0)

首先,PDF格式没有明确支持文本对齐。 PDF甚至不知道文本列定义来证明文本!

所有PDF格式支持

  • 明确设置或更改文本矩阵(和文本行矩阵),缩放,字符和字间距
  • 绘制隐含更改文本矩阵的文本片段。

因此,如果PDF处理器更改了文本行对齐方式,那么它实际上必须先确定

  • 哪些文本片段属于一起并形成文本行;

    文本片段可以作为 Tj TJ 指令的参数(或者更多" ' 说明);在简单的情况下,整个线是使用单个指令绘制的,但一般情况下你不能指望它;以及

  • 文本列的左右边框在两者之间是合理的;

    e.g。这些边框可能是处理器为某些页面格式假定的标准值,或者是从当前剪辑路径派生的。

确定了这些数据后,程序因不同的理由而有所不同:

  • 左对齐 - 将文本矩阵放在行的高度左侧文本列边框处,然后简单地按照文本绘图说明进行操作;
  • 右对齐 - 使用当前字体计算绘制线条的宽度,将文本矩阵定位在右侧文本列边框处减去该行高度处的宽度,并让文本绘制说明如下;
  • 居中对齐 - 使用当前字体计算绘制线条的宽度,将文本矩阵放置在文本列的中间减去该行高度的一半宽度,然后让文字绘图说明如下;
  • 完全对齐 - 使用当前字体计算绘制线条的宽度,设置字符间距和字距(使用 Tc Tw 指令,可能会调整 Tz 水平缩放)以消除该宽度与文本列宽度之间的差异,将文本矩阵定位在左侧文本列边框处线条的高度,并按照文字绘图说明进行操作;

    或使用当前字体计算绘制线条的宽度,更改文本绘图说明以消耗该宽度与文本列宽度之间的差异(例如,使用数字 TJ 数组参数值),将文本矩阵定位在行的高度左侧文本列边框处,并按照更改的文本绘制说明进行操作;

    甚至应用这些方法的组合。

(进行完全对齐时应用的更改 - 字符间距,字间距,文本绘制说明的更改 - 显然还会在以后再次更改为其他类型的对齐时撤消...)

使用 Tm Td TD T * 指令可以定位文本矩阵。

顺便说一下,文本的定位和缩放也受到当前变换矩阵的影响。因此, cm 指令也可用于对齐。但这比使用上述说明的可能性要小......

不幸的是,您只是在这样的理由作业之前和之后提供了 TJ 指令的数组参数的摘录。人们看到该数组的数字元素变化很小。这实际上是否是理由本身(根据上面完全对齐的第二个选项)或者仅仅是在没有上下文的情况下才能告知某些计算错误。