如何通过编程实现打印各种文件类型

4
我正在编写一个应用程序,执行一些测试并生成许多不同的报告。这些报告可以是任何组合:标签,面向最终客户的PDF,面向修复部门的PDF,XML文件等。
根据报告类型,我需要将文件发送到文件系统或多个不同打印机之一(A4,标签等)。理想情况下,不应出现弹出窗口 - 直接打印到纸张上。
我该如何将文件(PDF,XML)发送到打印机?我原以为对于XML /文本,我只需将其File.Copy到LPTn即可,但似乎行不通。对于PDF,我猜测我可以调用Acrobat并使用某些参数使PDF被打印。
我使用的打印机映射到LPTn。是否有更好的方法来做到这一点,并在应用中存储定义?即,标签发送到MyLabelPrinter,A4 PDF发送到MyA4Printer。
有人做过这个吗?
2个回答

9
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);

2
请查看这个网页,你可以在里面找到有关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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接