我正在尝试使用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命令行参数? 请帮忙。