Me gustaría imprimir archivos PDF en la impresora de red de Windows a través de GhostScript.
(no quiero utilizar Adobe Reader)Cómo imprimir PDF en una impresora de red predeterminada usando el comando de shell GhostScript (gswin32c.exe)
He leído gswin32c.exe que puede hacer el trabajo.
Experimenté con muchos comandos y no encontré la manera de forzar gs para imprimir PDF en mi unidad de red (predeterminada de Windows).
No necesito el punto exacto de la impresora de red: se puede usar el predeterminado. Pero si no existe tal opción, me alegra pasar el nombre de la impresora también. (He intentado con -sDEVICE parámetro = "\ server_IP \ nombre_impresora" pero esto no funcionó, así ...)
comando cmd trabajando bajo Windows: Método
gswin32c -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile="\\spool\\\Server_Name\Printer_name" "C:\test.pdf"
base creada en la anterior - doesnt excepción de trabajo y errores. (Código de error = 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;
}
¿Alguna idea de cómo hacerlo funcionar con C#?
Lo siento, pero solo porque está planeando llamar esto desde su aplicación C# no lo convierte en un problema de programación, sugeriría SuperUser para esta pregunta de Ghostscript y he votado a favor de que esta pregunta se traslade allí para usted. – Lazarus
He editado la publicación para que sea más específica de C# ahora – Maciej