Windows 8在打印pdf文件的c#过程中出错,如何操作

本文关键字:何操作 操作 出错 过程中 打印 pdf 文件 Windows | 更新日期: 2023-09-27 18:28:10

以下代码至少可以在Windows 7中完美打印pdf文件,但在Windows 8中出现错误:

                Process process = new Process();
            //process.StartInfo.CreateNoWindow = true;
            process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
            process.StartInfo.FileName = defFile;
            if (rwPrinter.Length > 0)
            {
                process.StartInfo.Verb = "printto";
                process.StartInfo.Arguments = "'"" + rwPrinter + "'"";
            }
            else
            {
                process.StartInfo.Verb = "print";
            }
            process.Start();

以下是错误的一些细节:

************** Exception Text **************
System.ComponentModel.Win32Exception (0x80004005): 
No application is associated with       the specified file for this operation
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at ECitation.Form1.process_ticket(String jobdo)
at ECitation.Form1.btnPrint_Click(Object sender, EventArgs e)

无论如何,我知道有一个用于pdf文件的adobe阅读器,但我不知道在Windows 8上工作需要什么,所以这个错误不会再次发生。

编辑,现在这在Windows 8中很奇怪:printto未被识别为内部或外部命令

我试着在谷歌上搜索这个,但很震惊没有结果。我所要做的就是用程序将我的文档打印到特定的打印机上。

Windows 8在打印pdf文件的c#过程中出错,如何操作

错误消息告诉您需要知道的所有信息。pdf文件扩展名上没有为printto谓词定义任何内容。如果你想让这种方法发挥作用,你需要配置你的文件关联来弥补这一点。

你试图做到这一点的方式非常脆弱,因为它依赖于第三方PDF查看器的模糊性。如果控制了运行应用程序的所有计算机,则可以根据需要配置PDF查看器。否则,您可能需要处理大量的客户支持。一个更强大的解决方案是使用提供此类功能的众多库之一,将PDF打印功能构建到您的应用程序中。