我正在尝试使用 dompdf 生成 pdf,如何在浏览器的新选项卡中打开 pdf?就像,我单击 PDF 的链接,它应该在新选项卡中打开,而不是自动保存。我想让用户在第一次看到文件后选择保存文件。我怎么做?
每当我在文件末尾使用 $pdf->output 时,它不会改变任何东西,文件仍然会自动下载。请帮忙。谢谢。
我正在尝试使用 dompdf 生成 pdf,如何在浏览器的新选项卡中打开 pdf?就像,我单击 PDF 的链接,它应该在新选项卡中打开,而不是自动保存。我想让用户在第一次看到文件后选择保存文件。我怎么做?
每当我在文件末尾使用 $pdf->output 时,它不会改变任何东西,文件仍然会自动下载。请帮忙。谢谢。
是否在浏览器中下载或查看 PDF 取决于几个因素。一个是您的浏览器设置,但我们无法控制。第二个是 dompdf 如何将 PDF 呈现给浏览器。您可以告诉 dompdf 提供 PDF 以便使用$dompdf->stream('my.pdf',array('Attachment'=>0));
.
至于在新标签中打开。这取决于您如何生成 PDF。但最简单的方法是提供带有目标属性的链接。
我的网站也有同样的问题(http://www.pdfwebcreator.com)
我的解决方案是:
$myfile = fopen($strFileName, "r") or die("Unable to open file!");
$fileSize = filesize($strFileName);
header("HTTP/1.1 200 OK");
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private", false);
header("Content-type: application/pdf");
header("Content-Disposition: attachment; filename=\"temporaryPdf.pdf\"");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . $fileSize);
echo fread($myfile, $fileSize);
}
我不知道你有没有,但如果你在这一行中使用 false:
$dompdf-> stream("pasta/doc/relatorio.pdf", array("Attachment" => false));
您可以在浏览器中查看pdf。
好吧,您可以使用 ->stream(); 在链的末端。
示例:
//Routes (web.php in case laravel version >= 5.4)
Route::get('/pdf', 'PdfController@pdfStream')->name('pdfStream');
//PdfController.php
public function pdfStream(Request $request) {
$data["info"] = "I is usefull!";
$pdf = PDF::loadView('whateveryourviewname', $data);
return $pdf->stream('whateveryourviewname.pdf');
}
//yourViewPage.blade.php
<a href="{{route("pdfStream")}}" target="_blank" > click me to pdf </a>
我仍在尝试,但这样的东西也可以正常工作
$pdf->loadView('file/path', compact('values'));
return $pdf->stream();
有了这个,您可以在浏览器中将动态值添加到您的 pdf 文件页面。