【问题标题】:How can I change the name of a print job in the printer queue?如何更改打印机队列中打印作业的名称?
【发布时间】:2016-01-27 23:34:48
【问题描述】:

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

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

这是否可能通过 WebBrowser 控件或通过打印后台处理程序(事后更改作业标题)?

【问题讨论】:

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


    【解决方案1】:

    根据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 的范围。

    【讨论】:

    • 我一直在反复讨论这个问题。我没有任何运气来完成更改打印作业的名称。使用 PrinterSetting 对象设置 PrintFileName 没有任何帮助,因为该方法用于打印到文件(而不是打印机)。认为它可能仍然会影响打印作业的名称,我还是尝试了它,但没有成功。就注册表而言,我能找到的唯一设置是字体、页脚、页眉、边距、打印背景和缩小以适应。与命名文档无关。 ://
    【解决方案2】:

    这是我从字符串中打印 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();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-14
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 2012-06-23
      • 1970-01-01
      相关资源
      最近更新 更多