在浏览器中显示字节数组为pdf我从堆栈溢出尝试了几个选项,但它对我不起作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在浏览器中显示字节数组为pdf我从堆栈溢出尝试了几个选项,但它对我不起作用相关的知识,希望对你有一定的参考价值。

我得到以json格式的跟随响应

{ “文件名”: “copyofabc.pdf”, “FILEDATA”:[37,80,68,70,45,49,46,53,13,10,37,-75,-75,-75,-75, 13,10,49,32,48,32,111,98,106,13,10,60,60,47,84,121,112,101,47,67,97,116,97,108,111,103,47,80,97,103,101,115,32,50,32,48,32, 82,47,76,97,110,103,40,101,110,45,73,78,41,32,47,83,116,114,117,99,116,84,114,101,101,82,111,111,11 .....]}

enter code here


 var blob = new Blob($(this).attr('filedata'), {
                        type: 'application/pdf'
                    });
                    var objectURL = URL.createObjectURL(blob);
                    // Create an iframe to demonstrate it:
                    var iframe = document.createElement('iframe');
                    iframe.className = 'sample-iframe';
                    iframe.src = objectURL;
                    document.body.appendChild(iframe);

上面的代码我用来显示字节数组的pdf

答案

这适用于Chrome,但不适用于IE:

// base64DataFromWebAPI comes from a Web API, in the form of base 64 string
var pdfData = base64DataFromWebAPI;

var x = window.open();
var iframe = x.document.createElement('iframe')
iframe.width = '100%'
iframe.height = '100%'
iframe.frameBorder = 0
iframe.style = "border: 0"
iframe.src = "data:application/pdf;base64, " + pdfData
x.document.body.appendChild(iframe);

我是从以下Stack Overflow问题得到的:JsPDF - Not allowed to navigate top frame to data URL

以上是关于在浏览器中显示字节数组为pdf我从堆栈溢出尝试了几个选项,但它对我不起作用的主要内容,如果未能解决你的问题,请参考以下文章

大型数组、std::vector 和堆栈溢出

在发生堆栈溢出之前剩余堆栈的大小

什么是堆栈溢出?

如何检查字节数组是不是为有效的pdf文件[关闭]

使用 setrlimit() 设置堆栈大小并引发堆栈溢出/段错误

声明大数组时出现堆栈溢出异常