我从这段代码返回来自 laravel dompdf 的流数据
$pdf = \App::make('dompdf.wrapper');
$pdf->loadHTML("<div>This is test</div>");
return $pdf->stream();
这是我的 JS ajax 代码
$.ajax({
type:"GET",
url: "/display",
responseType: 'arraybuffer'
}).done(function( response ) {
var blob = new Blob([response.data], {type: 'application/pdf'});
var pdfurl = window.URL.createObjectURL(blob)+"#view=FitW";
$("#pdfviewer").attr("data",pdfurl);
});
这是在 ajax 之后显示 pdf 的 HTML
<object id="pdfviewer" data="/files/sample.pdf" type="application/pdf" style="width:100%;height:500px;"></object>
我收到以下错误
无法加载 PDF 文档
请帮助解决这个问题。如何显示pdf文件。
原文由 GRESPL Nagpur 发布,翻译遵循 CC BY-SA 4.0 许可协议
jQuery.ajax()
默认情况下没有responseType
设置。您可以使用 polyfill,例如实现二进制数据传输 的 jquery-ajax-blob-arraybuffer.js ,或使用fetch()
。另请注意,chrome,chrome 在显示
.pdf
时存在问题<object>
和<embed>
元素,请参阅 使用对象嵌入标记显示带有 URL alob 的 PDF PDF对象。使用<iframe>
元素替换<object>
元素。使用
fetch()
,.arrayBuffer()
plnkr http://plnkr.co/edit/9R5WcsMSWQaTbgNdY3RJ?p=preview
版本 1
jquery-ajax-blob-arraybuffer.js
,jQuery.ajax()
;版本 2fetch()
,.arrayBuffer()