为什么Ghostscript(gswin32c.exe)只打印我的多页PDF文档的第一页

时间:2017-03-09 08:37:09

标签: c# pdf printing ghostscript

我正在尝试使用Ghostscipt(gswin32c.exe + gsdll32.dll)从NET 2.0 x86控制台应用程序打印一些多页PDF文件。一切正常,但只打印了我的PDF文件的第一页。实际上,在我们的生产环境中,几乎任何PDF文档都将包含多个页面,因此我需要打印所有这些页面。

以下是我用于将PDF文件发送到带有GS的打印机的代码:

using (PrintDialog dialog = new PrintDialog())
{
    dialog.AllowPrintToFile = false;
    dialog.AllowCurrentPage = false;
    dialog.AllowSomePages = false;
    dialog.PrinterSettings.Copies = 1;

    DialogResult result = dialog.ShowDialog();
    if (result == DialogResult.OK)
    {
       ProcessStartInfo info = new ProcessStartInfo();
       info.Verb = "PDF silent print (gswin32c)";
       info.WorkingDirectory = tempDir;
       info.FileName = tempDir + @"\gswin32c.exe";
       info.CreateNoWindow = true;
       info.WindowStyle = ProcessWindowStyle.Hidden;
       info.UseShellExecute = false;
       info.Arguments = String.Format(" -dPrinted -dBATCH -dNPAUSE -dNOSAFER -dNOPROMPT -dFIXEDMEDIA -dPDFFitPage -dNumCopies=1 -sDEVICE=mswinpr2 -sOutputFile=\"%printer%{0}\" \"{1}\"", new object[] { dialog.PrinterSettings.printerName, pdfFilename });

       using (Process p = Process.Start(info))
       {   
            p.WaitForExit(1 * 1000);

            if (!p.HasExited)
                p.Kill();
       }
}

我是否遗漏了一些GhostScript命令行参数? 请帮忙。

0 个答案:

没有答案