在node中使用pdfkit.js以任何语言呈现文本
Using pdfkit in node.js to render text in any language
我正在使用pdfkit在nodewebkit应用程序中动态生成PDF文档。PDF 包含通过 HTTP 请求来自远程源的用户评论。
它的效果非常好,但是现在我发现当评论是日语、中文、阿拉伯语等时,它无法正确呈现,而且我无法知道评论会用什么语言出现——事实上,我是从世界各地收集的。
我明白我需要使用正确的字体,应该包含适当的字符,如此处所述。我发现了这个"google noto"开放字体,它拥有一切,但问题是没有适用于所有语言的单一 TTF 文件,并且不可能有,因为字体文件仅限于 65K 字形。
我正在尝试找到一种解决方案,该解决方案允许使用 pdfkit 在 PDF 中(几乎)以任何语言呈现文本,而无需编写复杂的语言识别工具,我认为这是一种矫枉过正。
任何想法和建议将不胜感激。
更新:使用pdfkit作者的字体管理器来替换字体。另外,您可能还想尝试phantomJS——不过我还没有这样做。如果您有相同的问题,请参阅评论中@levi的详细回复。希望对您有所帮助。
这里有一个想法。下载最流行语言的所有字体。将它们添加到列表中,并按最受欢迎的方式进行排序。对于每个注释,获取字符串中 n 个随机字符的 unicode 值。对于每个字符,如果代码> 127(ASCII 范围)注释可能不是英语。使用 opentype.js
,逐个解析字体文件,对于每种字体,检查 cmap 表是否存在所有采样字符代码的字形。如果有,则选择该字体,并在 unicode 代码到字体之间缓存映射。否则,请尝试下一个字体。
经过进一步考虑,似乎TTF文件通过UnicodeRange字段提供了有关它们支持的Unicode范围的信息。因此,也许您可以在每种字体和它支持的 unicode 范围之间构建一个映射,并使用它来选择正确的字体,而不是在运行时解析每种字体。
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- 是否可以用javascript或任何脚本语言在浏览器或扬声器中录制播放的声音
- 任何Java对脚本语言语法的支持,类似于Foobar2000:标题格式参考
- 是否可以在不使用任何 severside 脚本语言的情况下将图像上传到服务器文件夹
- 在node中使用pdfkit.js以任何语言呈现文本
- 是否可以使用 PHP 或 JavaScript 或任何其他编程语言在客户端计算机中存储大约 1 MB 的数据
- 在Javascript中使用MVC,没有任何服务器端语言
- 任何语言中小写的Javascript测试字符串
- 需要忽略值中是否有任何单引号字符来自表达式语言,而不会破坏 JavaScript 代码
- 需要每种字体支持的语言列表.是否有任何开源字体库或数据库列出它们
- 具有表格生成功能的任何标记语言的编辑器
- 使用Javascript(或任何其他语言)进行浏览器/选项卡关闭检测
- 当我选择英语以外的任何其他语言时,无法在ckeditor中键入任何语言,只显示英文字母
- 如何使用javascript或任何其他限定语言替换特定元素中的文本
- HTML可以与JavaScript以外的任何其他语言一起使用吗
- 用PHP或任何其他语言上传巨大的文件
- 除了 JavaScript 之外,是否有任何其他语言在大括号开始位置(同一行和下一行)之间有区别
- 有没有一种简单的方法可以从 JavaScript 或任何其他编程语言中的数组中进行随机选择
- 有没有一种方法可以捕获浏览器'使用Javascript或任何其他网络语言的音频
- 有没有任何方法可以在没有服务器端语言的情况下直接将照片上传到picasa网络相册