共用方式為


內嵌字型

內嵌字型是將檔與它包含的字型統合到檔案以傳輸至另一部電腦的技術。 內嵌字型可確保傳送檔案中指定的字型會出現在接收檔案的電腦上。 不過,並非所有字型都可以從電腦移至電腦,因為大部分字型一次只能授權一部電腦。 只有 TrueType 和 OpenType 字型可以內嵌。

只有在使用者要求時,應用程式才會在檔中內嵌字型。 應用程式不能與包含內嵌字型的檔一起散發,也無法讓應用程式本身包含內嵌字型。 每當應用程式以任何格式散發字型時,必須認可字型擁有者的專屬許可權。

可能違反字型廠商的專屬權利或使用者授權合約,以內嵌不允許內嵌的任何字型,或無法觀察下列內嵌字型的指導方針。 字型的授權只能提供在目的地電腦上安裝和使用字型的讀取/寫入權限。 或者,授權可能會授與唯讀許可權。 唯讀許可權可讓檔檢視及列印 (,但目的地電腦不會修改) ;具有唯讀內嵌字型的檔本身是唯讀的。 唯讀的內嵌字型可能不會從檔取消包包,而且安裝在目的地電腦上。

應用程式可以呼叫GetOutlineTextMetrics函式並檢查OUTLINETEXTMETRIC結構的otmfsType成員來判斷授權狀態。 如果 已設定 otmfsType 的位 1,則字型不允許內嵌。 如果位 1 清楚,字型可以內嵌。 如果設定位 2,則內嵌是唯讀的。

若要內嵌 TrueType 字型,應用程式可以使用 GetFontData 函式來讀取字型檔案。 將GetFontDatadwTabledwOffset參數設定為 0L,並將 cbData參數設定為 1L 可確保應用程式從頭讀取整個字型檔案。

根據字元寬度和字型資料所在的位置,有數個函式可用來內嵌 OpenType 字型。 若要內嵌位於裝置內容中的 OpenType Unicode 字型,應用程式可以使用 TTEmbedFont。 若要內嵌位於裝置內容中的 OpenType UCS-4 字型,應用程式可以使用 TTEmbedFontEx。 若要內嵌位於字型檔案中的 OpenType Unicode 字型,應用程式可以使用 TTEmbedFontFromFile。 如需 OpenType 字型內嵌的其他資訊,請參閱 字型內嵌參考

應用程式擷取字型資料之後,可以使用任何適用的格式,將資料與檔一起儲存。 大部分的應用程式都會在檔中建置字型目錄,列出內嵌字型,以及內嵌是可讀寫還是唯讀的。 應用程式可以使用OUTLINETEXTMETRIC結構的otmpStyleNameotmFamilyName成員來識別字型。

如果已為內嵌字型設定唯讀位,應用程式必須先加密字型資料,才能將它與檔一起儲存。 加密方法不需要複雜;例如,使用 XOR 運算子結合字型資料與應用程式定義的常數是足夠且快速的。