将pdf文件发送到打印机 - 打印pdf

Als*_*san 22 c# printing pdf visual-studio-2010

我正在使用Visual Studio 2010(C#)编写Web应用程序.我想在单击按钮时将PDF(保存在我的电脑中)发送到打印机.

为了创建PDF,我使用了iTextSharp.我试过这个,但它只是打开Adobe Reader:

               proc.StartInfo.FileName = @"C:\Archivos de programa\Adobe\Reader10.0\Reader\AcroRd32.exe";
               proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName);
               proc.StartInfo.UseShellExecute = false;
               proc.StartInfo.CreateNoWindow = true;

               proc.Start();
Run Code Online (Sandbox Code Playgroud)

先感谢您!!!

Joh*_*son 43

这已经在这里被询问和回答: 如何将文件文件发送到打印机并打印?

使用的代码:

private void SendToPrinter()
    {
        ProcessStartInfo info = new ProcessStartInfo();
        info.Verb = "print";
        info.FileName = @"c:\output.pdf";
        info.CreateNoWindow = true;
        info.WindowStyle = ProcessWindowStyle.Hidden;

        Process p = new Process();
        p.StartInfo = info;
        p.Start();

        p.WaitForInputIdle();
        System.Threading.Thread.Sleep(3000);
        if (false == p.CloseMainWindow())
            p.Kill();
    }
Run Code Online (Sandbox Code Playgroud)

它基本上打开一个"隐藏的"pdf阅读器,告诉它打印,等待它完成然后关闭它

  • WaitForInputIdle()无效.看起来p在Start()之后处于空闲模式.只有睡眠3秒才允许Adobe完成假脱机.这可能是大型文档的问题. (4认同)
  • 这是一个很好的解决方案,但如果我想用手动打印机设置打印文件怎么办? (3认同)
  • @Alsan:没问题:)很高兴它有所帮助 (2认同)
  • 它在Windows 8+上不再起作用 (2认同)