我正在使用tcpdf庫來生成PDF文檔。我使用smarty模板引擎來保存數據。下面是放於頭數據的腳本:如何將HTML數據放入tcpdf的頭文件中?
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PQR',
'XYZ');
我想把智者模板的HTML表格內容到位XYZ的,表的內容將是動態的(意思是在表中的數據可用於改變每個PDF文件)。
我正在使用tcpdf庫來生成PDF文檔。我使用smarty模板引擎來保存數據。下面是放於頭數據的腳本:如何將HTML數據放入tcpdf的頭文件中?
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PQR',
'XYZ');
我想把智者模板的HTML表格內容到位XYZ的,表的內容將是動態的(意思是在表中的數據可用於改變每個PDF文件)。
您必須實例化您的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);
}
}
你必須適應這個到自己的項目。
正如@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,不知道這應該如何工作。如果使用'$ html'調用'writeHTMLCell',無論您在'setHtmlHeader()'中設置了什麼,它都會一直保持不變。 – slhck
我用下面的方法來設置頁眉
$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);
這是爲我工作。
請考慮類似的問題,下面 http://stackoverflow.com/questions/9513145/tcpdf-set-different-headers-for-different-pages-in-one-document – Minesh