1.安装jspdf
npm install jspdf --save
2.下载ttf格式文件
也可以用C:\Windows\Fonts下的字体文件,反正调一个需要的ttf字体文件就行,但有的字体存在部分字体乱码现象
微软雅黑ttf下载地址:
FontsMarket.com - Download Microsoft YaHei font for FREE
3.将ttf格式文件转为js格式
在线的网站,font-style选择normal
rawgit.com/MrRio/jsPDF/master/fontconverter/fontconverter.html
4.拷贝生成js文件里的字符串内容到自己的js文件
新建一个js文件:
export function addfont(pdf) {
var font = ''// 粘贴的内容
pdf.addFileToVFS('yahei', font) // 这里填一个字体文件注册名称
return true;
}
5.在使用pdf导出的vue里引入创建的js
import { addfont } from '../../../assets/custom-theme/fonts/font2'
exportFile(command) {
// 创建jsPDF实例
// eslint-disable-next-line new-cap
const doc = new jsPDF()
// 使用之前创建的js里的方法,会将字体文件添加到jsPDF实例中
addfont(doc)
// 这里名称和之前对上就行
doc.addFont('yahei', 'yahei', 'normal')
// 使用字体时,使用这句即可
doc.setFont('yahei')
const reportTitle = '测试内容\n' +
'换行测试\n' +
'换行测试'
// 设置自动换行
const splitTitle = doc.splitTextToSize(reportTitle, 190)
// 添加文本内容,两个参数是开始的x和y坐标
doc.text(splitTitle, 10, 10)
// 保存PDF文件,会直接弹出下载
doc.save('test.pdf')
},
详情:JSPDF支持中文(思源黑体)采坑之旅,JSPDF中文字体乱码解决方案 - 有蚊子 - 博客园 (cnblogs.com)