使用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';
目标是打开空气印刷对话框。这对我来说是个大问题,请帮忙!!!
答案 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");
编辑:我没有看到这是一个印刷问题,所以我的答案不是真的。顺便说一句,我记得有一个朋友使用它,他没有打印它的问题,所以也许有一个附带的打印支持功能。