首页 > 解决方案 > '指定的可执行文件不是此操作系统平台的有效应用程序

问题描述

我想在没有用户交互的情况下从 C# 代码打印 PDF 文件。

我尝试了这个公认的答案,但它对我不起作用。

这是我试过的代码:

Process p = new Process();
p.StartInfo = new ProcessStartInfo()
{
     CreateNoWindow = true,
     Verb = "print",
     FileName = @"G:\Visual Studio Projects\PrintWithoutGUI\PrintWithoutGUI\Courses.pdf" //put the correct path here
};
p.Start();

我得到这个例外:

System.ComponentModel.Win32Exception:'指定的可执行文件不是此 OS 平台的有效应用程序。'`

标签: c#printingprocess

解决方案


通过添加 UseShellExecute=true尝试此操作,它将打印到默认打印机,但如果您想打印到特定的打印,则通过指定打印机的名称Arguments属性将动词print 更改为动词 printTo 。

 private static void PrintByProcess()
    {
        using (Process p = new Process())
        {
            p.StartInfo = new ProcessStartInfo()
            {
                CreateNoWindow = true,
                UseShellExecute=true,
                Verb = "print",
                FileName = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\doc.pdf"
            };

            p.Start();
        }

推荐阅读