如何从IFRAME SRC是否= PDF打印PDF?(How to print PDF from I

2019-07-04 08:45发布

我有需要直接指向一个PDF文件(不与PDF页面)的iframe:

<iframe id="ecard-pdf" name="ecard-pdf" style="position: absolute;" src="/profile.pdf">
</iframe>

我希望能够打印的PDF在此iframe

我发现在不适合我的需要的其他问题几种解决方案:

  1. 需要有在iframe的函数( https://stackoverflow.com/a/473270/1246369 )
  2. 推荐聚焦帧,然后进行在其上打印操作( https://stackoverflow.com/a/9616706/1246369 )
  3. iframe的访问contentWindow并打印( https://stackoverflow.com/a/9617566/1246369 )
  4. 这些的变化

然而,似乎是Firefox和IE不能做到这一点,如果iframe的SRC点直接到PDF,而不是到PDF缠页面。

火狐

除了打印,它会显示这个对话框:“从创建额外的对话阻止该页面”点击“确定”和“取消”按钮,这两者都不打印PDF。

IE:

根本不理会我尝试使用以上方法进行打印。

问题

我怎样才能让用户打印iFrame中的PDF无论他们使用的是什么浏览器?

Answer 1:

我已经挣扎了一下,发现了IE和Chrome浏览器的解决方案。 这对我的作品:

$(function() {
    var ua = window.navigator.userAgent;
    var msie = ua.indexOf('MSIE ');
    var trident = ua.indexOf('Trident/');
    var edge = ua.indexOf('Edge/');
    var url = '/url/to/file.pdf';
    var pdf ='';
    var style = 'position:fixed; top:0px; left:0px; bottom:0px; right:0px; width:100%; height:100%; border:none; margin:0; padding:0; overflow:hidden;';

    if(msie > 0 || trident > 0 || edge > 0){
        pdf = '<object data="' + url + '" name="print_frame" id="print_frame" style="' + style + '" type="application/pdf">';
    }
    else{
        pdf ='<iframe src="' + url + '" name="print_frame" id="print_frame" style="' + style + '"></iframe>';
    }

    $(document.body).append(pdf);

    setTimeout(function(){
        window.frames["print_frame"].focus();
        window.frames["print_frame"].print();
    },2000);
});

...干杯。



Answer 2:

正如这个答案建议类似的问题 ,你可以这样做:

window.frames.pdfFrame.print();

这应该解决您的问题。



Answer 3:

选项1:

我没有测试过这一点,但我发现了另一个答案在这里: https://stackoverflow.com/a/4096547/2528978

假设你可以使用以下命令:

<style type="text/css" media="print">
   body *{display:none}
   iframe{display:block}
</style>

所以,那么仅仅显示的PDF?

选项2:

做一个超链接到PDF文件,上面写着“打印我”

<a href='Path/To/PDF'>Print Me</a>

希望这可以帮助...

-安德鲁



Answer 4:

这似乎是工作:

   <style type="text/css" media="print">
   body *{display:none}
   iframe{display:block}
   </style>

所以,那么仅仅显示的PDF?



Answer 5:

您可以直接使用窗口打印选项。 使用的onclick选项

的onclick = “JavaScript的:window.print();”



文章来源: How to print PDF from IFRAME if src = pdf?