如何更改打印机队列中的打印作业名称?

时间:2016-01-27 23:34:49

标签: c# html c#-4.0 printing webbrowser-control

我的目标是在表单上的WebBrowser控件中加载文件(htm文件)。一旦我加载了htm文件,我想用默认的打印机设置打印它。

enter image description here

目前我可以做以上所有事情。我不能做的一件事就是给打印作业起一个名字。它只使用默认的" file:/// C:/Users/blah/blah/myfilename.htm"为打印作业的标题。这就是我想要改变的。

这是通过WebBrowser控件还是通过打印假脱机程序实现的(事后更改了职称)?

2 个答案:

答案 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();
}