如何以编程方式打印各种文件类型

时间:2012-08-20 14:28:29

标签: c# pdf printing

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

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

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

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

有没有人这样做过?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:2)

看看这个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);