我的目標是在我的表單上的WebBrowser控件中加載一個文件(htm文件)。一旦我加載了htm文件,我想用默認打印機設置打印它。如何更改打印機隊列中打印作業的名稱?
目前我所能做的一切之上。我不能做的一件事是給打印工作一個名字。它只是使用默認的「file:/// C:/Users/blah/blah/myfilename.htm」作爲打印作業的標題。這是我想改變的。
這是可能通過WebBrowser控件或通過打印後臺處理程序(事實後更改作業標題)?
我的目標是在我的表單上的WebBrowser控件中加載一個文件(htm文件)。一旦我加載了htm文件,我想用默認打印機設置打印它。如何更改打印機隊列中打印作業的名稱?
目前我所能做的一切之上。我不能做的一件事是給打印工作一個名字。它只是使用默認的「file:/// C:/Users/blah/blah/myfilename.htm」作爲打印作業的標題。這是我想改變的。
這是可能通過WebBrowser控件或通過打印後臺處理程序(事實後更改作業標題)?
按照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
的範圍之內。
這是我發現那位從字符串
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();
}
打印HTML我已經來回這種翻來覆去的最佳途徑。我沒有任何運氣來完成改變打印作業的名稱。使用PrinterSetting對象來設置PrintFileName不會有任何幫助,因爲該方法用於打印到文件(而不是打印機)。認爲它可能仍然會影響打印工作的名字,但我仍然嘗試過,但沒有成功。就註冊表而言,我能找到的唯一設置是字體,頁腳,頁眉,頁邊距,打印背景和縮小以適合。與命名文檔無關。 :/ –