【问题标题】:How to put HTML data into header of tcpdf?如何将 HTML 数据放入 tcpdf 的标题中?
【发布时间】:2013-01-07 21:00:17
【问题描述】:

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

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

我想用 smarty 模板的 HTML 表格内容代替 XYZ,表格内容将是动态的(意味着表格中的数据可能因每个 PDF 文档而异)。

【问题讨论】:

标签: php html smarty tcpdf


【解决方案1】:

您必须实例化您的 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);
  }
}

您必须根据自己的项目进行调整。

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

    • -1,不确定这应该如何工作。如果你用$html调用writeHTMLCell,不管你在setHtmlHeader()中设置了什么,它总是一样的。
    • 不适合我。谁能解释一下,这是怎么做的?
    【解决方案3】:

    我用下面的方法设置header

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

    这对我有用。

    【讨论】:

      猜你喜欢
      • 2012-03-17
      • 2014-11-16
      • 1970-01-01
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 2020-01-09
      相关资源
      最近更新 更多