引用自 https://www.hangge.com/blog/cache/detail_2207.htmljavascript
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.htmlhtml