如何将HTML数据放入tcpdf的头文件中?

PHP*_*ver 12 html php smarty tcpdf

我正在使用tcpdf库生成pdf文档.我正在使用智能模板引擎来保存数据.下面是放入标题数据的脚本:

// set default header data
$pdf->SetHeaderData(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, 'PQR', 
'XYZ');
Run Code Online (Sandbox Code Playgroud)

我想将智能模板的HTML表格内容放在XYZ的位置,表格内容将是动态的(意味着表格中的数据可能因每个PDF文档而异).

Art*_*uro 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);
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,一旦你的MyTCPDF对象可用,你只需要这样做来设置HTML标题内容:

$mytcpdfObject->setHtmlHeader('<table>...</table>');
Run Code Online (Sandbox Code Playgroud)

并且HTML内容不会硬编码到Header()方法中(对您来说更灵活).

  • -1,不知道这应该如何工作.如果用`$ html`调用`writeHTMLCell`,它将始终是相同的,无论你在`setHtmlHeader()`中设置什么. (3认同)

小智 5

您必须实例化您的 PDF 类并扩展 TCPPDF 类。在你的 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);
  }
}
Run Code Online (Sandbox Code Playgroud)

您必须将其调整到您自己的项目中。


vij*_*jay 5

我使用以下方法设置标题

$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);
Run Code Online (Sandbox Code Playgroud)

这对我来说是工作。