Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 查看和打印Base64 PDF';跨所有浏览器的_Javascript_Html_Pdf_Kendo Ui - Fatal编程技术网

Javascript 查看和打印Base64 PDF';跨所有浏览器的

Javascript 查看和打印Base64 PDF';跨所有浏览器的,javascript,html,pdf,kendo-ui,Javascript,Html,Pdf,Kendo Ui,在我开始之前,我只想说,我知道以前有人问过这个问题,我在这个论坛上搜索了几个小时,没有一个答案一直对我有效 我正在为一个Web应用程序构建一个页面,该应用程序将从数据库中提取Base64编码的PDF。这将需要在屏幕上的PDF查看器,这将需要打印 我试过三种方法 1。JavaScript PDF查看器的剑道用户界面。 此解决方案提供了跨所有浏览器查看PDF的功能,但没有内置的打印解决方案。我尝试使用Stackoverflow的一些代码,但这似乎只适用于Firefox 我从你那里得到了密码。在Fir

在我开始之前,我只想说,我知道以前有人问过这个问题,我在这个论坛上搜索了几个小时,没有一个答案一直对我有效

我正在为一个Web应用程序构建一个页面,该应用程序将从数据库中提取Base64编码的PDF。这将需要在屏幕上的PDF查看器,这将需要打印

我试过三种方法

1。JavaScript PDF查看器的剑道用户界面。

此解决方案提供了跨所有浏览器查看PDF的功能,但没有内置的打印解决方案。我尝试使用Stackoverflow的一些代码,但这似乎只适用于Firefox

我从你那里得到了密码。在Firefox上,它会打开一个包含PDF的新窗口,然后是该PDF的打印窗口,这正是我所期望的。然而,在Chrome上,它可以很好地打开PDF窗口,但是当要打印它时,打印预览会显示一个空白页面,上面有日期

2。HTML对象

这是给我的一切我需要的,但它不工作的IE和边缘。在Chrome和FF上,它可以完美地显示PDF,内置PDF浏览器,在顶部有一个打印按钮

在IE和Edge上,它显示一个空白框

请注意selectedPDFData是一个包含Base64编码PDF的字符串

代码:

        var objbuilder = '';
        objbuilder += ('<object width="100%" height="750" data = "data: application / pdf; base64, ');
        objbuilder += (selectedPDFData);
        objbuilder += ('" type="application/pdf" class="internal">');
        objbuilder += ('<embed src="data:application/pdf;base64,');
        objbuilder += (selectedPDFData);
        objbuilder += ('" type="application/pdf"  />');
        objbuilder += ('</object>');
var objbuilder='';
objbuilder+=(“”);
objbuilder+=(“”);
objbuilder+=(“”);
然后将其插入到div中

3。IFrames

这提供了与前一个解决方案相同的功能,尽管存在相同的问题

        var testiFrame = '';
        testiFrame += '<iframe src="data:application/pdf;base64,';
        testiFrame += (selectedPDFData)
        testiFrame += '" width="100%" height="750"><iframe>';
var testiFrame='';
测试帧+='';
这也会插入到Div中

在尝试了所有这些选项后,我完全不知所措,似乎找不到任何其他解决方案

您可以使用打印base64 PDF

<button type="button" onclick="printJS({printable: base64, type: 'pdf', base64: true})">
    Print PDF with Message
</button>

打印带有消息的PDF