2011-12-16 36 views
1

我正在使用字體識別工具,該工具在Windows XP/7/Vista和Mac OS X上本機運行,並且需要執行高速質量輪廓字體的渲染。由於我們需要高性能的多平臺開發環境,我們選擇Qt4/C++組合,我們使用freetype2進行字體渲染。順便說一句,我對freetype2庫的穩定性,代碼質量以及性能&印象深刻,我強烈推薦! 當我們從Qt4內部字體渲染切換到freetype2時,產品性能提高了約300%,而由於錯誤字體導致應用程序崩潰的概率從1:10.000降低到1:200.000。Postscript在Mac OS X上使用Freetype2/Qt4處理/渲染的類型1字體

我們的產品目前支持OpenType(OTF)和TrueType(TTF)字體,我們即將添加對Postscript Type 1(PS1)字體的支持。

事實上,我們已經添加了對Windows Type-1字體的支持,但是我很難找到處理Mac OS Type-1字體所需的信息。 你可以看到1型字體這裏的一些平臺依賴差別: http://www.asy.com/fonts.htm

在Windows中,每個1類字體包含在2個文件:字體name.pfb(字體輪廓線)和字體名.PFM(字體規格,字距等)

要打開1類字體+指標與對FreeType2你可以做到以下幾點:

ftError = FT_New_Face(&ftLibrary, "font-name.pfb", ftFaceIndex, &ftFace); 
if (ftError) 
    (...) 

ftError = FT_Attach_File(ftFace, "font-name.pfm"); 
if (ftError) 
    (...) 

我有一個關於的Mac OS以下問題/問題X:


1)是否有相應的* .pfm(度量)文件?如果答案是肯定的,它是否總是存在於任何給定的Mac-Type-1字體上?

編輯/答案: Mac Type-1字體中沒有* .pfm文件。字體度量存儲在存儲在同一個Font-Suitcase中的位圖字體中。請參閱有關Windows &蘋果機之間傳輸的字體下面的鏈接,解釋了許多的Win-1型和Mac-1型字體之間的區別:http://www.macdisk.com/fontsen.php3


2)是否有相應的* .PFB (大綱)文件? 到目前爲止,我的信息是輪廓文件存在,它沒有擴展名(pfb),而是LWFN的「Mac類型」。在掃描給定目錄中的所有這些Type-1文件時,如何讀取與文件關聯的「LWFN」類型? 一般來說:如何使用Qt & C++處理Mac數據/資源文件和文件類型?


3)是這些文件(1),(2)在同一目錄中始終存在?

編輯/回答:在asnwer(1)[= Mac-Type-1字體中沒有* .pfm文件]後,此問題不再有意義。


4)如果我知道的(1),(2)特定字體,是有可能的文件路徑的只是將文件複製到用戶的字體庫文件夾(這是真的安裝字體爲OTF/TTF字體)還是我必須使用一些其他特殊的安裝方法?

編輯/答案: Mac-Type-1字體出現在Font-Suitcase中。正確的安裝方法是將整個手提箱安裝到用戶的字體庫中。


5)是否有可能採取的Windows-1型字體(PFB/PFM)和安裝/使用的是Mac OS X的機器上,無需任何轉換?

編輯/答:答案是NO。要安裝的PFB/PFM轉換的需要/ Mac OS X中使用,但您可以通過Adobe應用程序,如Photoshop /排版,如果你將它們複製到這些應用程序的一些特殊的字體文件夾中使用它們。

我將非常感謝所有的答案或指向正確的方向的聯繫,因爲我已經做任何搜索,到目前爲止,只是指出了另一個複雜的層面沒有得到我任何明確的或有用的答案。

感謝

菲沃斯

PS:我試圖回答我的大部分問題,我也將發佈一個鏈接到一些代碼片段,我發現。

回答

1

我編輯我原來的職位回答了我大部分的問題。對於未來的讀者:我發現了一些開源C代碼,它解決了處理Mac Font Suitcases並從中提取OTF/TTF/Type-1字體的問題。

這是一組由喬治·威廉斯(參見說明書波紋管)編寫的工具。 鏈接到源代碼開放項目:http://fondu.sourceforge.net/#Fondu


Fondu - 一組程序MAC字體格式和PFB,TTF,OTF和BDF文件在UNIX之間互換。

與Mac字體處理是很難在其它操作系統上,因爲MAC字體存儲在資源叉,和其他操作系統不支持這個概念。 Fondu將從macbinary文件或binhex文件中提取資源分支。 Ufond將在macbinary文件中創建一個資源分支。