Как напечатать PDF на сетевом принтере по умолчанию с помощью команды оболочки GhostScript (gswin32c.exe)
Я хотел бы напечатать файл (ы) PDF на сетевом принтере Windows через GhostScript.
(Я не хочу использовать Adobe Reader)
я прочелgswin32c.exe который может сделать работу.
Я экспериментировал со многими командами и не нашел способа заставить gs печатать PDF на моем сетевом диске (по умолчанию для Windows).
Мне не нужен точный сетевой принтер - можно использовать по умолчанию. Но если такой опции нет, я с удовольствием передам имя принтера. (Я пытался с параметром -SDevice = "\ server_IP \ printer_name", но это не сработало ...)
Команда работает под Windows cmd:
gswin32c -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile="\\spool\\\Server_Name\Printer_name" "C:\test.pdf"
Метод создан на основе выше - не работает и не исключение. (Код ошибки = 1)
/// <summary>
/// Prints the PDF.
/// </summary>
/// <param name="ghostScriptPath">The ghost script path. Eg "C:\Program Files\gs\gs8.71\bin\gswin32c.exe"</param>
/// <param name="numberOfCopies">The number of copies.</param>
/// <param name="printerName">Name of the printer. Eg \\server_name\printer_name</param>
/// <param name="pdfFileName">Name of the PDF file.</param>
/// <returns></returns>
public bool PrintPDF (string ghostScriptPath, int numberOfCopies, string printerName, string pdfFileName) {
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.Arguments = " -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=" + Convert.ToString(numberOfCopies) + " -sDEVICE=ljet4 -sOutputFile=\"\\\\spool\\" + printerName + "\" \"" + pdfFileName + "\"";
startInfo.FileName = ghostScriptPath;
startInfo.UseShellExecute = false;
Process process = Process.Start(startInfo);
return process.ExitCode == 0;
}
Есть идеи, как заставить его работать под C #?