我是c#的新手,我正在打印应用程序,目前我正在使用WebBrowser来打印HTML文件,我可以通过编程方式更改打印机设置,而不是通过打印对话框手动更改它。我想选择打印机托盘打印不同的HTML文件,希望有人能为我提供解决方案。谢谢!
答案 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。我可以提出一个示例项目,但不知道我今天是否可以解决这个问题。