jspdf 中文乱码、支持中文的解决方案,支持中文、日语、韩语等多国字体语言...

jspdf 中文乱码、支持中文的解决方案,支持中文、日语、韩语等…

默认情况下,jspdf 只支持 ASCII-codepage 编码,如果用了中文就会导致出现乱码,jspdf 虽然不支持中文字体,但是支持添加字体库,那么我们就可以通过设置字体库来彻底解决中文乱码的问题。

<script src="https://cdn.jsdelivr.net/npm/jspdf"></script>
var doc = new jsPDF();
doc.text(20, 20, '简体中文、繁體体中文、English、ジャパン、한국어');
doc.save('my.pdf');

如图乱码:
在这里插入图片描述
这里使用了开源的思源雅黑字体,已经编译好了的,可以直接引用,当然你也可以使用其他 ttf 字体编译之后再引用就行,不过有版权的字体要注意购买授权

借助一个现成的开源库 vxe-table-plugin-export-pdf,该插件已经编译好开源的思源雅黑字体,直接将字体库放到项目中,引用即可
字体库下载路径 github

字体名称文件名
SourceHanSans-ExtraLightsource-han-sans-extralight.js
SourceHanSans-Lightsource-han-sans-light.js
SourceHanSans-Normalsource-han-sans-normal.js
SourceHanSans-Regularsource-han-sans-regular.js
SourceHanSans-Mediumsource-han-sans-medium.js
SourceHanSans-Boldsource-han-sans-bold.js
SourceHanSans-Heavysource-han-sans-heavy.js

使用方式只需两步:1.引用字体库,2.设置字体名称

<script src="https://cdn.jsdelivr.net/npm/jspdf"></script>
<script src="https://cdn.jsdelivr.net/npm/vxe-table-plugin-export-pdf/fonts/source-han-sans-normal.js"></script>
var doc = new jsPDF();
// 添加并设置字体
doc.addFont('SourceHanSans-Normal.ttf', 'SourceHanSans-Normal', 'normal');
doc.setFont('SourceHanSans-Normal');
doc.text(20, 20, '简体中文、繁體体中文、English、ジャパン、한국어');
doc.save('my.pdf');

设置完字体之后,完美显示中文了
在这里插入图片描述

在线运行 http://jsrun.net/6H2Kp/edit

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值