在将 formXobjects 替换为内容流时,我正在丢失字体大小?

While replacing formXobjects in to content stream I am loosing Font size?

这个问题可以进一步讨论到

我的初始 formXobject 如下所示。

从视觉上看

在我尝试用 Xobject 内容流替换“/Meta98 Do”后,它看起来像这样。

您可以查看此新文件的内容流 here

更改文件之前是here

我想我失去了 Tf 属性。如何在不丢失字体大小的情况下替换 formxobject 内容?

Tf 属性很好。 您页面内容中的此部分显示分数:

q
0.25 0 0 0.42986 189.16 132.44 cm
/Formula <</MCID  74  >> BDC
/F3_Fm0 11.04 Tf
q
0.51317 w
0 G
1 j
2.0282 15.322 m
15.493 15.322 l
S
BT
/F3_Fm0 7.2577 Tf
1 0 0 1 8.8216 2.517 Tm
0 g
[(m)  ]TJ
EMC
/Artifact <<>> BDC
ET
BT
1 0 0 1 11.168 20.038 Tm
EMC
/Formula <</MCID  75  >> BDC
[(p)  ]TJ
EMC
/Artifact <<>> BDC
ET
BT
/F4_Fm0 12.414 Tf
1 0 0 1 2.4192 2.517 Tm
EMC
/Formula <</MCID  76  >> BDC
[(Y)  ]TJ
EMC
/Artifact <<>> BDC
ET
BT
1 0 0 1 3.7877 20.038 Tm
EMC
/Formula <</MCID  77  >> BDC
[(X)  ]TJ
EMC
ET
Q
Q

顶部的变换使分数显示得更小:

0.25 0 0 0.42986 189.16 132.44 cm

替换为

1 0 0 1 189.16 132.44 cm

几乎解决了这个问题,因此您必须检查转换是如何计算的。

您忘记考虑 XObject 矩阵

在原始 PDF 中,您的页面上使用了一个表单 XObject:

q
0.25 0 0 0.42986 189.16 132.44 cm
/Meta98 Do
Q

并且您只需将 /Meta98 Do 替换为 XObject 中的内容(包含在 q..Q 中并带有标签):

q
0.25 0 0 0.42986 189.16 132.44 cm
/Formula <</MCID  74  >> BDC
/F3_Fm0 11.04 Tf
q
0.51317 w 
...
[(X)  ]TJ
EMC
ET
Q
Q 

不过,您忘记了考虑 XObject 形式的 Matrix 条目:

55 0 obj
<</BBox[0 0 18.425 31.89]/Filter/FlateDecode/Length 158/Matrix[3.9077 0 0 2.2578 0 0]/Resources<</Font<</F3 62 0 R/F4 65 0 R>>>>/Subtype/Form/Type/XObject>>stream
...

这个矩阵也必须应用到这里:

q
0.25 0 0 0.42986 189.16 132.44 cm
% concatenate the former XObject Matrix:
3.9077 0 0 2.2578 0 0 cm
/Formula <</MCID  74  >> BDC
/F3_Fm0 11.04 Tf
q
0.51317 w 
...
[(X)  ]TJ
EMC
ET
Q
Q