我的目标是在表单上的WebBrowser控件中加载文件(htm文件)。一旦我加载了htm文件,我想用默认的打印机设置打印它。
目前我可以做以上所有事情。我不能做的一件事就是给打印作业起一个名字。它只使用默认的" file:/// C:/Users/blah/blah/myfilename.htm"为打印作业的标题。这就是我想要改变的。
这是通过WebBrowser控件还是通过打印假脱机程序实现的(事后更改了职称)?
答案 0 :(得分:0)
根据WebBrowser.Print()上的MSDN ...
使用当前打印和页面设置打印当前在WebBrowser控件中显示的文档。
因此,需要更改WebBrowser
打印设置。据微软称,that is not allowed没有changing the registry on the fly。
作为解决方法的潜在起点,有一种方法可以获取默认PrinterSettings
并设置PrintFileName
,如下所示:
PrinterSettings settings = new PrinterSettings();
settings.PrintFileName = "YourFileNameHere";
如果有办法将这些打印机设置分配给WebBrowser
对象,那就会膨胀!可悲的是,这是不可能做到的。但是,您可以使用上述代码来设计另一种解决方案,可能超出WebBrowser
的范围。
答案 1 :(得分:0)
这是我从字符串
打印HTML的最佳方式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();
}