13

tcpdf ライブラリを使用して pdf ドキュメントを生成しています。データを保持するために smarty テンプレート エンジンを使用しています。以下は、ヘッダー データに配置するスクリプトです。

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

Smarty テンプレートの HTML テーブル コンテンツを XYZ の代わりに配置したいのですが、テーブル コンテンツは動的になります (つまり、テーブル内のデータは PDF ドキュメントごとに異なる可能性があります)。

4

3 に答える 3

20

@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);
    }

}

MyTCPF オブジェクトを利用できるようになったら、あとは HTML ヘッダーの内容を設定するだけです。

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

HTML コンテンツはHeader()メソッドにハードコードされません (より柔軟です)。

于 2013-01-25T09:48:00.203 に答える
5

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

これを独自のプロジェクトに適合させる必要があります。

于 2013-01-25T08:54:41.437 に答える