2013-01-24 31 views
11

我正在使用tcpdf庫來生成PDF文檔。我使用smarty模板引擎來保存數據。下面是放於頭數據的腳本:如何將HTML數據放入tcpdf的頭文件中?

// set default header data 
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PQR', 
'XYZ'); 

我想把智者模板的HTML表格內容到位XYZ的,表的內容將是動態的(意思是在表中的數據可用於改變每個PDF文件)。

+0

請考慮類似的問題,下面 http://stackoverflow.com/questions/9513145/tcpdf-set-different-headers-for-different-pages-in-one-document – Minesh

回答

4

您必須實例化您的PDF類並擴展TCPDF類。 後您的PDF類應該是這樣的:

class MyTCPDF extends TCPDF{ 
    public function Header(){ 
    $html = '<table>...</table>'; 
    $this->writeHTMLCell($w = 0, $h = 0, $x = '', $y = '', $html, $border = 0, $ln = 1, $fill = 0, $reseth = true, $align = 'top', $autopadding = true); 
    } 
} 

你必須適應這個到自己的項目。

16

正如@vinzcoco所說,你必須擴展TCPDF才能達到你想要的。下面是一個簡單的改進,我認爲這可能對您有用:

class MyTCPDF extends TCPDF { 

    var $htmlHeader; 

    public function setHtmlHeader($htmlHeader) { 
     $this->htmlHeader = $htmlHeader; 
    } 

    public function Header() { 
     $this->writeHTMLCell(
      $w = 0, $h = 0, $x = '', $y = '', 
      $this->htmlHeader, $border = 0, $ln = 1, $fill = 0, 
      $reseth = true, $align = 'top', $autopadding = true); 
    } 

} 

現在,一旦你已經得到了你的可用對象MyTCPDF,你只需要做到這一點,設置HTML頭內容:

$mytcpdfObject->setHtmlHeader('<table>...</table>'); 

並且HTML內容不會被硬編碼爲Header()方法(對您更加靈活)。

+1

-1,不知道這應該如何工作。如果使用'$ html'調用'writeHTMLCell',無論您在'setHtmlHeader()'中設置了什麼,它都會一直保持不變。 – slhck

3

我用下面的方法來設置頁眉

$PDF_HEADER_LOGO = "logo.png";//any image file. check correct path. 
$PDF_HEADER_LOGO_WIDTH = "20"; 
$PDF_HEADER_TITLE = "This is my Title"; 
$PDF_HEADER_STRING = "Tel 1234567896 Fax 987654321\n" 
. "E [email protected]\n" 
. "www.abc.com"; 
$pdf->SetHeaderData($PDF_HEADER_LOGO, $PDF_HEADER_LOGO_WIDTH, $PDF_HEADER_TITLE, $PDF_HEADER_STRING); 

這是爲我工作。

相關問題