我就像一个哑巴一样
今天分享一下完美解决jsPDF生成pdf出现乱码的问题,包括文本,表格表头已经表格内部出现乱码的问题~
首先老规矩把代码clone
下来 git clone https://github.com/MrRio/jsPDF.git 复制代码
然后打开文件根目录会看到一个fontconverter
的文件夹
name
最好要填中文!然后会生成一个js文件,然后你需要把这个js文件复制到你前端文件的static静态资源目录下,并且在页面上引用。 TIP:最好按照我下图的顺序引入,不然又可能会出现问题~ 然后你只需要 doc.setFont('msyh') 复制代码
其实这个时候pdf内部的文本和表格内的中文都应该会正常显示了,但是表头还是出现了乱码,
因此我就去翻了下jspdf-autotable
的js源码,代码如下 其实重点就是图中标红的地方,当你选择 table
的主题为 grid
的时候,它默认 header
那里的 fontStyle
是 bold
,如果你把这里改成 normal
然后再重新生成pdf就会发现中文也正常了~ 问题就这样迎刃而解了~心情大好有木有!