【问题标题】:How the value of the tj operator is generated in a pdf document (justified text)pdf文档中tj运算符的值是如何产生的(对齐文本)
【发布时间】:2017-05-25 14:45:38
【问题描述】:

看不懂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

【问题讨论】:

  • 您显示的例外情况与证明无关。请看一下周围的说明。
  • 但它显示了什么?这部分改变了,我认为这是合理的。说明你的意思是ios32000-2008?
  • 没有。您的摘录来自 PDF 内容流,它们是指令序列。 TJ 操作符及其参数是一条指令。内容流中还有其他说明。看看它们之间的差异。
  • 规格是什么? @mlk
  • 能给个链接吗

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


【解决方案1】:

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

所有支持的PDF格式是

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

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

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

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

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

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

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

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

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

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

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

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

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


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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-16
    • 2013-09-19
    • 2018-06-08
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多