2009-05-01 81 views
7

PDF規範定義了一個名爲'(撇號)的文本操作符。定義是它寫出一些文本,並根據當前的領先狀態移動到下一行。當前的狀態可以使用TL操作符來設置。這使得它,如果你知道多少,他們應該被分開垂直間隔的很容易寫的文本行:如何計算從TTF領先的PDF?

 
16 TL 
/F1 12 Tf 
(Line 1) ' 
(Line 2) ' 
(Line 3) ' 
(Line 4) ' 

我沒有使用這個任何庫,因爲它是一個學習鍛鍊。我寫了一些代碼來直接解析TTF文件並提取字符寬度以及PDF FontDescriptor詞典所需的其他項目。

我一直在閱讀TTF文件格式規範,以試圖找出行高度的位置或如何計算,但我沒有運氣。

假設我有以下的Givens:

  • 的字體大小。
  • 從TTF文件(上伸,伸,行峽等)

如何計算PDF從TTF領先所有相關的值?

編輯

看來,從TTF文件的行間距值是在計算PDF領先的工具,但是有些字體不爲它提供一個合理的值(宋體在Windows,例如)。

+0

+1我不知道答案是什麼,但我也很想知道,因爲我已經完成了我手動輸出PDF的份額。 – JasonSmith 2009-05-03 12:44:24

回答

3

絕不是我的最低位知識淵博關於字體,或有一個明確的答案,但我想我會發布關於一些信息,我發現關於該主題的一些鏈接。

Microsoft OpenType Specification(參見Baseline To Baseline Distances部分,朝底部)定義前導等於LineGap。

蘋果Text System Overview指出:

空間類型的線被稱爲領導之間排版,鉛用於傳統的金屬型頁面佈局爲此蛞蝓後過程中添加。 (領導有時也稱爲linegap。)

因此,根據這些鏈接,LineGap不僅用於計算領先優勢,而且實際上是領先優勢。

+0

像Windows上的Courier New這樣的字體在Line Gap中有一個0,你有沒有處理過這些? – Martin 2009-05-09 06:54:27