1、使用Windows命令行
BAT Code
print /D:"\\COMPUTERNAME\打印机名" "PDF文件路径"
C# Code
ProcessStartInfo psInfo = new ProcessStartInfo(); psInfo.Verb = "Print"; // or "PrintTo" psInfo.FileName = pdfFileName; psInfo.Arguments = String.Format("/p /h \"{0}\" \"{1}\"", pdfFileName, printerName); psInfo.WindowStyle = ProcessWindowStyle.Hidden; psInfo.CreateNoWindow = true; psInfo.UseShellExecute = true; Process process = Process.Start(psInfo);
2、使用adobe命令行
BAT Code
#发送到默认打印机 AcroRd32.exe /s /o /h /p “PDF文件路径” #发送到指定打印机 AcroRd32.exe /s /o /h /t “PDF文件路径” “打印机名” “驱动” “端口”
C# Code
ProcessStartInfo psInfo = new ProcessStartInfo(); psInfo.FileName = @"C:\Program Files\Adobe\Reader 9.0\Reader\AcroRd32.exe"; psInfo.Arguments = String.Format("/s /o /h /p{0}", pdfFileName); psInfo.WindowStyle = ProcessWindowStyle.Hidden; psInfo.CreateNoWindow = true; psInfo.UseShellExecute = true; Process p= Process.Start(psInfo); p.WaitForInputIdle(); System.Threading.Thread.Sleep(3000); if (false == p.CloseMainWindow())p.Kill();
3、使用gostscript命令行
BAT Code
gswin32c.exe -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile="\\spool\打印机名称" "PDF文件路径"
C# Code
ProcessStartInfo psInfo = new ProcessStartInfo(); psInfo.Arguments = String.Format(" -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile=\"\\\\spool\\{0}\" \"{1}\"", printerName, pdfFileName); psInfo.FileName = @"C:\Program Files\gs\gs8.70\bin\gswin32c.exe"; psInfo.UseShellExecute = false; Process p= Process.Start(psInfo); p.WaitForInputIdle(); System.Threading.Thread.Sleep(3000); if (false == p.CloseMainWindow())p.Kill();
4、使用PrintDocument+第三方渲染插件(参考资料3)
PrintDocument pd = new PrintDocument(); pd.DocumentName = pdfName; pd.PrinterSettings.PrinterName =printerName; pd.PrinterSettings.PrintFileName = fileName; pd.PrintController = new StandardPrintController(); pd.OriginAtMargins = false; pd.PrintPage += new PrintPageEventHandler(this.pd_PrintPage); pd.Print();
参考资料:
PDF: direct printing with .NET
How to Silently Print PDFs using Adobe Reader and C#
100% .NET component for rendering PDF documents