在Chrome / Firefox / IE中通过iframe打印PDF [英] Print a PDF via an iframe in Chrome/Firefox/IE

查看:238
本文介绍了在Chrome / Firefox / IE中通过iframe打印PDF的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想触发我加载的PDF文件和iframe的打印。

看了一下后,我想出了下面的内容

 < iframe name =pdfnameid =pdfid>< / iframe> 

< button id =printbtn>列印< /按钮>

< script language =javascripttype =text / javascript>
$(document).ready(function(){

$(#pdfid)load(function(){
window.frames [pdfname]。 focus();
window.frames [pdfname]。print();
});
$ b $(#printbtn)。
$(#pdfid)。attr(src,'@ Url.Action(PdfTest,Home)');
});
});
< / script>

在Firefox中,我得到了下面的错误(我读了一个错误,应该是在21版本中修复的,但它不是)

在Internet Explorer 10和9中,出现以下错误:

无效的调用对象



这似乎指向由我的MVC操作生成的PDF



我看过很多类似于我的问题的帖子,但到目前为止还没有遇到可行的解决方案。



我真的想知道RADPDF是如何设法在每个浏览器中都能正常工作的。

点击这个页面上的打印按钮



我知道这可以做,我需要你的帮助!
$ b

干杯

解决方案

请尝试以下操作,可能适用于所有浏览器。 (我只用IE8和Chrome进行测试)

 < style type =text / css> 
@media print
{
.dontprint {display:none}
}
< / style>
< script type =text / javascript>
function printIframePdf(){
window.frames [printf]。focus();
try {
window.frames [printf]。print();
}
catch(e){
window.print();
console.log(e);

$ b function printObjectPdf(){
try {
document.getElementById('idPdf')。Print();
}
catch(e){
printIframePdf();
console.log(e);



函数idPdf_onreadystatechange(){
if(idPdf.readyState === 4)
setTimeout(printObjectPdf,1000);
}
< / script>
< div class =dontprint>
< form>< input type =buttononClick =printObjectPdf()class =btnvalue =Print/>< / form>
< / div>