使用c#以编程方式更改打印HTML文件的打印机设置(打印机托盘)

时间:2014-04-17 05:54:03

标签: c# printing

我是c#的新手,我正在打印应用程序,目前我正在使用WebBrowser来打印HTML文件,我可以通过编程方式更改打印机设置,而不是通过打印对话框手动更改它。我想选择打印机托盘打印不同的HTML文件,希望有人能为我提供解决方案。谢谢!

2 个答案:

答案 0 :(得分:1)

使用printersettings对象

var printerSettings = new System.Drawing.Printing.PrinterSettings();

然后看看可以使用哪些属性和功能。

答案 1 :(得分:0)

一种常用的方法是在打印机之前更改默认打印机,但我个人对此有太多问题。 (因为之后打印机没有正确更改,或者同时启动用户打印任务)。

您可以使用Print Templates做更多事情。然而,他们还有更多的工作(但值得imo)。除了设置打印机,您还可以设置页眉/页脚/边距/ papertype /等。 无法在此处发布示例项目,但使用基于上述链接示例的模板,可以设置打印机(模板在javascript中)

var PrinterName = "{Printer}";    

if (PrinterName.length > 0){        
    dialogArguments.__IE_PrinterCMD_Printer =  PrinterName;
}

该模板使用,嗯,printertemplate-template编写,{Printer}在写入时被PrinterName替换。

然后一些接口发挥作用,调用webbrowsers底层打印命令。 (通过exec) 伪代码:

    const int print = 6;
    string templatelocation = "FileName";
    ((IOleCommandTarget3)WebBrowser.Document.DomDocument).Exec(IntPtr.Zero, print, 0, ref templatelocation, ref templatelocation);

这是非常有限的信息,它还需要做更多的工作才能让它正常工作,但是你可以获得有关html打印所需的所有选项。 到目前为止,简单的'选项。要设置托盘,您必须将devmode对象传递给printtemplate。我可以提出一个示例项目,但不知道我今天是否可以解决这个问题。