Ejemplo n.º 1
0
 /// <summary>
 /// Creates a print queue using the specified name, driver, port, and print processor.  (The driver and port must already be installed.)
 /// </summary>
 /// <param name="queueName">The name of the queue to be created.</param>
 /// <param name="driverName">The driver name.</param>
 /// <param name="portName">The port name.</param>
 /// <param name="printProcessorName">The print processor.</param>
 /// <exception cref="PrintQueueInstallationException">An error occurred while creating the queue.</exception>
 public static void CreatePrintQueue(string queueName, string driverName, string portName, string printProcessorName)
 {
     LogInfo($"Installing print queue: {queueName}, {driverName}, {portName}, {printProcessorName}");
     try
     {
         using (LocalPrintServer server = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer))
         {
             server.InstallPrintQueue(queueName, driverName, new[] { portName }, printProcessorName, new PrintPropertyDictionary());
             server.Commit();
         }
     }
     catch (Exception ex)
     {
         throw new PrintQueueInstallationException(ex.Message, ex);
     }
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            //<SnippetClonePrinter>
            LocalPrintServer        myLocalPrintServer = new LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer);
            PrintQueue              sourcePrintQueue   = myLocalPrintServer.DefaultPrintQueue;
            PrintPropertyDictionary myPrintProperties  = sourcePrintQueue.PropertiesCollection;

            // Share the new printer using Remove/Add methods
            PrintBooleanProperty shared = new PrintBooleanProperty("IsShared", true);

            myPrintProperties.Remove("IsShared");
            myPrintProperties.Add("IsShared", shared);

            // Give the new printer its share name using SetProperty method
            PrintStringProperty theShareName = new PrintStringProperty("ShareName", "\"Son of " + sourcePrintQueue.Name + "\"");

            myPrintProperties.SetProperty("ShareName", theShareName);

            // Specify the physical location of the new printer using Remove/Add methods
            PrintStringProperty theLocation = new PrintStringProperty("Location", "the supply room");

            myPrintProperties.Remove("Location");
            myPrintProperties.Add("Location", theLocation);

            // Specify the port for the new printer
            String[] port = new String[] { "COM1:" };


            // Install the new printer on the local print server
            PrintQueue clonedPrinter = myLocalPrintServer.InstallPrintQueue("My clone of " + sourcePrintQueue.Name, "Xerox WCP 35 PS", port, "WinPrint", myPrintProperties);

            myLocalPrintServer.Commit();

            // Report outcome
            Console.WriteLine("{0} in {1} has been installed and shared as {2}", clonedPrinter.Name, clonedPrinter.Location, clonedPrinter.ShareName);
            Console.WriteLine("Press Return to continue ...");
            Console.ReadLine();
            //</SnippetClonePrinter>
        }