前言
標楷體的 Word 文件中有些 Unicode 透過 Aspose.Words 另存成 PDF 時,該字會變成”空白字”,
例如 U+2FA6(⾦) 這個字,可是在 Word 中明明可以正常顯示。
我們可以參考 有些字透過 Aspose.Words 讀取 Word 檔,另存成 PDF 後,會變成空白框(square box)是變成 空白字 將 Word 內容轉成 「Microsoft YaHei」字型後,
再另存成 PDF 就可以解決 U+2FA6(⾦) 無法在 PDF 中顯示的問題。
但是,如果我的字型一定要**標楷體(DFKai-SB)**,要怎麼辦呢?
解法
測試的 C# 程式如下(請先加入 Aspose.Words 套件),
1 | var docxPath = @"c:\temp\h2docx.docx"; |
將字型全改成**標楷體(DFKai-SB)**,在 PDF 中還是變成一個空白,
查看 Unicode characters supported by the 標楷體 font ,
裡面的確找不到 ⾦,
所以要找到有包含 ⾦ 的字型檔案,
同時要像 標楷體(DFKai-SB) 的字型。
…
後來筆者找到了 CNS11643 中文標準交換碼全字庫,
裡面就包含了 全字庫正楷體(TW-Kai-98_1.ttf),就跟 標楷體(DFKai-SB) 長的蠻像的。
下載 ZIP 檔案後,解壓縮後,開啟 Open_Data\Fonts 目錄,
DBClick TW-Kai-98_1.ttf ,按下 「安裝(I)」 將字型安裝到系統之中。
在 Word 中, Copy 一份內容,改用 全字庫正楷體 來比較一下,
可以發現跟**標楷體(DFKai-SB)**差不多,而且在 PDF 中也可以正常顯示 ⾦,
測試程式如下,
1 | var docxPath = @"c:\temp\h2docx.docx"; |
即然使用全字庫正楷體字型另存成 PDF 沒問題,那就將 Word 所有文字的字體改成 全字庫正楷體 ,再另存就可以了。
1 | var docxPath = @"c:\temp\h2docx.docx"; |
參考資源
有些字透過 Aspose.Words 讀取 Word 檔,另存成 PDF 後,會變成空白框(square box)是變成 空白字
CNS11643 中文標準交換碼全字庫