簡體   English   中英

TCPDF & FPDI:對后續頁面使用 PDF 模板

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM