Tcpdfライブラリを使用してPDFドキュメントを生成しています。 Smartyテンプレートエンジンを使用してデータを保持しています。以下は、ヘッダーデータを挿入するためのスクリプトです。
// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PQR',
'XYZ');
XYZの代わりにsmartyテンプレートのHTMLテーブルコンテンツを配置したいのですが、テーブルコンテンツは動的になります(つまり、テーブル内のデータはPDFドキュメントごとに異なる可能性があります)。
@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()
メソッドにハードコードされません(より柔軟になります)。
次の方法でヘッダーを設定しました
$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);
これは私にとっての仕事です。
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);
}
}
これを自分のプロジェクトに適合させる必要があります。