PrintServer.InstallPrintQueue Method (String, String, String[], String, PrintPropertyDictionary)

 

Installs a print queue, and associated printer driver, on the print server.

Namespace:   System.Printing
Assembly:  System.Printing (in System.Printing.dll)

public PrintQueue InstallPrintQueue(
	string printQueueName,
	string driverName,
	string[] portNames,
	string printProcessorName,
	PrintPropertyDictionary initialParameters
)

Parameters

printQueueName
Type: System.String

The name of the new queue.

driverName
Type: System.String

The path and name of the printer driver.

portNames
Type: System.String[]

The IDs of the ports that the new queue uses.

printProcessorName
Type: System.String

The name of the print processor.

initialParameters
Type: System.Printing.IndexedProperties.PrintPropertyDictionary

The parameters that are initialized.

Return Value

Type: System.Printing.PrintQueue

The new PrintQueue.

The following example shows how to use this method (called on the LocalPrintServer object that inherits the method from PrintServer) to install a second printer that differs in its properties from an existing printer only in location, port, and shared status.

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();

.NET Framework
Available since 3.0
Return to top
Show: