Noto 字体无法使用 Vue 与 jsPDF 一起使用
Noto Font not working with jsPDF using Vue
我正在尝试生成一个可以使用 jsPDF 处理所有语言的 PDF。这里的问题是我无法将字体添加到jsPDF。
这就是我所做的。
从 Google Noto Fonts 获取字体(到目前为止,我尝试使用 NotoSans regular 和 NotoSerif Regular)
使用不同的转换器以多种方式转换 .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,但它们无法使用这种字体。
最后,我不得不做一些改变来实现这一点。首先,font converter was not working properly for me. I had to use this Base64 Converter
这解决了我的第一个问题。
我遇到的第二个问题是导入中缺少大括号,所以我这样编辑它:
import { Noto } from "@/fonts/Noto/NotoSerif-Regular-normal.js";
这完全解决了我的问题。
我正在尝试生成一个可以使用 jsPDF 处理所有语言的 PDF。这里的问题是我无法将字体添加到jsPDF。
这就是我所做的。
从 Google Noto Fonts 获取字体(到目前为止,我尝试使用 NotoSans regular 和 NotoSerif Regular)
使用不同的转换器以多种方式转换 .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,但它们无法使用这种字体。
最后,我不得不做一些改变来实现这一点。首先,font converter was not working properly for me. I had to use this Base64 Converter 这解决了我的第一个问题。
我遇到的第二个问题是导入中缺少大括号,所以我这样编辑它:
import { Noto } from "@/fonts/Noto/NotoSerif-Regular-normal.js";
这完全解决了我的问题。