你的問題是NotoSans-Regular.ttf沒有你要找的所有字符。它只有西里爾文,希臘文,拉丁文字符:
南非荷蘭語,Aghem,阿寒湖,阿爾巴尼亞,亞利桑那州立大學,阿塞拜疆,銀行法,班巴拉語, Basaa,巴斯克,白俄羅斯,本巴,笨啊,波斯尼亞語,布列塔尼語,保加利亞語, 加泰羅尼亞,中央阿特拉斯柏柏爾語,Chiga,Colognian,康沃爾,克羅地亞語, 捷克語,丹麥語,Duala,荷蘭,恩布,英語,世界語,愛沙尼亞語,埃維, Ewondo,法羅羣島,菲律賓語,芬蘭語,法語,弗留利,富拉語,加利西亞語, Ganda,德國,希臘,古西,豪薩,夏威夷,匈牙利,冰島, 伊博,印度尼西亞,愛爾蘭,意大利,Jola-Fonyi,Kabuverdianu,Kabyle, Kalaallisut,Kalenjin,Kamba,哈薩克斯坦,基庫尤,基亞爾萬達,KoyraChiini,Koyraboro森妮,Kwasio,吉爾吉斯,Langi,拉脫維亞語,林加拉語, 立陶宛,盧巴 - 加丹加,羅,Luyia,馬其頓語,Machame, Makhuwa-Meetto,馬孔德,馬達加斯加,馬來西亞,馬耳他,馬恩島,馬賽,梅魯, 蒙古,Morisyen,Mundang,那抹,北恩德貝勒語,北薩米, 挪威語,挪威尼諾斯克文,努爾,Nyankole,奧羅莫,波蘭語, 葡萄牙語,羅馬尼亞語,凱萊,隆迪語,俄語,RWA,薩哈,桑布魯, 三鄉, Sangu,塞納,塞爾維亞,Shambala,紹納,斯洛伐克,斯洛文尼亞,索加, 索馬里,西班牙語,斯瓦希里語,瑞典語,瑞士德語,泰塔語,塔吉克語, Tasawaq,特索,湯加,土耳其,烏克蘭,烏茲別克語,越南語,Vunjo, Walser,威爾士人,揚本人,約魯巴人,Zarma人,祖魯人
您需要使用所有正在使用的語言加載Noto-San。
克隆北約到項目目錄:
git clone [email protected]:googlei18n/noto-fonts.git
如果你需要韓語,日語,還是中國克隆這些字體,以及:
git clone [email protected]:googlei18n/noto-cjk.git
現在,你有你想要的字體,使用您需要註冊他們
// Default
doc.registerFont('NotoSans', 'noto-ckj/hinted/Noto-Regular.ttf');
// Ariabic
doc.registerFont('NotoSansAR', 'noto-ckj/hinted/NotoKufiArabic-Regular.ttf');
// Chines, Korean, Japanese
doc.registerFont('NotoSansCKJ', 'noto-ckj/NotoSansCJK-Regular.ttc');
一旦你再適當字體的加載,你可以使用它們像這樣:
doc.font('NotoSans');
doc.text('English');
doc.font('NotoSansAR');
doc.text('العربية'); // Arabic
doc.font('NotoSansCKJ');
doc.text('日本語'); // Japanese
doc.text('武大郎'); // Chinese
doc.text('한국어'); // Korean
doc.font('NotoSans');
doc.text('русский'); // Russian
doc.text('ελληνικά'); // Greek
要小心,你不加載太多的字體到您的PDF,因爲他們會添加到您的文檔的整體規模。你可以考慮使用像Franc這樣的庫在加載它們之前找出你需要的字體。
P.S.我注意到,當使用不受限制的(而不是暗示)時,我看到了一些與你相同的結果。 這是來自[Google搜索樣式指南](https://material.google.com/style/typography.html#typography-typeface):「提示是嵌入字體中關於如何修改(扭曲)字形在低分辨率顯示器上看起來更好,作爲一種折衷,暗示字體消耗的空間要比無泄漏版本更多。「 – jwerre
這是有道理的,但我仍然困惑,因爲如果我刪除所有其他語言,即使英文文本不起作用。感謝Franc鏈接,我會檢查它,看看我是否可以用於動態語言(我不知道我將要打印什麼語言) – jasalguero
如果你克隆上面提到的git repo,你會注意到子目錄: 「hinted」和「unhinted」確保你使用了字體的「暗示」版本。我遇到了同樣的問題,就是「不願意」。 – jwerre