JSPDF 中文乱码
引用自 https://www.hangge.com/blog/cache/detail_2207.html
1,问题描述
(1)如果添加的文字中包含有中文(汉字),我们会发现生成的 pdf 文件时,里面中文部分就会变成乱码:
(2)这是由于 jsPDF 默认是不支持中文的。我们可以通过手动引入中文字体,解决了导出 pdf 后中文字体显示乱码的问题。
2,操作步骤
(1)首先访问下方地址,将 jsPDF-CustomFonts-support 这个 jsPDF 的字体扩展库以及字体下载到本地,并放到项目文件夹中:
(2)接着将 jspdf.customfonts.min.js 和 default_vfs.js 这两个 js 引入进来。
1
2
|
< script src = "jspdf.customfonts.min.js" ></ script > < script src = "default_vfs.js" ></ script > |
(3)最后在代码中将中文字体添加并设置使用即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<!DOCTYPE html> <html> <head> <meta charset= "utf-8" > <title></title> <script src= "jspdf.min.js" charset= "utf-8" ></script> <script src= "jspdf.customfonts.min.js" ></script> <script src= "default_vfs.js" ></script> <script type= "text/javascript" > //页面初始化 function init() { var doc = new jsPDF(); //添加并设置字体 doc.addFont( 'NotoSansCJKtc-Regular.ttf' , 'NotoSansCJKtc' , 'normal' ); doc.setFont( 'NotoSansCJKtc' ); doc.text(20, 20, '欢迎访问 hangge.com' ); doc.save( 'Test.pdf' ); } </script> </head> <body onload= "init()" > </body> </html> |
原文出自:www.hangge.com 转载请保留原文链接:https://www.hangge.com/blog/cache/detail_2207.html