2013-01-24 4 views
11

私はpdfドキュメントを生成するためにtcpdfライブラリを使用しています。私はスマートなテンプレートエンジンを使用してデータを保持しています。tcpdfのヘッダにHTMLデータを入れる方法は?

// set default header data 
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PQR', 
'XYZ'); 
私はXYZの代わりにSmartyのテンプレートのHTMLテーブルの内容を入れたい

は、テーブルの内容は(のために異なる場合があり、テーブル内のデータを意味し、動的になるだろう:下のヘッダデータに置くためのスクリプトです。各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); 
    } 

} 

、あなたはあなただけのHTMLのヘッダーの内容を設定するためにこれを行う必要があり、あなたのMyTCPDFオブジェクトが利用できる持ったら:

$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); 

を設定するには、次の方法を使用していました。

関連する問題