gpt4 book ai didi

javascript - 在 node.js 中使用 pdfkit 以任何语言呈现文本

转载 作者:搜寻专家 更新时间:2023-11-01 00:01:46 25 4
gpt4 key购买 nike

我正在使用 pdfkit 在 nodewebkit 应用程序中动态生成 PDF 文档。这些 PDF 包含通过 HTTP 请求从远程来源获得的人们的评论。

它工作得很好,但是现在我发现当评论是日语、中文、阿拉伯语等时,它无法正确呈现,而且我无法知道评论将使用哪种语言——在事实上,我正在从世界各地收集它们。

我知道我需要使用正确的字体,应该包含正确的字符,如解释的那样 here .我发现了这个包含所有内容的“google noto”开放字体,但问题是没有包含所有语言的单一 TTF 文件,而且不可能有,因为字体文件限制为 65K 字形。

我正在尝试找到一种解决方案,允许使用 pdfkit 在 PDF 中以(几乎)任何语言呈现文本,而不必编写复杂的语言识别工具,我认为这太过分了。

任何想法和建议将不胜感激。

更新:使用font-manager由 pdfkit 的作者替换字体。你也可能想试试 phantomJS——不过我还没试过。如果您有同样的问题,请在评论中查看@levi 的详细回复。希望对您有所帮助。

最佳答案

这是一个想法。下载最流行语言的所有字体。将它们添加到列表中,并按最受欢迎的方式排序。对于每个评论,获取字符串中 n 个随机字符的 unicode 值。对于每个字符,如果代码 > 127(ASCII 范围)注释可能不是英文。使用opentype.js,一个一个解析字体文件,foreach字体,检查cmap表中是否存在所有采样字符代码的字形。如果有,则选择该字体,并缓存 unicode 代码到字体之间的映射。否则,尝试下一种字体。

经过进一步考虑,TTF 文件似乎通过 UnicodeRange 提供了它们支持的 unicode 范围的信息。 field 。因此,也许您可​​以在每种字体和它支持的 unicode 范围之间建立一个映射,并使用它来选择正确的字体,而不是在运行时解析每种字体。

关于javascript - 在 node.js 中使用 pdfkit 以任何语言呈现文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27649435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com