pdfmake 生成pdf 下载 引入中文字体
第一步:
网上下载字体文件 我用的微软雅黑如:msyh.ttf 注意必须是 *.ttf后缀的
第二步:
打开项目的node_modules->pdfmake
创建/examples/fonts 文件夹,
把字体库拷贝到examples/fonts
然后在目录node_modules->pdfmake里
cmd执行 node build-vfs.js "./examples/fonts"
结束后,会发现 pdfmake/build/vfs_fonts.js 文件变的很大,打开里面多了一行
说明安装成功,开始使用
第三步:
import * as pdfMake from 'pdfmake/build/pdfmake';
import * as pdfFonts from 'pdfmake/build/vfs_fonts';
pdfMake.vfs = pdfFonts.pdfMake.vfs;
pdfMake.fonts = {
msyh: {
normal: 'msyh2.ttf',
bold: 'msyh2.ttf',
italics: 'msyh2.ttf',
bolditalics: 'msyh2.ttf',
},
};
export const exportPdf = async (res: any, filename: string, cont: any) => {
const documentDefinition = {
pageSize: 'A4',
content: [cont, 'FDS'],
defaultStyle: {
font: 'msyh',
},
styles: {
cover: {
fontSize: 32,
alignment: 'center',
color: '#4472C4',
margin: [0, 180, 0, 0],
},
tableExample: {
fontSize: 12,
alignment: 'center',
},
header: {
bold: true,
margin: [0, 4, 0, 0],
},
},
};
const pdf = pdfMake.createPdf(documentDefinition);
pdf.getBase64((data) => {
res.writeHead(200, {
'Content-Type': 'application/pdf',
'Content-Disposition': `attachment;filename=${filename}.pdf`,
});
const buffer = Buffer.from(data.toString('utf-8'), 'base64');
res.end(buffer);
});
};