How can I clone a printer ?

Platform: WPF| Category: Printing

In the example below, a second print queue is cloned from an existing print queue. The second differs from the first only in its name, location, port, and shared status. The major steps for doing this are as follows.

[C#]

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

Share with

Related FAQs

Couldn't find the FAQs you're looking for?

Please submit your question and answer.