Comment imprimer en PDF sur le réseau par défaut de l'imprimante à l'aide de GhostScript (gswin32c.exe) commande shell

Je voudrais imprimer le fichier PDF(s) sur windows " imprimante réseau via GhostScript.
(Je ne veux pas utiliser Adobe Reader)

J'ai lu gswin32c.exe qui peuvent faire le travail.
J'ai expérimenté avec beaucoup de commandes et coudn't de trouver la façon de force gs pour imprimer des PDF sur mon (par défaut de windows) lecteur réseau.

Je n'ai pas besoin de point exact de l'imprimante réseau par défaut peut être utilisé. Mais si il n'y a pas une telle option, je suis heureux de passer le nom de l'imprimante. (J'ai essayé avec les param -SDevice="\server_IP\nom_imprimante" mais cela ne fonctionne pas ainsi...)

Commande fonctionne sous Windows cmd:

gswin32c -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile="\\spool\\\Server_Name\Printer_name" "C:\test.pdf"

Méthode créée sur la base de ci - dessus ne fonctionne pas et thorws exception. (Code d'erreur = 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;
    }

Aucune idée de comment le faire fonctionner sous C#?

Désolé, mais juste parce que vous êtes planification pour cela appeler à partir de votre application en C# n'est pas un problème de programmation, je vous suggère de Superutilisateur pour cette Ghostscript question et ont voté en faveur de cette question pour être déplacé là pour vous.
J'ai édité le post pour être plus C# spécifiques maintenant

OriginalL'auteur Maciej | 2010-04-08