【问题标题】:laravel print preview using laravel-dompdflaravel 打印预览使用 laravel-dompdf
【发布时间】:2017-06-25 13:18:13
【问题描述】:

我正在使用 Laravel 5.4 并使用

"barryvdh/laravel-dompdf": "^0.8.0",

https://github.com/barryvdh/laravel-dompdf

我在控制器中有以下代码

$pdf = PDF::loadView('print.print', $data);
return $pdf->download('invoice.pdf');

因为它会正确下载 pdf,但我希望在视图中预览要打印的内容。 我google了很多还是找不到

【问题讨论】:

  • 您可以使用 JavaScript 进行打印,
  • 是否可以在不下载的情况下在新的浏览器选项卡中查看 pdf
  • 你可以只使用->stream()方法吗?
  • 我尝试了流,但它的下载不可见
  • 您需要将pdf发送到新窗口然后执行window.print()浏览器将预览pdf作为打印

标签: php laravel dompdf


【解决方案1】:

您可以按照文档here 中的说明使用stream() 函数。

根据dompdf的文档, 当您像这样使用流时:

$dompdf->stream('filename.pdf');

默认情况下,您会看到download dialouge box

但是,您可以将参数Attachment 的值添加到false,以便您可以在浏览器中查看pdf

这是你需要做的:

$dompdf->stream("filename.pdf", array("Attachment" => false));

这可能会对你有所帮助。

【讨论】:

  • 使用带数组的流没有发生下载该文件。
【解决方案2】:

我一直在努力解决这个问题,并设法使它与以下 sn-p 一起工作:

$html = view('desktop.bill', $data)->render();
return @\PDF::loadHTML($html, 'utf-8')->stream(); // to debug + add the follosing headers in controller ( TOP LEVEL )

除了上面的命令,您还需要在 TOP LEVEL 上添加,如控制器中的第一行,以下听者:

header('Content-type: application/pdf');
header('Content-Disposition: inline; filename="document.pdf"');
header('Content-Transfer-Encoding: binary');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 2018-08-27
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2018-05-15
    • 2021-10-16
    • 1970-01-01
    相关资源
    最近更新 更多