Condividi tramite


Procedura: enumerare un sottoinsieme di code di stampa

Aggiornamento: novembre 2007

Una situazione che spesso i professionisti del settore IT (Information Technology) che gestiscono una serie di stampanti a livello aziendale devono affrontare riguarda la creazione di un elenco di stampanti con determinate caratteristiche. Tale funzionalità viene fornita dal metodo GetPrintQueues di un oggetto PrintServer e dall'enumerazione EnumeratedPrintQueueTypes.

Esempio

Nell'esempio riportato di seguito, nella parte iniziale del codice viene creata una matrice di flag che specificano le caratteristiche delle code di stampa che si desidera elencare. In questo esempio, si ricercano le code di stampa installate localmente sul server di stampa e condivise. L'enumerazione EnumeratedPrintQueueTypes offre molte altre possibilità.

Il codice crea quindi un oggetto LocalPrintServer, una classe derivata da PrintServer. Il server di stampa locale è il computer in cui l'applicazione è in esecuzione.

L'ultimo passaggio significativo consiste nel passare la matrice al metodo GetPrintQueues.

I risultati vengono infine presentati all'utente.

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

È possibile estendere questo esempio mediante un ulteriore screening eseguito nel ciclo foreach che scorre tutte le code di stampa. Ad esempio, è possibile escludere le stampanti che non supportano la stampa fronte retro chiamando il metodo GetPrintCapabilities di ogni coda di stampa all'interno del ciclo e verificando la presenza di stampe fronte retro nel valore restituito. Per un esempio, vedere Esempio di creazione di documenti XPS.

Vedere anche

Concetti

Documenti di Windows Presentation Foundation

Cenni preliminari sulla stampa

Riferimenti

GetPrintQueues

PrintServer

LocalPrintServer

EnumeratedPrintQueueTypes

PrintQueue

GetPrintCapabilities

Altre risorse

Esempi relativi alla stampa

Microsoft XPS Document Writer