![](/img/trans.png)
[英]Need help on FPDI & TCPDF: page 1 of output pdf will use the first page of the template, the next pages will use the second page of the template
[英]TCPDF & FPDI: use PDF template for subsequent pages
我們希望通過 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
我遇到了同樣的問題。 在我的情況下使用 xFPDF 包。 (但對於普通 FPDI 應該是相同的。)
我通過 header 函數添加模板來解決它。 http://www.fpdf.org/en/doc/header.htm對我而言,這是為每個生成的頁面添加徽標和頁面標題。 所以這個函數用於每個生成的頁面。 我只是將模板代碼移動到標題函數的開頭 else ,就像在我的情況下一樣,徽標和文本不會顯示在標題中。
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);
...
希望這對您的項目仍然有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.