Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Una situación común a la que se enfrentan los profesionales de la tecnología de la información (TI) que administran el conjunto de impresoras de toda la compañía es generar una lista de impresoras que tienen determinadas características. El método GetPrintQueues de un objeto PrintServer y la enumeración EnumeratedPrintQueueTypes proporcionan esta funcionalidad.
Ejemplo
En el ejemplo siguiente, el código comienza creando una matriz de marcadores que especifican las características de las colas de impresión que deseamos mostrar en la lista. En este ejemplo, se buscan las colas de impresión que están instaladas localmente en el servidor de impresión y son compartidas. La enumeración EnumeratedPrintQueueTypes proporciona muchas otras posibilidades.
A continuación, el código crea un objeto LocalPrintServer, una clase derivada de PrintServer. El servidor de impresión local es el equipo en el que se ejecuta la aplicación.
El último paso significativo consiste en pasar la matriz al método GetPrintQueues.
Por último, se presentan los resultados al usuario.
' 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()
// 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();
Puede extender este ejemplo haciendo que el bucle foreach que recorre todas las colas de impresión realice un filtrado mayor. Por ejemplo, podría dejar fuera las impresoras que no admitan la impresión a dos caras haciendo que el bucle llame al método GetPrintCapabilities de cada cola de impresión y pruebe el valor devuelto correspondiente a la presencia de la impresión a dos caras.
Vea también
Referencia
Conceptos
Información general sobre impresión