gpt4 book ai didi

google-chrome - CakePhp 2.x TCPDF 输出 Chrome

转载 作者:行者123 更新时间:2023-12-02 05:07:35 25 4
gpt4 key购买 nike

我正在使用带有 tcpdf 的 CakePHP 2.x 创建 PDF 文件。我现在想把它输出到浏览器,不保存。

布局->pdf.ctp

<?php 
header("Content-type: application/pdf");
echo $content_for_layout;
?>

查看->pdf_testing.ctp

<?php
App::import('Vendor', 'xtcpdf');
$pdf = new XTCPDF('P', 'mm', 'USLETTER', true, 'UTF-8', false);

$textfont = 'freesans'; // looks better, finer, and more condensed than 'dejavusans'

$pdf->AddPage();

$pdf->setHeaderData('', '', '', 'RMA#100000');
$pdf->SetTitle('Some Text');
$pdf->SetHeaderMargin(20);
$pdf->SetTopMargin(40);
$pdf->setFooterMargin(20);
$pdf->SetAutoPageBreak(True, PDF_MARGIN_FOOTER);
$pdf->SetAuthor('Any Author');
$pdf->SetDisplayMode('real', 'default');

$pdf->SetTextColor(0, 0, 0);
$pdf->SetFont($textfont, 'B', 20);
$pdf->Cell(0, 14, "TESTING", 0, 1, 'L');
echo $pdf->Output('filename.pdf', 'I');

?>

对于 Internet Explorer,这可以正常工作并显示 PDF。

使用 Chrome 我只会得到非常用户友好的输出,例如:

%PDF-1.7 %���� 10 0 obj << /Type /Page /Parent 1 0 R /Las....

即使我把它设置为

echo $pdf->Output('filename.pdf', 'F');

为了将其保存为文件,我仍然得到“内容长度:20”,并且对于内联选项“I”,我总是得到内容类型 HTML/文本而不是应用程序/pdf。

非常感谢任何想法。

提前致谢。

最佳答案

与其在布局文件中包含 header 调用,不如尝试将以下代码添加到 Controller 方法中:

$this->response->type('application/pdf');

Cake 准备就绪后会发送标题,因此您不应将它们直接包含在 View /布局文件中。如果你想设置一个标题,你应该使用响应的标题方法,例如:

$this->response->header('Location', 'http://example.com');

我不确定这是否会解决您的问题,因为我无法对其进行测试,但我认为它有一个很好的机会。

关于google-chrome - CakePhp 2.x TCPDF 输出 Chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16048922/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com