Ale*_*tny 5 javascript pdf encoding node.js node-pdfkit
我正在使用 pdfkit 在 nodewebkit 应用程序中动态生成 PDF 文档。PDF 包含通过 HTTP 请求来自远程源的人们的评论。
\n\n它工作得很好,但是现在我发现当评论是日语、中文、阿拉伯语等时,它无法正确呈现,而且我无法知道评论将以什么语言出现\xe2\x80 \x94事实上,我正在从世界各地收集它们。
\n\n我知道我需要使用正确的字体,其中应该包含正确的字符,如此处所述。我发现这个“google noto”开放字体拥有一切,但问题是没有一个包含所有语言的 TTF 文件,而且也不可能存在,因为字体文件仅限于 65K 字形。
\n\n我正在尝试找到一种解决方案,可以使用 pdfkit 以(几乎)任何语言呈现 PDF 中的文本,而无需编写复杂的语言识别工具,我认为这有点过分了。
\n\n任何想法和建议将不胜感激。
\n\n更新:使用pdfkit 作者的font-manager来替换字体。另外你可能想尝试 phantomJS\xe2\x80\x94 但我还没有这样做。如果您遇到同样的问题,请参阅评论中 @levi 的详细回复。希望能帮助到你。
\n这是一个想法。下载最流行语言的所有字体。将它们添加到列表中,并按最受欢迎的顺序对其进行排序。对于每个注释,获取字符串中 n 个随机字符的 unicode 值。对于每个字符,如果代码 > 127(ASCII 范围),注释可能不是英文。使用opentype.js,对字体文件进行一一解析,对于每个字体,检查cmap表中是否存在所有采样的字符代码的字形。如果存在,则选择该字体,并缓存 unicode 代码到字体之间的映射。否则,请尝试下一个字体。
经过进一步考虑,TTF 文件似乎通过 UnicodeRange字段提供了有关它们支持的 unicode 范围的信息。因此,也许您可以在每种字体与其支持的 unicode 范围之间构建映射,并使用它来选择正确的字体,而不是在运行时解析每种字体。
| 归档时间: |
|
| 查看次数: |
3346 次 |
| 最近记录: |