2009-07-10 63 views
0

我想在服務器端生成PDF文件,然後作爲響應,希望發送該文件(緩衝區,文件名 - 無論可能工作),並顯示一個打印對話框,要求用戶打印生成的PDF文件。如何從服務器端(asp.net)觸發窗口打印對話框?

我試過下面的東西。但它不會觸發window.print()對話框。

public static void ForcedPrint(HttpResponse response, byte[] buffer, string fileName, string fileExtension) { 
     response.Clear(); 
     response.Buffer=true; 
     response.Write("<script>window.print();</script>"); 
     response.Charset=""; 
     response.Cache.SetCacheability(HttpCacheability.NoCache); 
     response.ContentType="application/pdf"; 
     response.BinaryWrite(buffer); 
     response.Flush(); 
     response.End(); 
    } 

有人可以幫助我嗎? 我正在尋找的功能是,我應該能夠在服務器上創建PDF文件,並作爲響應用戶應該得到一個對話框來打印生成的文件。

在此先感謝。

回答

0

你需要嵌入在HTML文檔中的PDF,說在一個div稱爲thePDF,並在文件中的JavaScript代碼,你需要調用

thePDF.printWithDialog() 

出現的對話框將是Adobe Reader插件的打印對話框而不是瀏覽器的打印對話框;這將允許在打印之前選擇頁面等。

+0

我沒有得到這個。請給我看一些示例代碼,或者一些鏈接以供參考。 感謝您的回覆。 – 2009-07-19 20:06:27

1

據我所知,您無法在服務器上向瀏覽器生成打印命令。你可以做的最多的是生成JavaScript,它會使它彈出一個打印對話框(window.print()),但是這不會幫助你做你想做的事情。

只是猜測,但你可以嘗試生成一個頁面,並指向PDF文件的iframe,並在基本頁面中有告訴iframe打印的javascript?

希望這有助於

達科