我正在尝试创建发票凭证并以pdf格式显示这些项目。
我遇到的问题是,第一页将使用带有公司徽标,公司信息和购买物品清单的pdf模板(使用FPDI)。
如果项目列表需要多个页面,则下一页需要使用第二页pdf模板,该模板仅显示公司徽标作为标题并继续购买项目。以下是我的示例代码。我也试图根据这个SO post来扩展fpdi,但我不能让它工作。
$pdf = new FPDI();
ob_start();
echo $this->view->print_invoice($productItems, $customerInfo);
$content = ob_get_contents();
ob_clean();
// add a page
$pdf->addPage();
$pdf->writeHTML($content);
$pageCount = $pdf->setSourceFile(ROOT_DIR . "public/pdf-templates/group.pdf");
$tplIdx = $pdf->importPage(1, '/MediaBox');
$pdf->useTemplate($tplIdx, 10, 10, 190, 280);
$pdf->Output('outfile.pdf','I');
提前感谢您的帮助!
答案 0 :(得分:1)
只需在扩展类的header()方法中实现您描述的逻辑:
class PDF extends FPDI
{
public function Header()
{
if ($this->PageNo() > 1) {
$tplIdx = $this->importPage(2);
} else {
$tplIdx = $this->importPage(1);
}
$this->useTemplate($tplIdx);
}
}
ob_start();
echo $this->view->print_invoice($productItems, $customerInfo);
$content = ob_get_contents();
ob_clean();
$pdf = new PDF();
$pdf->setSourceFile(ROOT_DIR . "public/pdf-templates/group.pdf");
$pdf->addPage();
$pdf->writeHTML($content);
$pdf->Output('outfile.pdf','I');