1

控制器:

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\ 末尾的字符串在每次加载时随机出现。

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

4

5 回答 5

6

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

-- pdf 的东西 --

$pdf->Output('example_007.pdf', 'I');
exit;
于 2015-12-07T09:53:13.427 回答
2

尝试这个

ob_clean();
ob_flush();
$pdf->Output('example_007.pdf', 'I');
ob_end_flush();
ob_end_clean();
于 2017-03-14T22:52:16.900 回答
0

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

于 2014-10-21T08:28:47.507 回答
0

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

于 2015-03-20T11:49:30.190 回答
0

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

于 2013-04-03T19:55:01.280 回答