PHP需借助tcpdf或dompdf等第三方库生成PDF:tcpdf适合程序化生成中文报表,需加载NotoSansCJK等字体;dompdf适合HTML转PDF,推荐内联样式与绝对路径图片。

PHP本身不直接生成PDF,但可以通过第三方库实现高效、灵活的PDF导出。最常用且稳定的是 tcpdf 和 dompdf,前者适合程序化生成(如发票、报表),后者更适合将HTML页面转PDF(如导出带样式的订单页)。
使用 TCPDF 生成结构化PDF(推荐用于业务单据)
TCPDF纯PHP编写,无需外部依赖,支持中文、页眉页脚、表格、条形码等,适合后台逻辑驱动的PDF生成。
- 安装:通过 Composer 安装
tecnickcom/tcpdf - 基础步骤:创建TCPDF实例 → 设置字体(如加`addTTFfont()`支持中文字体)→ 写入内容(`writeHTML()`或`Cell()`/`MultiCell()`)→ 输出(`Output('invoice.pdf', 'D')`触发下载)
- 注意:默认不支持UTF-8中文,需加载NotoSansCJK或simhei.ttf等中文字体,并用`setLanguageArray()`适配语言包
使用 Dompdf 将HTML模板转PDF(适合前端样式复用)
如果你已有带CSS的HTML订单页,Dompdf可直接渲染,开发快,但对复杂CSS和大文件性能较弱。
- 安装:
dompdf/dompdf,建议搭配phenx/php-font-lib和phenx/php-svg-lib增强字体与SVG支持 - 关键代码:读取HTML字符串或文件 → `loadHtml()` → `setPaper('A4', 'portrait')` → `render()` → `stream('order.pdf')`
- 提示:避免使用Flex/Grid布局;内联样式更可靠;图片用绝对路径或base64编码,防止缺失
常见业务场景示例:导出用户订单PDF
以TCPDF为例,后端接收订单ID,查数据库 → 组织数据 → 填入PDF模板 → 返回下载响应。
标签: css php html 前端 composer svg 编码 后端 ai pdf stream php编写 grid布
还木有评论哦,快来抢沙发吧~