2012-05-21 65 views
1

我正在开发一个项目,我需要与多浏览器兼容,并遇到导致Adobe Reader打印对话框在所有其他浏览器(除IE外)上激活并显示的问题。我嵌入在broswer的PDF使用这样的对象标签:使用Javascript打印嵌入式PDF失败

<object id="pdfObj" type="application/pdf" style="width:60%;height:95%;position:relative;top:2%;left:0%;right:10%;bottom:10%;margin:0px;padding:0px;border:0px;" data="PDFView.aspx"></object> 

使用jQuery赶上打印链接的点击这样:

   $('#PrintLink').click(function() { 
       $("#pdfObj")[0].print(); 
      }); 

这适用于IE浏览器,但在运行时在Firefox中使用Web开发工具运行错误“$(”#pdfObj“)[0] .print不是函数”被捕获。有了Chrome我得到的错误“遗漏的类型错误:对象#有没有一种方法打印

有谁知道这是如何与这些其他浏览器,您的答案将不胜感激完成

詹姆斯

+0

我们已经成功在pdf中嵌入了一个JavaScript来激活打印对话框 – mplungjan

+0

你如何做嵌入? – James

+0

我们使用iText ... – mplungjan

回答

0

。?。我知道这是一个老问题,但过去一周我一直在寻找这个解决方案,问题在于如果页面的URL不是以www开头的话,Firefox不会让你访问这个元素。到页面顶部:

<script type="text/javascript"> 
    if (location.host.toLowerCase().substring(0,3) != "www") 
    { 
     location.href = location.href.replace(/\/\//, "//www."); 
    } 
</script> 

这会将用户重定向到相同的URL,但添加了www。到它的开始。

然后嵌入您的PDF在iframe:

<iframe id="iframe" src="myPDF.pdf" width="200" height="500"></iframe> 

然后你就可以使用这个javascript函数打印PDF:

document.getElementById("iframe").contentWindow.print(); 

您可以在JavaScript执行检查,看看有什么浏览器用户有,如果你需要不同的代码为IE和Safari。 希望这有助于它,它为我工作。

+1

使用FF 39.0,这不适合我。 – Ian