微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Codeigniter 4中生成PDF-输出奇怪的字符

如何解决在Codeigniter 4中生成PDF-输出奇怪的字符

我正在Codeigniter4应用程序中生成PDF文档。

我通过作曲者composer require tecnickcom/tcpdf

安装了TCPDF

我的pdf是通过标准方式创建的,在那里没有什么幻想。

$pdf = new TCPDF('P','mm','A4',true,'UTF-8');
$pdf->SetMargins(10,10,10);
$pdf->SetTextColor(33,65,108);
$pdf->SetAutopageBreak(false);
$pdf->AddPage();
...

除非我尝试输出PDF,否则一切都会正常进行。

$pdf->Output("file.pdf",'D');为我提供了下载文件的选项,它是我所希望的正确的PDF文件

但是,如果我尝试直接在浏览器中输出它:

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

输出中,我得到了奇怪的字符。看起来文档二进制内容已回显到浏览器,而忽略了标题Content-Type。 我不确定,但是我认为这是Codeigniter 4的问题,因为在CI3中,此代码有效,也未使用CI,仅普通的PHP即可提供所需的结果。

CI4怎么了,有一些选项可以打开吗?

解决方法

如@marcogmonteiro所建议,我必须强制CI输出正确的标头:

$this->response->setHeader("Content-Type","application/pdf");
$pdf->Output("file.pdf",'I');

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。