OA 系统、法务平台都需要把合同内容导出成规范的 PDF:要有页眉页脚、条款分页、最后的签字盖章区。dompdf.js 把这些全在前端搞定,不需要后端渲染服务,合同内容即时生成、即时下载。
正式合同对排版有硬性要求:页边距、条款编号、页脚页码、签字区域。
dompdf.js 支持 @page 分页媒体属性,可精确控制页边距、页眉页脚和页码。
条款较多时自动分页,每页保持页脚页码连续,排版专业。
const contractHTML = `
<style>
@page { margin: 25mm 20mm; }
.clause { margin-bottom: 12px; }
</style>
<h2 style="text-align:center">软件服务合同</h2>
<p class="clause"><b>第一条</b> 服务范围:...(条款内容)</p>
<p class="clause"><b>第二条</b> 付款方式:...</p>
<div style="margin-top:80px;text-align:center">
<img src="/seal.png" width="120">
<p>甲方签章:____ 乙方签章:____</p>
</div>`;
const pdf = new DomPDF();
pdf.addPage(contractHTML, { format: 'A4' });
pdf.save('contract.pdf');
电子签章就是一张透明 PNG,直接放在签字区域即可。
合同模板可以预存为 HTML 字符串,动态填充条款内容。
生成的 PDF 为矢量格式,签章清晰不模糊。
下面的按钮用 dompdf.js 在浏览器端实时生成 PDF,无需后端:
这是由 dompdf.js 渲染的示例 PDF 内容。