我發現我的 Postscript 檔案生成時間非常長,而且檔案大小異常大。問題在於,每次我選擇設定字體時,都會呼叫 ps_findfont(),然後再呼叫 ps_setfont()。
每次呼叫 ps_findfont() 時,字型似乎都會嵌入檔案中。為了避免這種情況,我維護一個已載入字型的陣列,以字型名稱作為鍵值。當我要設定字型時,我會先檢查這個陣列,看看是否已經載入該字型,如果是,則從該陣列返回資源控制代碼。否則,我會呼叫 ps_findfont() 並將控制代碼儲存在陣列中。
請注意,如果在頁面內呼叫 ps_findfont(),則該字型在其他頁面上將無法使用。為了避免這個問題,我在每頁結束時清除陣列。
我的 PS 檔案從 10 MB 縮減到 75 KB,建立檔案的時間也從大約 15 秒縮短到不到 1 秒。