2012-09-03 83 views
1

我有這個ASP.NET頁面,我想打印。我現在正在使用的是使用OnClientClick,然後從那裏調用功能PrintThePage(),該功能除了打電話給Window.Print()。當我這樣做時,用戶會看到「打印」對話框,她可以在其中選擇打印機(並設置它的屬性和其他屬性),然後打印頁面。打印沒有打印對話框的頁面?

問題是,我想打印的頁面,而不顯示打印對話框,使用默認打印機。以下是我已經試過:

protected void Page_Load(object sender, EventArgs e) 
{ 
    System.Drawing.Printing.PrinterSettings ps = 
     new System.Drawing.Printing.PrinterSettings(); 

    ps.PrintFileName = Path.GetFileName(Request.Url.LocalPath); 

    System.Drawing.Printing.PrintDocument pd = 
     new System.Drawing.Printing.PrintDocument(); 

    pd.PrinterSettings = ps; 
    pd.Print(); 
} 

我的默認打印機是OneNote(微軟發送給一個注)。 問題:頁面打印時,僅生成空白頁面。

我第一次嘗試到我的默認打印機設置爲doPdf。如果這不起作用,我然後試圖使用我真正的惠普打印機。但我仍然收到相同的結果。該頁面未顯示打印對話框...該問題已消失。但問題是爲什麼頁面不打印?爲什麼我得到一個空白/空/納達頁面?我的代碼有問題嗎?或者是我的打印機故障?再次,一個問題已經消失;我不再得到Print Dialog Box。我只是沒有得到一個打印頁面,只是一個空白頁面。

誰能告訴我發生了什麼事?我能做些什麼來實現我的目標? (我希望我已經讓自己清楚了!)。

+0

@exacerbatedexpert: 我知道,但是當這個頁面在客戶端打開時,'Request.Url'仍然會引用當前頁面的url,afaik'.LocalPath'應該給它的本地副本,我調用'Path.GetFileName'它應該給我我想要的,並且應該能夠打印頁面。 – Razort4x

回答

0

我想你混淆了客戶端與服務器上的打印打印。

您可以使用Java客戶端打印,怎麼有些優惠券打印機的工作。然而,這是令人不悅的。客戶應該總是有他們想要印刷的選擇。

Page_Load的調用將在服務器端的打印機來完成。

+0

我知道,他們應該總是...... 但是對於其他一些測試目的,我想知道這是否可能,如果不是以我通過其他方式做的方式?但是這可以完成嗎? – Razort4x