我们希望通过HTML创建动态生成的PDF-但我们也想为每个生成的页面使用现有的模板。
通过FPDI
使用模板很简单:
// Generate the FPDI instance
$pdf = new \setasign\Fpdi\Tcpdf\Fpdi(…);
// Add the first page
$pdf->AddPage();
// Load the template
$pagecount = $pdf->setSourceFile('template.pdf');
$tpl = $pdf->importPage(1);
$pdf->useTemplate($tpl);
// Write the HTML
$pdf->writeHTML($html, true, 0, true, 0);
但是,当编写的HTML导致自动换行时,后续页面将不使用模板。
由于由于动态生成的HTML,我无法事先知道将生成多少个页面-我该如何指示TCPDF / FPDI自动将给定的模板用于所有页面?与mPDF SetDocTemplate
函数类似,您可以在其中定义应根据需要重复模板的最后一页。
tecnickcom/tcpdf
版本6.2.26
setasign/fpdi
版本2.2.0
答案 0 :(得分:1)
我遇到了同样的问题。就我而言,使用xFPDF包。 (但对于普通的FPDI应该相同。)
我通过头函数添加模板来解决它。 http://www.fpdf.org/en/doc/header.htm 对我来说,这是在每个生成的页面上添加徽标和页面标题。因此,此功能用于每个生成的页面。我只是将模板代码移到了header函数else的开头,例如在我的情况下,徽标和文本不会显示在header中。
class PDF extends XFPDF_CORE
{
function Header()
{
$pagesource = $this->setSourceFile('pdftemplate/preview-test.pdf');
$pageimport = $this->importPage($pagesource);
$this->useTemplate($pageimport);
...
}
...
}
$pdf->new PDF();
...
$pdf->AddPage();
...
$pdf->writeHTML($multipagecoveringhtml);
...
希望这对您的项目仍然有帮助。