如何在TCPDF中使用指定HTML代码创建自定义页脚
TCPDF 实现HTML格式自定义页脚方案
核心实现逻辑
TCPDF 自带的默认页脚仅支持简单文本输出,要实现HTML结构的自定义页脚,只需继承TCPDF基类,重写Footer()方法,在方法内调用writeHTML()方法渲染你提供的表格代码即可。
完整可运行示例代码
<?php // 引入TCPDF库文件,路径根据你实际项目调整 require_once('tcpdf/tcpdf.php'); // 自定义PDF类,继承TCPDF class MyTCPDF extends TCPDF { // 重写页脚方法 public function Footer() { // 设置页脚距离底部的位置(负数表示距离页面底部的毫米数,可根据需求调整) $this->SetY(-15); // 设置页脚字体,按需调整 $this->SetFont('helvetica', '', 10); // 你要渲染的页脚HTML代码 $footerHtml = <<<HTML <style> /* 可以在这里自定义页脚表格的样式 */ .tblFooter { width: 100%; border-top: 1px solid #666; font-size: 10px; } .tblFooter td { width: 33.33%; text-align: center; } </style> <table class="tblFooter" cellpadding="5"> <tr> <td> Box 1 </td> <td> Box2 </td> <td> Box3 </td> </tr> </table> HTML; // 渲染HTML内容作为页脚 $this->writeHTML($footerHtml); } } // 实例化自定义PDF类 $pdf = new MyTCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // 设置文档基础信息,按需调整 $pdf->SetCreator(PDF_CREATOR); $pdf->SetAuthor('Your Name'); $pdf->SetTitle('自定义HTML页脚示例'); $pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE.' 003', PDF_HEADER_STRING); // 关闭默认页眉(如果不需要页眉可以加这行) // $pdf->setPrintHeader(false); // 设置页眉页脚字体 $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN)); $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); // 设置默认等宽字体 $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED); // 设置边距 $pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $pdf->SetHeaderMargin(PDF_MARGIN_HEADER); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); // 设置自动分页 $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); // 设置图片缩放比例 $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO); // 新增一页 $pdf->AddPage(); // 这里写PDF主体内容,示例随便写一段 $html = '<h1>PDF主体内容</h1><p>测试自定义HTML页脚效果,多页内容也会自动在每一页底部加载自定义页脚</p>'; $pdf->writeHTML($html, true, false, true, false, ''); // 输出PDF,D是下载,I是在浏览器展示,按需调整 $pdf->Output('test_footer.pdf', 'I'); ?>
注意事项
- 页脚的样式可以直接在
<style>标签内自定义,包括边框、背景色、对齐方式、字体样式等,TCPDF支持大部分基础CSS语法 SetY(-15)的数值可以根据你的页脚高度调整,如果页脚内容多高度大,可以把数值调的更小(比如-20),同时要调整SetFooterMargin和SetAutoPageBreak的第二个参数,保证主体内容不会和页脚重叠- 如果不需要显示默认页眉,可以调用
$pdf->setPrintHeader(false)关闭默认页眉输出
内容的提问来源于stack exchange,提问作者Trombone0904
相关产品推荐
相关产品推荐

