You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在使用Headless Chrome生成PDF时添加带页码的自定义页脚

在Laravel中用Headless Chrome生成带页码自定义页脚的PDF解决方案

核心逻辑

Headless Chrome原生支持通过参数配置页眉页脚,结合Laravel常用的工具包(如spatie/browsershot)即可实现带页码的自定义页脚,关键是启用页眉页脚显示并传入自定义HTML模板。


1. 关键参数说明

必须开启displayHeaderFooter参数,通过footerTemplate传入自定义HTML模板,同时需给页面底部设置足够边距避免内容覆盖页脚。模板支持以下内置占位符:

  • {pageNumber}:当前页码
  • {totalPages}:总页数
  • {date}:当前日期
  • {time}:当前时间

2. Laravel中用Browsershot实现(推荐)

多数Laravel项目会借助spatie/browsershot包调用Headless Chrome,以下是完整代码示例:

use Spatie\Browsershot\Browsershot;

// 从HTML字符串生成PDF
$pdf = Browsershot::loadHtml('<html><body>你的PDF内容主体</body></html>')
    // 启用页眉页脚显示
    ->setOption('displayHeaderFooter', true)
    // 自定义页脚模板,支持内联CSS
    ->setOption('footerTemplate', '<div style="font-size:10px; font-family:微软雅黑; text-align:center; width:100%; padding:5px; color:#666;">第 {pageNumber} 页 / 共 {totalPages} 页</div>')
    // 给页脚预留20mm底部边距
    ->setOption('marginBottom', '20mm')
    // 保存到指定路径
    ->save(storage_path('app/public/output.pdf'));

// 直接返回给浏览器下载
return response()->download(storage_path('app/public/output.pdf'));

3. 复杂页脚布局示例

如果需要分栏显示多类信息(如公司名称、页码、日期),可扩展模板:

->setOption('footerTemplate', '
    <div style="font-size:10px; font-family:Arial; width:90%; margin:0 auto; display:flex; justify-content:space-between; color:#333;">
        <span>XX科技有限公司</span>
        <span>第 {pageNumber} 页 / 共 {totalPages} 页</span>
        <span>{date}</span>
    </div>
')

4. 直接调用Chrome命令行(无工具包场景)

若项目未使用工具包,可直接执行Chrome命令:

chrome --headless --disable-gpu --print-to-pdf="/path/to/output.pdf" \
--display-header-footer \
--footer-template="<div style='text-align:center; font-size:10px;'>第 {pageNumber} 页,共 {totalPages} 页</div>" \
--margin-bottom=20mm \
"/path/to/input.html"

常见问题排查

  • 页脚不显示:检查是否开启displayHeaderFooter,确认marginBottom设置足够,模板HTML标签是否闭合
  • 样式失效:模板内必须使用内联CSS,无法引用外部样式表
  • 占位符无效:确保占位符名称拼写正确(区分大小写)

内容的提问来源于stack exchange,提问作者Nima Patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:55:18