问题
上面是使用
jsPDF库生成的pdf除了英文外,其它语言会乱码。这是因为官方仅限PDF中的14种标准字体仅限于ASCII字符集。文档中是这么说的:
解决
所以我们要引入第三方的字体,方法如下:
- 首先我们要将jsPDF项目clone下来
git clone https://github.com/parallax/jsPDF.git - 打开项目中下面的网页
3. 上面fontName会在你File选择文件后自动生成,fontStyle、Module format和我一样即可。在网上下载你想要的字体文件,File必须选择你下载的字体为.ttf的文件。
4. 点击Create会生成一份.js代码。代码中上面会有一大堆生成的二进制文件、非常大,我没截全部,代码中
font变量就是代表的二进制文件内容。
5. 把这个文件放大项目中,此时肯定会提示文件内容太大,非常的卡,可能还会提示文本内存溢出。我们可以把font中的二进制文件内容放到一个js文件中,然后将js文件放到OSS服务器上,每次请求服务器获取这样就避免了卡顿的问题。
6. 然后在通过
setFont设置字体即可解决问题。我这里只是做了演示。