jsPDF乱码

3,094 阅读1分钟

问题

image.png 上面是使用jsPDF库生成的pdf除了英文外,其它语言会乱码。这是因为官方仅限PDF中的14种标准字体仅限于ASCII字符集。文档中是这么说的:

image.png

解决

所以我们要引入第三方的字体,方法如下:

  1. 首先我们要将jsPDF项目clone下来 git clone https://github.com/parallax/jsPDF.git
  2. 打开项目中下面的网页

image.png

image.png

image.png 3. 上面fontName会在你File选择文件后自动生成,fontStyle、Module format和我一样即可。在网上下载你想要的字体文件,File必须选择你下载的字体为.ttf的文件。

image.png

image.png 4. 点击Create会生成一份.js代码。代码中上面会有一大堆生成的二进制文件、非常大,我没截全部,代码中font变量就是代表的二进制文件内容。

image.png 5. 把这个文件放大项目中,此时肯定会提示文件内容太大,非常的卡,可能还会提示文本内存溢出。我们可以把font中的二进制文件内容放到一个js文件中,然后将js文件放到OSS服务器上,每次请求服务器获取这样就避免了卡顿的问题。

image.png

image.png

image.png 6. 然后在通过setFont设置字体即可解决问题。我这里只是做了演示。

image.png

image.png