【问题标题】:Generating PDF in Codeigniter 4 - outputs weird characters在 Codeigniter 4 中生成 PDF - 输出奇怪的字符
【发布时间】:2020-10-01 12:03:20
【问题描述】:

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

我通过composer安装了TCPDF:composer require tecnickcom/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 出了什么问题,有什么选项可以打开吗?

【问题讨论】:

  • 你能检查一下你在那个输出中得到了什么标题吗?也许 Codeigniter 输出会覆盖它并将其设置为默认输出。如果是这样,也许您可​​以自己设置正确的标题:codeigniter.com/user_guide/outgoing/…

标签: php tcpdf codeigniter-4


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-23
    • 1970-01-01
    相关资源
    最近更新 更多