我正試圖計算矢量PDF中每個文本字形的確切邊界框。精確的PDF中字形的邊界框?
這包括跟蹤CTM,繪製/定位PDF指令等,還計算「字形空間」(使用來自嵌入字體中GLYF表的信息)中每個特定字形的邊界。
我意識到PDF FontDescriptor包含每個嵌入字體的粗略邊界框,但這是字體中所有字形的組合 - 即適合字體中所有字形的最小邊界框。爲了我的目的,我需要更精確的定位。
我的具體應用提取樂譜的矢量PDF音樂語義。因此,一個很好的約束是我可以假設字形不是在同一個Tj/TJ運算符中繪製在一起的。每個字形都是獨立繪製的。
而且,請注意,我定義邊框爲「可以包含字形的全部取材部位最小的盒子。」沒有必要忽略上行/下行/等。這可能被認爲是在其他應用程序的邊界框「外部」。
有很多移動部件在這裏,我發現它很難調試。所以這裏是我最喜歡的幫助:
- This example PDF I've created有10個字形。設備空間中這10個字形的「基本事實」邊界框定位是什麼?我目前的代碼產生以下內容,但這是不正確的。我知道這是不正確,因爲它說的第一個字形(」 &‘)水平相交的第二(’\ u02d9" ),你可以看到當您查看PDF閱讀器PDF格式是不正確的。
'&' (57.2799755477664, 600.7092061684704, 86.7452642315424, 677.1570718099680)
'\u02d9' (82.0030393188000, 633.6851606704608, 96.3090818379936, 644.6969866323168)
'\u0153' (144.7841941848000, 623.9630080194528, 158.6735558539200, 634.5581702962656)
'\u0153' (181.6778111184000, 619.0027260546528, 195.5671727875200, 629.5978883314656)
'w' (226.1671727148000, 611.3638918288608, 245.0765465300448, 622.3161944071392)
'w' (320.1063822180000, 631.2050196880608, 339.0157560332448, 642.1573222663392)
'\u0153' (414.0455917212000, 641.3239948962528, 427.9349533903200, 651.9191571730656)
'\u0153' (450.9392086548000, 636.3637129314528, 464.8285703239200, 646.9588752082656)
'\u0153' (487.9878407856000, 631.4034309666528, 501.8772024547200, 641.9985932434656)
'\u0153' (524.8814577192000, 628.9232899842528, 538.7708193883200, 639.5184522610656)
你是如何計算的位置? (由於PDF的複雜性,我意識到這是一個很重要的問題)。這將對演練有巨大的幫助,我相信這對將來的其他人會有幫助。
是否有一個工具,這是否下架?
恐怕** A ** PDF說明書中的描述已經相當不錯了。您可能想要提出具體問題或分享您的(整理)代碼進行分析,而不是等待某人重新制定規範。而** B **你的起始位置看起來不太遠(差異可能是由於目標座標系或選定的起始點不同),但是你從這些座標系跨出的矩形看起來很奇怪。 – mkl