2012-05-21 60 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