Как поместить данные HTML в заголовок tcpdf?

Я использую библиотеку tcpdf для создания PDF-документа. Я использую механизм шаблона smarty для хранения данных. Ниже приведен скрипт для ввода данных заголовка:

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

Я хочу поместить содержимое таблицы HTML из шаблона smarty вместо XYZ, содержимое таблицы будет динамическим (это означает, что данные в таблице могут отличаться для каждого документа 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 и расширить класс 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); } } 

Вы должны адаптировать это к своему собственному проекту.

Я использовал следующий метод для установки заголовка

 $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 abc@gmail.com\n" . "www.abc.com"; $pdf->SetHeaderData($PDF_HEADER_LOGO, $PDF_HEADER_LOGO_WIDTH, $PDF_HEADER_TITLE, $PDF_HEADER_STRING); 

Это работа для меня.