您的问题是 NotoSans-Regular.ttf 没有您要查找的所有字符。它只有西里尔文、希腊文、拉丁文字符:
南非荷兰语、阿格姆语、阿坎语、阿尔巴尼亚语、阿苏语、阿塞拜疆语、巴菲亚语、班巴拉语、巴萨阿、巴斯克语、白俄罗斯语、本巴语、贝纳语、波斯尼亚语、布列塔尼语、保加利亚语、加泰罗尼亚语、中阿特拉斯语、塔马兹特语、奇加语、科隆语、康沃尔语、克罗地亚语、捷克语、丹麦语、 Duala, 荷兰语, Embu, 英语, 世界语, 爱沙尼亚语, 母羊, Ewondo, 法罗语, 菲律宾语, 芬兰语, 法语, 弗留利语, Fulah, 加利西亚语, 甘达语, 德语, 希腊语, Gusii, 豪萨语, 夏威夷语, 匈牙利语, 冰岛语, 伊博语, 印度尼西亚语,爱尔兰语、意大利语、Jola-Fonyi、Kabuverdianu、Kabyle、Kalaallisut、Kalenjin、Kamba、哈萨克语、Kikuyu、Kinyarwanda、Koyra Chiini、Koyraboro Senni、Kwasio、吉尔吉斯语、Langi、拉脱维亚语、林加拉语、立陶宛语、Luba-Katanga、Luo、Luyia、马其顿语、Machame、Makhuwa-Meetto、Makonde、马达加斯加语、马来语、马耳他语、Manx、Masai、Meru、蒙古语、Morisyen、Mundang、Nama、North Ndebele、Northern Sami、Norwegian Bokmål、挪威尼诺斯克语、努尔语、Nyankole、奥罗莫语、波兰语、葡萄牙语、罗马尼亚语、Rombo、Rundi、俄语、Rwa、萨哈语、桑布鲁语、桑戈语、桑古语、塞纳语、塞尔维亚语、香巴拉语、绍纳语、斯洛伐克语、斯洛文尼亚语、索加语、索马里语、西班牙语、斯瓦希里语, 瑞典语, 瑞士德语, Taita, 塔吉克语, Tasawaq, Teso, 汤加语, 土耳其语, 乌克兰语, 乌兹别克语, 越南语, Vunjo, Walser, 威尔士语, Yangben, Yoruba, Zarma, Zulu
您需要以您使用的所有语言加载 Noto-San。
将 nato 克隆到您的项目目录中:
git clone git@github.com:googlei18n/noto-fonts.git
如果您还需要韩文、日文或中文,请克隆这些字体:
git clone git@github.com: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这样的库来确定在加载它们之前需要哪些字体。