小编Kob*_*rar的帖子

在Edge/IE11中显示Blob PDF

我有一个django应用程序(从中我得到一些html作为客户端),以及需要显示的base64编码的PDF.我尝试了多种方法,这些方法在Chrome/Firefox中正常运行.

我正在使用django,所以会有一些模板和一些JavaScript.

pdf_preview_embed 是一个div

嵌入DataURL

<embed width=100% height=100% type="application/pdf" src="data:application/pdf;base64, {{ pdf }}"></embed>
Run Code Online (Sandbox Code Playgroud)

不可接受的解决方案,因为它可能需要内联数据.在Windows 7下的IE11中工作,在Windows 10下的Edge和IE11上不起作用.

嵌入Blob

base64binary实现

var blob = new Blob( [Base64Binary.decode(pdf)], {'type': 'application/pdf'} );
pdfURL = URL.createObjectURL( blob );
$('#pdf_preview_embed').html(
    '<embed width=100% height=100% type="application/pdf" src="'+pdfURL+'"></embed>'
);
Run Code Online (Sandbox Code Playgroud)

在Edge和IE11中也不起作用.

<iframe> Blob

$('#pdf_preview_embed').html(
    '<iframe src="'+pdfURL+'" style="width: 100%; height: 100%;" frameborder="0" scrolling="no"></iframe>'
);
Run Code Online (Sandbox Code Playgroud)

Edge声称它无法打开pdf,IE11也没有显示任何内容.

实际上使用pdf.js来显示pdf

现在发生了一些事情:我发现blob url来源null,而不是Edge和IE11的应用程序,导致pdf.js拒绝打开它.服务器CORS配置为允许所有来源.我有点迷茫.

pdf internet-explorer blob cors microsoft-edge

9
推荐指数
1
解决办法
9250
查看次数

标签 统计

blob ×1

cors ×1

internet-explorer ×1

microsoft-edge ×1

pdf ×1