【问题标题】:Unable print existing PDF file in Windows 8 using C# code无法使用 C# 代码在 Windows 8 中打印现有 PDF 文件
【发布时间】:2013-05-26 13:17:30
【问题描述】:

我想在用户单击 Windows 8 中的打印按钮后立即从我的 winforms 应用程序中打印 PDF 文档。下面是我正在使用的代码:

protected void PrintPDF_WithAdobe()
{
    Process proc = new Process();
    proc.StartInfo.FileName = @"C:\Program Files\Adobe\Reader 10.0\Reader\AcroRd32.exe";
    proc.StartInfo.Arguments = @"/p /h E:\Sample.pdf";
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.CreateNoWindow = true;
    proc.Start();

    for (int i = 0; i < 5; i++)
    {
        if (!proc.HasExited)
        {
            proc.Refresh();
            Thread.Sleep(2000);
        }
        else
            break;
    }
    if (!proc.HasExited)
    {
        proc.CloseMainWindow();
    }
    proc.Close();
}

但是它给出了操作系统不支持参数传递的错误。相同的代码在 Windows 7 中运行良好。我需要做些什么才能让它在 Windows 8 中运行?

【问题讨论】:

  • 如果从命令行 (cmd) 运行命令会发生什么?
  • 发生了两件事 1. 无法初始化 PNR 和 2. 正在打印文档,但没有打印出来
  • 对我来说 - 使用 Windows 8 - 从命令行执行 AcroRd32.exe /p /h 会在默认打印机上成功打印。因此,问题可能出在未正确配置的默认打印机上。

标签: c# winforms c#-4.0 printing


【解决方案1】:

如果它不能从命令行运行,它可能也不能从 C# 代码运行。

您需要弄清楚如何在 Windows 8 中从命令行打印 pdf,并使用它来替换 c# 代码中的命令 + 参数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    • 2021-08-18
    相关资源
    最近更新 更多