我在我的項目中遇到問題,我在彈出窗口中打開了一個動態生成的PDF文件,該文件正常工作。但是現在我想在客戶端打印機打開popup時直接打印該pdf,我該如何解決?在asp.net C#中打印客戶端打印機上的pdf文件?
我需要你的幫助。請爲我提供一些代碼。
我在我的項目中遇到問題,我在彈出窗口中打開了一個動態生成的PDF文件,該文件正常工作。但是現在我想在客戶端打印機打開popup時直接打印該pdf,我該如何解決?在asp.net C#中打印客戶端打印機上的pdf文件?
我需要你的幫助。請爲我提供一些代碼。
試試這個代碼它會爲你工作。
Process printjob = new Process();
printjob.StartInfo.FileName = @"D:\R&D\Changes to be made.pdf" //path of your file;
printjob.StartInfo.Verb = "Print";
printjob.StartInfo.CreateNoWindow = true;
printjob.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
PrinterSettings setting = new PrinterSettings();
setting.DefaultPageSettings.Landscape = true;
printjob.Start();
你需要用javascript打開彈出窗口並點擊它的print()
函數。
var opts = 'width=700,height=500,toolbar=0,menubar=0,location=1,status=1,scrollbars=1,resizable=1,left=0,top=0';
var newWindow = window.open(yourUrl,'name',opts);
newWindow.print();
請注意,您打開的網址必須與您當前的網頁位於同一個網域才能生效。
我也試過這個,但它直接不打印在客戶端的打印機上。它只是在彈出窗口中打開文件,但不能從客戶機的默認打印機自動打印。我需要彈出打開時自動打印該文件,有沒有什麼辦法? –
沒有。您只能打開打印對話框。它打開了打印對話框嗎?它應該這樣做。但是你不能強制印刷,這是一個可怕的想法。想象一下你可以用這種方式進行的攻擊,如果可能的話,互聯網將無法使用。 – Nenotlep
是的,它打開了打印對話框。但我想給出的功能將直接從打印機打印該文件,以便用戶不需要單擊打印按鈕,它將在彈出窗口中打開該文件時直接打印出來。而且有可能我在其他項目中看到了這種功能。但我不知道該怎麼做? –
如果這是一個asp.net網站,那麼這將打印在服務器上,而不是客戶端。 –
被警告!這不會在客戶端上打印! – Nenotlep