pdfmake 在服务器端安装中日韩、阿拉伯语和其他外语的自定义字体



我正在使用PDFMake在NodeJS 12的服务器端生成PDF。

PDF 呈现的文本混合了英语和外语字符。PDF 正常工作,但是,没有一个外语字符正确呈现。我做了一些研究,看起来我需要安装一种可以处理外语字符的自定义字体。

我按照这里接受的答案在服务器端安装了Google NotoSans字体。

如何在 Node 上创建 PDF.js使用 PDFMake 和 vfs_fonts?

fonts = {
NotoSans: {
normal: path.join(__dirname, '..', 'public', 'fonts/NotoSans-unhinted/NotoSans-Black.ttf'),
bold: path.join(__dirname, '..', 'public', 'fonts/NotoSans-unhinted/NotoSans-Bold.ttf'),
italics: path.join(__dirname, '..', 'public','fonts/NotoSans-unhinted/NotoSans-BlackItalic.ttf'),
bolditalics: path.join(__dirname, '..', 'public','fonts/NotoSans-unhinted/NotoSans-BoldItalic.ttf'),
},
}

字体安装正确(所有英文字符都正确显示在此字体中(。但是,中文和其他外语字符不起作用(它们只是显示为空矩形(。

我可以采取哪些其他故障排除步骤来解决此问题?谢谢!

更新:我安装的字体实际上并不支持我需要的所有语言,是否有支持它的字体?还是我需要找到一种方法将多种字体组合成一种字体?

您必须检查字体的语言支持!

Noto Sans没有中文和阿拉伯语支持。 文档

您可以检测内容的语言并重定向到正确的字体:Noto 字体列表或使用具有广泛语言支持的字体,如 Unicode 字体

如果您使用 Arial Unicode MS 作为@gmazoni segust,您将同时获得所有语言字符。 使用pdfmake文档中的过程,您可以从此处下载字体

最新更新