【问题标题】:How to integrate TCPDF?如何整合 TCPDF?
【发布时间】:2015-04-14 12:30:07
【问题描述】:

我想将 TCPDF 添加到 codeigniter,所以我从 TCPDF Download 下载了 TCPDF,并在 /libraries/Pdf.php 中创建了一个文件

require_once dirname(__FILE__) . '/tcpdf/tcpdf.php';

class Pdf extends TCPDF
{
    function __construct()
    {
        parent::__construct();
    }
}

并在控制器中使用它

function pdfTest(){

        $this->load->library("Pdf");
        $pdf = new Pdf('P', 'mm', 'A4', true, 'UTF-8', false);
        $pdf->SetCreator(PDF_CREATOR);
            // Add a page
            $pdf->AddPage();
            $html = "<h1>Test Page</h1>";
            $pdf->writeHTML($html, true, false, true, false, '');
            $pdf->Output();
        }

但它给了我以下错误

TCPDF ERROR: Some data has already been output, can't send PDF file

错误的原因可能是什么,我该如何解决?我已经搜索了分配,但找不到解决方案。 提前谢谢你们。

【问题讨论】:

  • 与其输出 PDF,不如尝试放置一个出口;(所以在 $pdf->Output(); 之前)并检查可能已放置的任何数据。也许它是一个错误调试消息或首先发送的其他内容。
  • 我将exit; 放在$pdf-&gt;Output(); 之前,但它们没有显示错误。调试在 php 和 codeigniter 中都是开启的。

标签: php codeigniter tcpdf


【解决方案1】:

终于找到了我把ob_clean();放在$pdf-&gt;Output('test.pdf','I');前面的答案,解决了这个问题。谢谢大家的帮助。

【讨论】:

  • 回答这个问题有点太晚了,但造成问题的是 BOM 元素。设法删除了所有 BOM 元素,现在它在没有 ob_clean(); 的情况下可以正常工作,这对将来引用此内容的任何人都有帮助。
【解决方案2】:

确保&lt;?php 之前和?&gt; 之后没有空格 要么 只需在页面顶部使用ob_start();

【讨论】:

  • 我会投票给你,但我需要声望 15 才能投票。
【解决方案3】:

此错误表明在创建 pdf 之前已经显示或回显了一些错误或输出。请检查您是否打印了任何内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-27
    • 2020-04-18
    • 2019-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-06-29
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多