將 HTML 網頁轉換為 PDF 是常見需求(報表、發票、存證)。PHP 生態中主流方案有純 PHP 庫 mPDF 和基於 WebKit 渲染引擎的 wkhtmltopdf。本文詳細對比兩者安裝、使用、優缺點及中文支持方案。
PHP 調用示例
apt-get install fonts-wqy-zenhei),HTML 指定 font-family: "WenQuanYi Zen Hei"。javascript-delay、no-stop-slow-scripts 選項。shell_exec 權限:PHP 必須有執行二進制權限,禁用 disable_functions 中移除 shell_exec。| 維度 | mPDF | wkhtmltopdf |
|---|---|---|
| 依賴 | 純 PHP,Composer 安裝 | 系統二進制,需服務器權限 |
| CSS/JS 支持 | 基礎 CSS,無 JS | 完整現代 Web 標準 |
| 中文支持 | 內置字體,開箱即用 | 需安裝系統字體配置 |
| 渲染保真度 | 中等 | 極高(WebKit 引擎) |
| 性能/內存 | 大文檔佔用高 | 進程隔離,PHP 內存穩定 |
| 適用場景 | 簡單報表、共享主機、快速開發 | 複雜發票、圖表、高保真打印、生產環境 |
現代最佳方案:使用 chrome-php/chrome 或 spatie/browsershot 驅動 Headless Chrome,完美支持所有 Web 技術,性能優於 wkhtmltopdf,積極維護中。