【问题标题】:'The specified executable is not a valid application for this OS platform'指定的可执行文件不是此操作系统平台的有效应用程序
【发布时间】:2020-01-25 21:35:57
【问题描述】:

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

我尝试了this accepted answer,但它不适合我。

这是我试过的代码:

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: '指定的可执行文件不是此操作系统平台的有效应用程序。'`

【问题讨论】:

  • 尝试将UseShellExecute 设置为true

标签: c# printing process


【解决方案1】:

通过添加 UseShellExecute=true 尝试此操作,它将打印到默认打印机,但如果您想打印到特定的打印,请将 verb 打印更改为动词 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();
        }

【讨论】:

【解决方案2】:

这是编写代码的正确方法

Process p = new Process();
p.StartInfo = new ProcessStartInfo()
{
    CreateNoWindow = true,
    Verb = "print",
    FileName = "PDfReader.exe", //put the path to the pdf reading software e.g. Adobe Acrobat
    Arguments = "PdfFile.pdf" // put the path of the pdf file you want to print
};
p.Start();

【讨论】:

  • 是不是不能打开 .exe 应用程序?
  • 不,这是唯一的方法。除非您在项目中使用了 pdf 库。其中有很多。例如,您可以使用 IronPDF,但它不是免费的。除此之外,我认为这是您唯一的选择。另外,在大多数情况下,将运行的 .exe 将不可见,因为您已将 CreateNoWindow 属性设置为 true
  • 我问你是因为 .exe 应用程序出现了!谢谢
  • 你可以尝试将WindowStyle = ProcessWindowStyle.Hidden,添加到你的new ProcessStartInfo()的初始化中
  • 如果上述方法不起作用,您也可以尝试将WindowStyle设置为ProcessWindowStyle.Minimized
【解决方案3】:

这里肯定有一点错误:FileName 不应该是您尝试打印的 pdf,而应该是您尝试执行的可执行进程的路径,因此是错误消息

【讨论】:

  • 所以这意味着我必须放置应用程序的路径,即 .exe ?这没有意义。文档说获取或设置要启动的应用程序或文档。
  • 你用什么工具来打印你的pdf,你应该指定它以便它可以执行,然后你它的参数包括你的pdf的路径。
  • 我正在使用 Process 类。现在在添加新答案后一切都很好,但我不想打开 .exe 应用程序
猜你喜欢
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
  • 2014-02-11
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多