将 pdf 文件发送到打印机 - 打印 pdf [重复]

Posted

技术标签:

【中文标题】将 pdf 文件发送到打印机 - 打印 pdf [重复]【英文标题】:send pdf file to a printer - print pdf [duplicate] 【发布时间】:2013-07-01 04:06:19 【问题描述】:

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

为了创建 PDF,我使用了 iTextSharp。我试过了,但它只是打开了 Adob​​e 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();

提前谢谢你!!!

【问题讨论】:

【参考方案1】:

这里已经提出并回答了这个问题: How can I send a file document to the printer and have it print?

使用的代码:

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

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

【讨论】:

非常感谢!这真的对我有用!抱歉我之前没能回答你…… @Alsan:没问题 :) 很高兴它有帮助 这是一个很好的解决方案,但是如果我想使用手动打印机设置打印文档怎么办? WaitForInputIdle() 无效。似乎 p 在 Start() 之后处于空闲模式。只有 3 秒的睡眠允许 Adob​​e 完成假脱机。对于大型文档,这可能是个问题。 它不再适用于 Windows 8+

以上是关于将 pdf 文件发送到打印机 - 打印 pdf [重复]的主要内容,如果未能解决你的问题,请参考以下文章

通过 Python 扫描指令从打印机获取 PDF 文件

如何以编程方式将 PDF 数据发送到打印机?

将 WebView HTML 内容直接打印到 PDF 文件

使用 Qt 打印 PDF 文件

如何将pdf数据发送到微控制器

在 Mac 中 Java 打印 PDF 文件