2016-01-27 122 views
1

我的目標是在我的表單上的WebBrowser控件中加載一個文件(htm文件)。一旦我加載了htm文件,我想用默認打印機設置打印它。如何更改打印機隊列中打印作業的名稱?

enter image description here

目前我所能做的一切之上。我不能做的一件事是給打印工作一個名字。它只是使用默認的「file:/// C:/Users/blah/blah/myfilename.htm」作爲打印作業的標題。這是我想改變的。

這是可能通過WebBrowser控件或通過打印後臺處理程序(事實後更改作業標題)?

回答

0

按照MSDN上WebBrowser.Print() ...

打印使用當前的打印和頁面設置當前顯示在WebBrowser控件文檔。

所以,這是一個改變WebBrowser打印設置的問題。據微軟稱,that is not allowed沒有changing the registry on the fly

作爲一個潛在的起點,一個解決方法,有一種方法來獲取默認PrinterSettings並設置PrintFileName像這樣:

PrinterSettings settings = new PrinterSettings(); 
settings.PrintFileName = "YourFileNameHere"; 

如果有辦法,然後分配這些打印機設置你的WebBrowser對象,這將是膨脹!可悲的是,這是無法完成的。但是,您可能可以使用上述代碼來設計另一種解決方案,可能不在WebBrowser的範圍之內。

+0

打印HTML我已經來回這種翻來覆去的最佳途徑。我沒有任何運氣來完成改變打印作業的名稱。使用PrinterSetting對象來設置PrintFileName不會有任何幫助,因爲該方法用於打印到文件(而不是打印機)。認爲它可能仍然會影響打印工作的名字,但我仍然嘗試過,但沒有成功。就註冊表而言,我能找到的唯一設置是字體,頁腳,頁眉,頁邊距,打印背景和縮小以適合。與命名文檔無關。 :/ –

0

這是我發現那位從字符串

void PrintString(string strHTMLText) 
{ 
    WebBrowser wbPrintString = new WebBrowser() { DocumentText = string.Empty }; 
    wbPrintString.Document.Write(strHTMLText); 
    wbPrintString.Document.Title = "Type The Header You Want Here"; 
    Microsoft.Win32.RegistryKey rgkySetting = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Internet Explorer\\PageSetup", true); 
    rgkySetting.SetValue("footer", "Type THe Footer You Want Here"); 
    rgkySetting.Close(); 
    wbPrintString.Parent = this; 
    wbPrintString.ShowPrintPreviewDialog(); 
    wbPrintString.Dispose(); 
} 
相關問題