【发布时间】:2020-12-03 22:05:21
【问题描述】:
我正在尝试使用 jsPDF 生成可以处理每种语言的 PDF。这里的问题是我无法将字体添加到 jsPDF。
这就是我所做的。
-
从Google Noto Fonts 获得字体(到目前为止,我尝试使用 NotoSans 常规和 NotoSerif 常规)
-
使用不同的转换器以多种方式转换 .ttf 文件,但主要是Github documentation 中推荐的一种 这是他们的fontconverter。
-
修改文件导出字体如下:
export const Noto = '[Encoded string]';并保存为NotoSerif-Regular-normal.js -
在我的 Vue 文件中添加了导入。
import Noto from "@/fonts/Noto/NotoSerif-Regular-normal.js"; -
将字体添加到 jsPDF。
doc.addFileToVFS("Noto.ttf", Noto); doc.addFont("Noto.ttf", "Noto", "normal"); doc.setFont("Noto", "normal"); doc.setFontSize(16);
但是当我尝试创建 PDF 时,我收到以下错误:
jsPDF PubSub Error Font does not exist in vFS, import fonts or remove declaration doc.addFont('Noto.ttf').
Error: Font does not exist in vFS, import fonts or remove declaration doc.addFont('Noto.ttf').
知道发生了什么吗?我已经尝试过 jsPDF 和 jsPDF.Debug,但它们无法使用这种字体。
【问题讨论】:
标签: node.js vue.js jspdf custom-font