无法使用C#代码在Windows 8中打印现有PDF文件

时间:2013-05-26 13:17:31

标签: c# winforms c#-4.0 printing

我想在用户点击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中运行,我还需要做些什么吗?

1 个答案:

答案 0 :(得分:0)

如果它在命令行中不起作用,则可能无法使用c#代码。

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