admin管理员组文章数量:1594754
jspdf 中文乱码、支持中文的解决方案,支持中文、日语、韩语等…
默认情况下,jspdf 只支持 ASCII-codepage 编码,如果用了中文就会导致出现乱码,jspdf 虽然不支持中文字体,但是支持添加字体库,那么我们就可以通过设置字体库来彻底解决中文乱码的问题。
<script src="https://cdn.jsdelivr/npm/jspdf"></script>
var doc = new jsPDF();
doc.text(20, 20, '简体中文、繁體体中文、English、ジャパン、한국어');
doc.save('my.pdf');
如图乱码:
这里使用了开源的思源雅黑字体,已经编译好了的,可以直接引用,当然你也可以使用其他 ttf 字体编译之后再引用就行,不过有版权的字体要注意购买授权
借助一个现成的开源库 vxe-table-plugin-export-pdf,该插件已经编译好开源的思源雅黑字体,直接将字体库放到项目中,引用即可
字体库下载路径 github
字体名称 | 文件名 |
---|---|
SourceHanSans-ExtraLight | source-han-sans-extralight.js |
SourceHanSans-Light | source-han-sans-light.js |
SourceHanSans-Normal | source-han-sans-normal.js |
SourceHanSans-Regular | source-han-sans-regular.js |
SourceHanSans-Medium | source-han-sans-medium.js |
SourceHanSans-Bold | source-han-sans-bold.js |
SourceHanSans-Heavy | source-han-sans-heavy.js |
使用方式只需两步:1.引用字体库,2.设置字体名称
<script src="https://cdn.jsdelivr/npm/jspdf"></script>
<script src="https://cdn.jsdelivr/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/6H2Kp/edit
版权声明:本文标题:jspdf 中文乱码、支持中文的解决方案,支持中文、日语、韩语等多国字体语言... 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1728203202a1149649.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论