Jak na to: Vypsání podmnožiny tiskových front
Běžnou situací, se kterou čelí odborníci v oblasti informačních technologií (IT), kteří spravují sadu tiskáren v celé společnosti, je vygenerovat seznam tiskáren s určitými vlastnostmi. Tuto funkci poskytuje metoda GetPrintQueues objektu PrintServer a výčtu EnumeratedPrintQueueTypes.
Příklad
V následujícím příkladu kód začíná vytvořením pole příznaků, které definují charakteristiky tiskových front, které chceme seznam. V tomto příkladu hledáme tiskové fronty, které jsou nainstalovány místně na tiskovém serveru a jsou sdíleny. Výčet EnumeratedPrintQueueTypes nabízí mnoho dalších možností.
Kód pak vytvoří LocalPrintServer objekt, třídu odvozenou z PrintServer. Místní tiskový server je počítač, na kterém je aplikace spuštěná.
Posledním významným krokem je předání pole metodě GetPrintQueues.
Nakonec se uživateli zobrazí výsledky.
// Specify that the list will contain only the print queues that are installed as local and are shared
array<System::Printing::EnumeratedPrintQueueTypes>^ enumerationFlags = {EnumeratedPrintQueueTypes::Local,EnumeratedPrintQueueTypes::Shared};
LocalPrintServer^ printServer = gcnew LocalPrintServer();
//Use the enumerationFlags to filter out unwanted print queues
PrintQueueCollection^ printQueuesOnLocalServer = printServer->GetPrintQueues(enumerationFlags);
Console::WriteLine("These are your shared, local print queues:\n\n");
for each (PrintQueue^ printer in printQueuesOnLocalServer)
{
Console::WriteLine("\tThe shared printer " + printer->Name + " is located at " + printer->Location + "\n");
}
Console::WriteLine("Press enter to continue.");
Console::ReadLine();
// Specify that the list will contain only the print queues that are installed as local and are shared
EnumeratedPrintQueueTypes[] enumerationFlags = {EnumeratedPrintQueueTypes.Local,
EnumeratedPrintQueueTypes.Shared};
LocalPrintServer printServer = new LocalPrintServer();
//Use the enumerationFlags to filter out unwanted print queues
PrintQueueCollection printQueuesOnLocalServer = printServer.GetPrintQueues(enumerationFlags);
Console.WriteLine("These are your shared, local print queues:\n\n");
foreach (PrintQueue printer in printQueuesOnLocalServer)
{
Console.WriteLine("\tThe shared printer " + printer.Name + " is located at " + printer.Location + "\n");
}
Console.WriteLine("Press enter to continue.");
Console.ReadLine();
' Specify that the list will contain only the print queues that are installed as local and are shared
Dim enumerationFlags() As EnumeratedPrintQueueTypes = {EnumeratedPrintQueueTypes.Local, EnumeratedPrintQueueTypes.Shared}
Dim printServer As New LocalPrintServer()
'Use the enumerationFlags to filter out unwanted print queues
Dim printQueuesOnLocalServer As PrintQueueCollection = printServer.GetPrintQueues(enumerationFlags)
Console.WriteLine("These are your shared, local print queues:" & vbLf & vbLf)
For Each printer As PrintQueue In printQueuesOnLocalServer
Console.WriteLine(vbTab & "The shared printer " & printer.Name & " is located at " & printer.Location & vbLf)
Next printer
Console.WriteLine("Press enter to continue.")
Console.ReadLine()
Tento příklad můžete rozšířit tak, že smyčka foreach
, která prochází jednotlivé tiskové fronty, provede další kontrolu. Můžete například vyloučit tiskárny, které nepodporují oboustranný tisk, tím, že smyčka zavolá metodu GetPrintCapabilities každé tiskové fronty a otestuje vrácenou hodnotu pro přítomnost podpory duplexního tisku.
Viz také
- GetPrintQueues
- PrintServer
- LocalPrintServer
- EnumeratedPrintQueueTypes
- PrintQueue
- GetPrintCapabilities
- Dokumenty ve WPF
- přehled tisku
- Microsoft XPS zapisovač dokumentů
.NET Desktop feedback