簡體   English   中英

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

[英]Generating PDF in Codeigniter 4 - outputs weird characters

我正在我的 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有什么問題,有沒有打開的選項?

正如@marcogmonteiro 所建議的,我必須強制 CI 輸出正確的標題:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM