【问题标题】:TCPDF - Codeigniter - Failed to load PDF documentTCPDF - Codeigniter - 无法加载 PDF 文档
【发布时间】:2013-04-03 19:49:51
【问题描述】:

控制器:

public function test(){
    $data = array();
    $this->load->library('tcpdf');
    $this->display_page($data);
}

test.php:(没有全部发布,因为有点长)

global $l;
$l = Array();
$l['a_meta_charset'] = 'UTF-8';
$l['a_meta_dir'] = 'ltr';
$l['a_meta_language'] = 'en';
$l['w_page'] = 'page';

// create new PDF document
$pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8',              false);


-- pdf stuff -- 

$pdf->Output('example_007.pdf', 'I');

在 Chrome 中,它只是显示“加载 PDF 文档失败。”。没有错误,控制台中没有任何内容。 在 Firefox 中,它说:“文件不以 '%PDF-' 开头。Local\EWH`_'s3-0y”。

Local\ 末尾的字符串在每次加载时随机出现。

我曾尝试使用输出缓冲和刷新,但无济于事。我很茫然。

【问题讨论】:

    标签: php codeigniter pdf tcpdf


    【解决方案1】:

    输出pdf后尽量放exit;。我希望它能像对我一样解决这个问题。

    -- pdf 的东西--

    $pdf->Output('example_007.pdf', 'I');
    exit;
    

    【讨论】:

    • 为我工作,谢谢。
    【解决方案2】:

    试试这个

    ob_clean();
    ob_flush();
    $pdf->Output('example_007.pdf', 'I');
    ob_end_flush();
    ob_end_clean();
    

    【讨论】:

      【解决方案3】:

      您可能会在生成发票之前向浏览器输出一些内容。转到页面的源代码,查看是否有任何内容,包括空格(新行或空格)并将其删除。

      【讨论】:

      • 是的,我经常看到这个建议,这似乎不是问题,感谢您的帮助。
      • 您是否尝试仅包含 tcpdf 文件?这不应该是问题,但你永远不会知道。
      • 我有 :( 这太烦人了。我不知道为什么我是互联网上唯一有这个问题的人......
      【解决方案4】:

      Duniyadnd 是正确的。当我在 Chrome 的调试工具中查看网络响应​​时,我看到“%PDF-”魔法出现在第二行而不是第一行。我在所需的包含文件中发现了一些空格,在分隔符之前和之后输出到 pdf 文件之前的浏览器。在 php 分隔符解决问题之前和之后消除此空格。

      【讨论】:

        【解决方案5】:

        如果您使用的是 YII FRAMEWORK,请确保您 renderPartial 而不是在控制器中渲染视图

        【讨论】:

        • 此答案不回复 OP 问题,因为 OP 问题中没有关于 YII 的信息。如需澄清或了解更多信息,请使用 cmets。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多