完美解决jspdf各种中文乱码问题

15,690 阅读1分钟

我就像一个哑巴一样

今天分享一下完美解决jsPDF生成pdf出现乱码的问题,包括文本,表格表头已经表格内部出现乱码的问题~
首先老规矩把代码clone下来

git clone https://github.com/MrRio/jsPDF.git

然后打开文件根目录会看到一个fontconverter的文件夹

打开里面的html文件,然后把选择你的本地文件,填上name最好要填中文!然后会生成一个js文件,然后你需要把这个js文件复制到你前端文件的static静态资源目录下,并且在页面上引用。

TIP:最好按照我下图的顺序引入,不然又可能会出现问题~

然后你只需要

doc.setFont('msyh')

其实这个时候pdf内部的文本和表格内的中文都应该会正常显示了,但是表头还是出现了乱码,

因此我就去翻了下jspdf-autotable的js源码,代码如下

其实重点就是图中标红的地方,当你选择table的主题为grid的时候,它默认header那里的fontStylebold,如果你把这里改成normal然后再重新生成pdf就会发现中文也正常了~

问题就这样迎刃而解了~心情大好有木有!

欢迎来关注我的公众号~