0

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

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

我认为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

4

1 回答 1

0

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

所有支持的 PDF 格式是

  • 显式设置或更改文本矩阵(和文本行矩阵)、缩放、字符和单词间距以及
  • 绘制隐式更改文本矩阵的文本片段。

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

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

    文本片段可以作为TjTJ指令的参数给出(或者很少是"'指令);在简单的情况下,整条线是使用单个指令绘制的,但通常你不能指望它;和

  • 文本列的左边界和右边界之间的对齐方式;

    例如,这些边界可能是处理器为某些页面格式假定的标准值,或者来自当前剪辑路径。

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

  • 左对齐- 将文本矩阵放置在左侧文本列边框的行高处,简单地让文本绘制指令遵循;
  • 右对齐- 使用当前字体计算绘制线的宽度,将文本矩阵定位在右侧文本列边框减去线高处的宽度,然后让文本绘制指令跟随;
  • 中心对齐- 使用当前字体计算绘制线的宽度,将文本矩阵定位在文本列的中间减去线高处宽度的一半,然后让文本绘制指令跟随;
  • 完全对齐- 使用当前字体计算绘制线的宽度,设置字符间距和字间距(使用TcTw指令,可能会调整Tz水平缩放)以使用该宽度和文本列宽,将文本矩阵定位在左侧文本列边框行高处,让文本绘制指令跟随;

    或使用当前字体计算绘制线的宽度,更改文本绘制指令以使用该宽度与文本列宽度之间的差异(例如,使用数字TJ数组参数值),将文本矩阵定位在左侧文本行高的列边框,并让更改后的文本绘制指令跟随;

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

(在进行完全对齐时应用的更改 - 字符间距、字间距、文本绘制指令的更改 - 显然在稍后再次更改为另一种类型的对齐时也会撤消......)

可以使用TmTdTDT*指令来定位文本矩阵。

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


不幸的是,您只是在这样的证明工作之前和之后提供了TJ指令的数组参数的摘录。可以看到该数组的数字元素变化非常轻微。如果没有上下文,这实际上是证明本身(根据上述完整证明的第二个选项)还是仅仅是一些计算上的不准确性。

于 2017-06-01T10:59:50.833 回答