Bagikan melalui


Cara: Mengkloning Printer

Sebagian besar bisnis akan, pada titik tertentu, membeli beberapa printer dengan model yang sama. Biasanya, ini semua diinstal dengan pengaturan konfigurasi yang hampir identik. Menginstal setiap printer bisa memakan waktu dan rawan kesalahan. Namespace System.Printing.IndexedProperties dan kelas InstallPrintQueue yang diekspos dengan Microsoft .NET Framework memungkinkan untuk langsung menginstal sejumlah antrean cetak tambahan yang dikloning dari antrean cetak yang ada.

Contoh

Dalam contoh di bawah ini, antrean cetak kedua dikloning dari antrean cetak yang ada. Yang kedua berbeda dari yang pertama hanya dalam nama, lokasi, port, dan status bersama. Langkah-langkah utama untuk melakukan ini adalah sebagai berikut.

  1. Buat objek PrintQueue untuk printer yang ada yang akan dikloning.

  2. Buat PrintPropertyDictionary dari PropertiesCollection dari PrintQueue. Properti Value dari setiap entri dalam kamus ini adalah objek dari salah satu jenis yang berasal dari PrintProperty. Ada dua cara untuk mengatur nilai entri dalam kamus ini.

    • Gunakan metode Hapus dan Add milik kamus untuk menghapus entri lalu menambahkannya kembali dengan nilai yang diinginkan.

    • Gunakan metode SetProperty pada kamus.

    Contoh di bawah ini mengilustrasikan kedua cara tersebut.

  3. Buat objek PrintBooleanProperty dan atur Name ke "IsShared" dan Value ke true.

  4. Gunakan objek PrintBooleanProperty untuk menjadi nilai entri "IsShared" PrintPropertyDictionary.

  5. Buat objek PrintStringProperty dan atur Name ke "ShareName" dan Value ke Stringyang sesuai.

  6. Gunakan objek PrintStringProperty untuk menjadi nilai entri "ShareName" PrintPropertyDictionary.

  7. Buat objek PrintStringProperty lain dan atur Name ke "Lokasi" dan Value ke Stringyang sesuai.

  8. Gunakan objek PrintStringProperty kedua untuk menjadi nilai entri "Lokasi" PrintPropertyDictionary.

  9. Buat array terdiri dari beberapa String. Setiap item adalah nama port pada server.

  10. Gunakan InstallPrintQueue untuk menginstal printer baru dengan nilai baru.

Contohnya adalah di bawah ini.

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();
Dim myLocalPrintServer As New LocalPrintServer(PrintSystemDesiredAccess.AdministrateServer)
Dim sourcePrintQueue As PrintQueue = myLocalPrintServer.DefaultPrintQueue
Dim myPrintProperties As PrintPropertyDictionary = sourcePrintQueue.PropertiesCollection

' Share the new printer using Remove/Add methods
Dim [shared] As New PrintBooleanProperty("IsShared", True)
myPrintProperties.Remove("IsShared")
myPrintProperties.Add("IsShared", [shared])

' Give the new printer its share name using SetProperty method
Dim theShareName As New PrintStringProperty("ShareName", """Son of " & sourcePrintQueue.Name & """")
myPrintProperties.SetProperty("ShareName", theShareName)

' Specify the physical location of the new printer using Remove/Add methods
Dim theLocation As New PrintStringProperty("Location", "the supply room")
myPrintProperties.Remove("Location")
myPrintProperties.Add("Location", theLocation)

' Specify the port for the new printer
Dim port() As String = { "COM1:" }


' Install the new printer on the local print server
Dim clonedPrinter As PrintQueue = 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()

Lihat juga