我正在写一个应用程序,执行一些测试,并产生一些不同的报告。这些文件可以是标签、最终客户的PDF、维修部门的PDF、XML文件等的任意组合。
根据报告类型,我需要将文件发送到文件系统或发送到多个不同打印机(A4、label等)中的一个。理想情况下不应该有弹出窗口--直接写在纸上就行了。
如何将文件(PDF、XML)发送到打印机?我曾认为对于XML/Text,我可以直接用File.Copy连接到LPTn,但这似乎行不通。对于PDF,我猜我可以用一些参数调用Acrobat,这些参数会导致打印PDF。
我使用的打印机映射到LPTn。有没有更好的方法来做到这一点,并将定义存储在应用程序中?例如,标签转到MyLabelPrinter,A4 PDF转到MyA4Printer。
有人这么做过吗?
发布于 2012-08-20 22:34:37
ProcessStartInfo info = new ProcessStartInfo("[path to your file]");
info.Verb = "PrintTo";
info.Arguments = "\"[printer name]\"";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(info);
发布于 2012-08-20 22:36:11
看看这个webpage。您应该可以找到您正在查找的PDF信息。例如,它将如下所示:
ProcessStartInfo infoOnProcess = new ProcessStartInfo("C:/example.pdf");
info.Verb = "PrintTo";
//Put a if there, if you want to change printer depending to file extension
info.Arguments = "\"HP-example-Printer\"";
info.CreateNoWindow = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
Process.Start(infoOnProcess);
https://stackoverflow.com/questions/12039551
复制相似问题