2017-04-03 92 views
0

我想在客戶端使用javascript打印pdf文件。我的JavaScript代碼如下使用javascript在客戶端打印PDF文件

function doit() { 
    var win = document.getElementById("pdf"); 
    var frm = document.getElementById("pdf").contentWindow; 
    frm.print(); 
    win.print(); 
}   

的問題是,FRM總是空和勝利沒有打印的功能

我的PDF元素如下

<iframe id="pdf" name="pdf" src="C:\My_P.pdf"></iframe> 

我打電話從c#的功能如下

ClientScript.RegisterStartupScript(this.GetType(), "Print", "doit();", true); 

真的很掙扎。請幫忙

+0

我的框架從客戶端加載和函數doit在加載pdf之前被調用。你能看到iframe中的pdf內容嗎? – Anil

+0

編號錯誤是不允許加載本地資源:file:/// C:/_temp/My_P.pdf。我改變了目錄,認爲我不應該從C: – user2837961

回答

1

你的問題的解決方案是I幀加載後調用打印功能,您可能不需要使用從服務器調用它RegisterStartupScript

<iframe id="pdf" name="pdf" src="C:\My_P.pdf" 
    onload="doit();"></iframe> 

另一個問題似乎是src路徑C:\My_P.pdf,我期待一個網址顯示內容。請參考Iframe

爲了減輕這一點,請創建一個目錄,例如MyResource在您的asp.net項目中,並將您的PDF複製到此目錄並更改src =「/ MyResource/My_P.pdf」。您的pdf應該是瀏覽器可以訪問的,然後只有Iframe可以加載它。

+0

這是否意味着文件必須位於服務器端? – user2837961

+0

是的,它可以位於通過URL訪問iframe的任何服務器上。 – Anil

+0

問題是加載到iframe中。我看不到PDF。我在我的Web應用程序\\ WebApplication \ bin \ Temp中創建了一個目錄,並將pdf放入Temp目錄。它不加載它。打印對話框出現,其底部的aspx鏈接顯示空白 – user2837961

0

您是否受到same origin policy的阻礙?

在過去,我已經使用:

window.frames["pdf"].focus(); 
window.frames["pdf"].print(); 
+0

加載我試過了。不起作用 – user2837961

相關問題