1,heml页面引入js
<!-- 引入PDF生成库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script src="/js/jspdf.min.js"></script>//为本地中文字体base64文件路径
2,
下载ttf格式字体,在网站File To Base64 Encoder | Convert any file | GiftOfSpeed 中转换为base编码"AAEAAAARAQAABAA"
定义到js文件jspdf.min.js中内容:
const simheiBase64 = "data:application/font-ttf;crset=utf-8;base64,AAEAAAARAQAABAA";
3,html页面调用:
// 修改查看回执按钮
actions.push('<a class="btn btn-info btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="viewReceipt(\'' + row.noticeId + '\', \'' + row.noticeTitle + '\', \'' + row.createBy + '\', \'' + row.createTime + '\')"><i class="fa fa-eye"></i>查看回执</a> ');
// 查看回执函数
function viewReceipt(noticeId, title, creator, createTime) {
const { jsPDF } = window.jspdf;
const doc = new jsPDF();
// 假设你已将 SimHei.ttf 转换为 Base64 并赋值给 simheiBase64
doc.addFont(simheiBase64, 'SimHei', 'normal');
doc.setFont('SimHei');
// 添加文本
doc.setFontSize(20);
doc.text('公告回执', 105, 20, null, null, 'center');
doc.setFontSize(12);
doc.text('公告ID: ' + noticeId, 20, 40);
doc.text('公告标题: ' + title, 20, 50);
doc.text('创建者: ' + creator, 20, 60);
doc.text('创建时间: ' + createTime, 20, 70);
doc.text('生成时间: ' + new Date().toLocaleString(), 20, 80);
// 生成 PDF 数据 URL
const pdfData = doc.output('datauristring');
// 在弹窗中显示 PDF
document.getElementById('pdfFrame').src = pdfData;
$('#pdfModal').modal('show');
}