4

我正在编写一个执行一些测试并生成许多不同报告的应用程序。这些可以是标签的任意组合、最终客户的 PDF、维修部门的 PDF、XML 文件等。

根据报告类型,我需要将文件发送到文件系统或许多不同打印机(A4、标签等)之一。理想情况下,不应该有弹出窗口——直接出现在纸上。

如何将文件(PDF、XML)发送到打印机?我曾认为对于 XML/Text 我可以将 File.Copy 复制到 LPTn 但这似乎不起作用。对于 PDF,我猜我可以使用一些导致 PDF 打印的参数调用 Acrobat。

我使用的打印机映射到 LPTn。有没有更好的方法来做到这一点并将定义存储在应用程序中?即标签转到 MyLabelPrinter,A4 PDF 转到 MyA4Printer。

有人做过吗?

4

2 回答 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);
于 2012-08-20T14:34:37.147 回答
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);
于 2012-08-20T14:36:10.607 回答