下面的 PDF 內容以正確的垂直位置呈現,但如何?
1 0 0 -1 0 792 cm
q
.75 0 0 .75 72 192.75 cm
BT
/F4 14.666667 Tf
1 0 0 -1 0 .80265617 Tm
0 -13.2773438 Td <0030> Tj
12.2087708 0 Td <0024> Tj
8.6870575 0 Td <003C> Tj
9.7756042 0 Td <0032> Tj
11.4001007 0 Td <0035> Tj
ET
Q
q
.75 0 0 .75 72 222.75 cm
BT
/F4 14.666667 Tf
1 0 0 -1 4.0719757 .80265617 Tm
0 -13.2773438 Td <002C> Tj
4.0719757 0 Td <0003> Tj
4.0719757 0 Td <0057> Tj
4.0719757 0 Td <004B> Tj
8.1511078 0 Td <004C> Tj
3.2561493 0 Td <0051> Tj
8.1511078 0 Td <004E> Tj
ET
Q
正確渲染:
MAJOR
I think
但是我不明白如何計算 y 位置來做到這一點(x 很好)。文本渲染矩陣 (TRM) 由文本矩陣 (TM) 乘以當前轉換矩陣 (CTM) PDF1.7 參考第 9.4.4 節給出。CTM 是單位矩陣乘以每個“cm”操作。
所以對于第一個片段,
CTM = [1 0 0 -1 0 792] x [0.75 0 0 0.75 72 192.75] = [0.75 0 0 -0.75 72 786.75]
TRM 是 TM x CTM:
TRM = [1 0 0 -1 0 0.8026] x [0.75 0 0 -0.75 72 786.75] = [0.75 0 0 0.75 72 786.1]
因此,忽略小細節,文本將呈現在 y = 786 附近(我估計實際上是 776)
對于第二個片段,
CTM = [1 0 0 -1 0 792] x [0.75 0 0 0.75 72 222.75] = [0.75 0 0 -0.75 72 816.75]
TRM = [1 0 0 -1 4.072 0.802] x [0.75 0 0 -0.75 72 816.75] = [0.75 0 0 0.75 75.05 816.4]
同樣,忽略小細節,文本將在 y = 816 附近呈現(我估計實際上是 806)
但是 y 原點是頁面底部,并且 816 大于 786。那么為什么第二個文本片段正確呈現在第一個下方?我顯然在計算中遺漏了一些東西,但我看不出是什么。有任何想法嗎?
uj5u.com熱心網友回復:
您計算中的錯誤是您通過從右側乘法來應用cm矩陣。相反,您必須從左側應用它。
即你擁有的第一個片段
CTM = [0.75 0 0 0.75 72 192.75] × [1 0 0 -1 0 792] = [0.75 0 0 -0.75 72 599.25]
對于第二個片段
CTM = [0.75 0 0 0.75 72 222.75] × [1 0 0 -1 0 792] = [0.75 0 0 -0.75 72 569.25]
使用這些當前轉換矩陣,可以預期呈現的結果。
如果你想知道你應該怎么知道你需要從左邊乘...
對于 PDF,這個結果通常是正確的:當執行一系列變換時,表示組合變換 ( M' ) 的矩陣是通過將表示附加變換 ( M T ) 的矩陣與表示所有先前存在的變換的矩陣預乘來計算的(男):
??′ = ?? ?? × ??
(ISO 32000-2 第 8.3.4 節“轉換矩陣”)
uj5u.com熱心網友回復:
在不深入矩陣的情況下(不是我的強項,我的初始數學中有一個小錯誤,所以影像新更正)你正在根據0 792 cm(左上角)的倒置起點從左上角向下作業
該片段的開頭高于MAJOR72 192.75 厘米

如果沒有外部轉換,文本將是“UpsideDown”,M 面向底部,然后第二個將其1 0 0 -1鏡像回直立,0.8 將其“提升”至底部,因此基線ish距離左上角 193.5,此時您“添加” 0 -13.2773438 Td ,因此基線現在約為左上角 205
同樣,第二行的原點是從基準上方向下 72 222.75 cm。
在這兩種情況下,您都將它們的鏡像基線放置在 0 -13.2773438 Td 甚至更低的位置,因此兩條線都將低于上圖所示。部分原因是矩陣求逆。
所以這里的第二個基線現在從左上角向下大約 72 234 厘米,因為經過類似的數學計算,大約向下 222.75 .802 13.277 但比例也會產生影響。

通常最好使用更改的實時查看器(但這不是最好的方法,只是一個例子,通過使用舍入值我可以看到效果)。

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/524686.html
標籤:pdf
