iPad:如何在javascript中在iframe中打印pdf

时间:2014-08-19 16:18:43

标签: javascript ipad iframe printing

使用javascript - 在iPad html5网络应用中,是否可以打印加载在iframe中的pdf?

我尝试了许多没有成功的事情,例如:

var iframe = document.getElementsByTagName('iframe')[0]

if (iframe.attachEvent) {
    iframe.attachEvent("onload", function(){
      console.log("Local iframe is now loaded.");
      iframe.contentWindow.print()
    });
}
else {
    iframe.onload = function(){
        console.log("sLocal iframe is now loaded.");
        iframe.contentWindow.print()
    };
}

iframe的网址是'/data/xyz.pdf';

目标是打开空气印刷对话框。这对我来说是个大问题,请帮忙!!!

3 个答案:

答案 0 :(得分:2)

我认为你几乎得到了解决方案。唯一的左边就是你打印iframe的方式。尝试使用它。

window.frames["iframe"].focus();
window.frames["iframe"].print();

希望它有所帮助 :)

答案 1 :(得分:2)

另外两种答案的另一种方法是使用CSS仅打印iframe:

@media print {
    * {
        display: none;
    }

    iframe {
        display: block;
        width: 100%;
        height: 100%;
    }
}

这基本上使iframe成为页面的整个宽度和高度,并隐藏其他元素,以便当用户单击print时iframe是唯一的视图。与其他选项相比,它的优势在于它可以在关闭JavaScript的情况下使用,出于安全原因,一些用户可能会这样做。

答案 2 :(得分:1)

我非常有信心支持PDFObject的safari。它只是一个声明的对象,非常容易使用。

即使不完全是iframe,也可以这样使用div:

<div id="pdfIframe"></div>

var pdf = new PDFObject({
  url: "/data/xyz.pdf",
  id: "pdfRendered",
  pdfOpenParams: {
    view: "FitH"
  }
}).embed("pdfIframe");

来源:http://pdfobject.com/

编辑:我没有看到这是一个印刷问题,所以我的答案不是真的。顺便说一句,我记得有一个朋友使用它,他没有打印它的问题,所以也许有一个附带的打印支持功能。