我在Symfony 3项目中使用Dompdf并且它一直工作正常,直到我试图下载它。目前,它只是下载没有对话框提示,这是我想要的,根据文档,将值1传递给Attachment
选项应该这样做。
这是我的代码:
$html = $this->renderView('pages/invoice_print.html.twig', array(
'invoice' => $invoice_array
));
$dompdf = new Dompdf();
$dompdf->set_option('isHtml5ParserEnabled', true);
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
$output = $dompdf->output();
$dompdf->stream("invoice_" . $invoice->getId(), array('Attachment' => 1));
说实话,我的印象是Attachment
默认设置为1 - 所以我不确定是怎么回事。我使用的是Firefox Quantum。
编辑:
现在附上了PDF将如何在浏览器中呈现的屏幕截图:
答案 0 :(得分:0)
我过去没有和dompdf
合作过,但是,只要看一下Github上的代码,我相信我会看到你需要的东西。
当你调用stream()
时,你有:
if (!isset($options["compress"])) $options["compress"] = true;
if (!isset($options["Attachment"])) $options["Attachment"] = true;
因此,如果没有Attachment
选项,则该选项将设置为true
接下来,在第1311行,你有:
$attachment = $options["Attachment"] ? "attachment" : "inline";
header(Helpers::buildContentDispositionHeader($attachment, $filename));
基本上归结为Content-Disposition
标题:
$contentDisposition = "Content-Disposition: $dispositionType; filename=\"$fallbackfilename\"";
最后,根据标准,如果您要在网页内提供文件(例如没有提示对话框),则需要将处置设置为inline
总而言之,您是否尝试过将Attachment
设为false
?
$dompdf->stream("invoice_" . $invoice->getId(), array('Attachment' => false));
希望这会有所帮助......