2013-01-24 18 views
11

Używam biblioteki tcpdf do generowania dokumentu PDF. Używam smarty silnika szablonów do przechowywania danych. Poniżej jest skrypt do wprowadzenia danych nagłówka:Jak umieścić dane HTML w nagłówku tcpdf?

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

chcę umieścić zawartość tabeli HTML Smarty szablonu w miejscu XYZ zawartość tabeli będzie dynamiczne (czyli dane w tabeli mogą się różnić dla każdy dokument PDF).

+0

Proszę zajrzeć do podobnego problemu poniżej http://stackoverflow.com/questions/9513145/tcpdf-set-different-headers-for-different-pages-in-one-document – Minesh

Odpowiedz

4

Należy wprowadzić instancję klasy PDF i rozszerzyć klasę TCPDF. Po klasa PDF powinien wyglądać następująco:

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

Musisz dostosować to do własnego projektu.

16

Jak mówi @vinzcoco, musisz rozszerzyć TCPDF, aby osiągnąć to, co chcesz. Oto prosty poprawa, że ​​myślę, że może to być przydatne dla Ciebie:

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

} 

Teraz, gdy masz już przedmiot MyTCPDF dostępny, po prostu trzeba to zrobić, aby ustawić zawartość nagłówka HTML:

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

i treść HTML nie zostanie na stałe zakodowana w metodzie Header() (bardziej elastyczna dla Ciebie).

+1

-1, nie wiem jak to ma działać. Jeśli wywołasz 'writeHTMLCell' z' $ html', zawsze będzie to samo, niezależnie od tego, co ustawisz w 'setHtmlHeader()'. – slhck

3

użyłem następującej metody, aby ustawić nagłówku

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

Jest to praca dla mnie.

Powiązane problemy