在将 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
这个问题可以进一步讨论到
我的初始 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