PDF文本对象:如果没有* Tf *运算符,应使用哪种字体和解码?

问题描述 投票:0回答:1

[如果没有前面的[[Tf运算符,应使用哪种字体和编码来解码和显示BT / ET块内的字符串?

可以用空字符串替换这样的字符串吗?

例如:

BT 8.04 0 0 8.04 63 67.92 Tm [(oL)-1 (Om)]TJ ... ... ET

如果可能,请参考Adobe规范或建议。
parsing pdf fonts adobe decoding
1个回答
0
投票
首先,当前文本字体是文本状态参数,因此是图形状态的一部分。

因此,要确定文本对象中某些文本的当前文本字体,仅在该文本对象内查找

Tf操作是不够的。文本字体可能已经在内容流中设置得更早了,或者是在先前的文本对象内部还是在页面描述级别。此外,它可能已经经历了先前的保存图形状态和还原图形状态操作。

但是如果在文本绘制操作之前根本没有

Tf

操作怎么办?好吧,ISO 32000-1, Table 105 - text state operators

((ISO 32000-1,表105-文本状态运算符)

因此,

文本字体没有初始值

。因此,如果没有Tf操作,也不会知道编码。 也较早:

要绘制字形,内容流应首先标识要使用的字体。

Tf

运算符应指定字体资源的名称。

((ISO 32000-1,第9.2.2节-显示文本的基础)

因此,没有前面的

Tf

的文本绘制操作实际上是无效的! 因此,严格的文本提取器甚至可能停止从有问题的流中提取文本,因为它显然已损坏。
© www.soinside.com 2019 - 2024. All rights reserved.