我正在尝试显示由RESTful服务的GET调用创建的pdf。在HTML中我使用的对象标签如下
<object data={{$ctrl.miEstimatePdfData}} type="application/pdf"
width="100%" height="100%" alt="pdf" class="view-pdf_document">
<p>Estimate Preview Cannot be displayed.</p>
</object>
在js文件中
miEstimateService.getMitchellEstimate(response.estimate.id)
.then(function (response) {
var blob = new Blob([(response.data)], { type: 'application/pdf' });
if (window.navigator.msSaveOrOpenBlob) {
$window.navigator.msSaveOrOpenBlob(blob, "estimatePreview.pdf");
} else {
var fileUrl = URL.createObjectURL(blob);
$scope.miEstimatePdfData = $sce.trustAsResourceUrl(fileUrl);
}
});
这在chrome中完美无缺 由于IE11 / Edge不允许显示blob URL,我使用.msSaveOrOpenBlob,但这不会在浏览器窗口中打开pdf。它承诺用户保存或打开pdf并在Acrobat Reader(IE11)或新的浏览器窗口(Edge)中打开它。 在Safari中,PDF在浏览器中正确呈现,但不是自由流动或可滚动的,因此大部分第二页都不可见。
我已经研究了很多并且看了很多SO问题。是否有适用于所有浏览器的解决方案 - chrome,IE11 / Edge和Safari?
谢谢, SDD