PrintServer Class (System.Printing)

Switch View :
ScriptFree
.NET Framework Class Library
PrintServer Class

Manages the print queues on a print server, which is usually a computer, but can be a dedicated hardware print server appliance.

Inheritance Hierarchy

System.Object
  System.Printing.PrintSystemObject
    System.Printing.PrintServer
      System.Printing.LocalPrintServer

Namespace:  System.Printing
Assembly:  System.Printing (in System.Printing.dll)
Syntax

Visual Basic
Public Class PrintServer _
	Inherits PrintSystemObject
C#
public class PrintServer : PrintSystemObject
Visual C++
public ref class PrintServer : public PrintSystemObject
F#
type PrintServer =  
    class
        inherit PrintSystemObject
    end

The PrintServer type exposes the following members.

Constructors

  Name Description
Public method PrintServer() Initializes a new instance of the PrintServer class.
Public method PrintServer(PrintSystemDesiredAccess) Initializes a new instance of the PrintServer class that represents the local print server and assigns it the specified PrintSystemDesiredAccess.
Public method PrintServer(String) Initializes a new instance of the PrintServer class that has the specified path.
Public method PrintServer(String, PrintServerIndexedProperty[]) Initializes a new instance of the PrintServer class by using the specified PrintServerIndexedProperty array to determine which properties will be initialized.
Public method PrintServer(String, PrintSystemDesiredAccess) Initializes a new instance of the PrintServer class that has the specified path and the needed access.
Public method PrintServer(String, String[]) Initializes a new instance of the PrintServer class that has the specified path and properties filter.
Public method PrintServer(String, PrintServerIndexedProperty[], PrintSystemDesiredAccess) Initializes a new instance of the PrintServer class and provides the specified path, the PrintServerIndexedProperty array, and the needed access.
Public method PrintServer(String, String[], PrintSystemDesiredAccess) Initializes a new instance of the PrintServer class that has the specified path, properties filter, and the needed access.
Top
Properties

  Name Description
Public property BeepEnabled Gets or sets a value that indicates whether the print server beeps in response to an error condition in the printer.
Public property DefaultPortThreadPriority Infrastructure. Do not use.
Public property DefaultSchedulerPriority Infrastructure. Do not use.
Public property DefaultSpoolDirectory Gets or sets the path where the print server's spool files are located.
Public property EventLog Gets or sets the type of events that the print server logs.
Protected property IsDelayInitialized Gets or sets a value that indicates whether initialization of the PrintServer properties has been postponed.
Protected property IsDisposed Gets or sets a value that indicates whether the object has been disposed. (Inherited from PrintSystemObject.)
Public property MajorVersion Gets the major version of the operating system.
Public property MinorVersion Gets the minor version within the major version of the operating system.
Public property Name Gets the name of the print server. (Overrides PrintSystemObject.Name.)
Public property NetPopup Gets or sets a value that indicates whether notifications that a print job has finished are sent to either the print server or the client computer.
Public property Parent Gets the parent of the object. (Inherited from PrintSystemObject.)
Public property PortThreadPriority Gets or sets the thread priority for the process that manages I/O through the printer ports.
Public property PropertiesCollection Gets a collection of attribute and value pairs. (Inherited from PrintSystemObject.)
Public property RestartJobOnPoolEnabled Gets or sets a value that indicates whether users can restart jobs after an error occurs if printer pooling is enabled.
Public property RestartJobOnPoolTimeout Gets or sets a value that indicates the wait time before a job can be restarted, if an error occurs when printer pooling is also enabled.
Public property SchedulerPriority Gets or sets the thread priority for the process that routes print jobs from applications to print queues.
Public property SubSystemVersion Gets the version of the print spooler system.
Top
Methods

  Name Description
Public method Commit Commits any changes that your program made to the properties of the print server object by writing them to the print server that the object represents. (Overrides PrintSystemObject.Commit().)
Public method Static member DeletePrintQueue(PrintQueue) Removes the specified PrintQueue from the print server.
Public method Static member DeletePrintQueue(String) Removes the print queue with the specified name from the print server.
Public method Dispose() Releases all resources used by the PrintSystemObject. (Inherited from PrintSystemObject.)
Protected method Dispose(Boolean) Releases the unmanaged resources used by the PrintSystemObject and optionally releases the managed resources. (Inherited from PrintSystemObject.)
Public method Equals(Object) Determines whether the specified Object is equal to the current Object. (Inherited from Object.)
Protected method Finalize Releases the resources that are being used by the PrintSystemObject. (Inherited from PrintSystemObject.)
Public method GetHashCode Serves as a hash function for a particular type. (Inherited from Object.)
Public method GetPrintQueue(String) Obtains a reference to the named print queue from the print server.
Public method GetPrintQueue(String, String[]) Gets a specified print queue from the print server.
Public method GetPrintQueues() Gets the collection of print queues that the print server hosts.
Public method GetPrintQueues(EnumeratedPrintQueueTypes[]) Gets the collection of print queues of the specified types that are named in EnumeratedPrintQueueTypes and hosted by the print server.
Public method GetPrintQueues(PrintQueueIndexedProperty[]) Gets a collection of print queues that are hosted by the print server and initialized only in the properties that are specified in the PrintQueueIndexedProperty array.
Public method GetPrintQueues(String[]) Gets a collection of print queues that are hosted by the print server and that are initialized only in the specified properties.
Public method GetPrintQueues(PrintQueueIndexedProperty[], EnumeratedPrintQueueTypes[]) Gets a collection of print queues of the specified types. These print queues are only initialized in the properties that are specified in the PrintQueueIndexedProperty array.
Public method GetPrintQueues(String[], EnumeratedPrintQueueTypes[]) Gets the collection of print queues, which are of the specified EnumeratedPrintQueueTypes and are initialized only in the specified properties.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Protected method Initialize Initializes the properties of the PrintSystemObject. (Inherited from PrintSystemObject.)
Public method InstallPrintQueue(String, String, String[], String, PrintPropertyDictionary) Installs a print queue, and associated printer driver, on the print server.
Public method InstallPrintQueue(String, String, String[], String, PrintQueueAttributes) Installs a print queue, and associated printer driver, on the print server.
Public method InstallPrintQueue(String, String, String[], String, PrintQueueAttributes, PrintQueueStringProperty, Int32, Int32) Installs a prioritized print queue, and associated printer driver, on the print server.
Public method InstallPrintQueue(String, String, String[], String, PrintQueueAttributes, String, String, String, String, Int32, Int32) Installs a shared, prioritized print queue, and associated printer driver, on the print server.
Protected method InternalDispose Releases the unmanaged resources that are used by the PrintServer and optionally releases the managed resources. (Overrides PrintSystemObject.InternalDispose(Boolean).)
Protected method MemberwiseClone Creates a shallow copy of the current Object. (Inherited from Object.)
Public method Refresh Updates the properties of the PrintServer object so that each property value matches the corresponding attribute value of the print server that the object represents. (Overrides PrintSystemObject.Refresh().)
Public method ToString Returns a string that represents the current object. (Inherited from Object.)
Top
Remarks

When your program writes a value to a property of PrintServer, that change has no effect until it is passed on to the computer that is represented by the PrintServer object. To commit changes, use the Commit method for the object.

Similarly, other applications may change the actual print service properties of the computer. To make sure that the PrintServer object for your program has the latest values, use the Refresh method for the object.

Examples

The following example shows how to create an instance of PrintServer.

Visual Basic


		' Create a PrintServer
		' "theServer" must be a print server to which the user has full print access.
		Dim myPrintServer As New PrintServer("\\theServer")

		' List the print server's queues
		Dim myPrintQueues As PrintQueueCollection = myPrintServer.GetPrintQueues()
		Dim printQueueNames As String = "My Print Queues:" & vbLf & vbLf
		For Each pq As PrintQueue In myPrintQueues
			printQueueNames &= vbTab & pq.Name & vbLf
		Next pq
		Console.WriteLine(printQueueNames)
		Console.WriteLine(vbLf & "Press Return to continue.")
		Console.ReadLine()



C#


// Create a PrintServer
// "theServer" must be a print server to which the user has full print access.
PrintServer myPrintServer = new PrintServer(@"\\theServer");

// List the print server's queues
PrintQueueCollection myPrintQueues = myPrintServer.GetPrintQueues();
String printQueueNames = "My Print Queues:\n\n";
foreach (PrintQueue pq in myPrintQueues)
{
    printQueueNames += "\t" + pq.Name + "\n";
}
Console.WriteLine(printQueueNames);
Console.WriteLine("\nPress Return to continue.");
Console.ReadLine();



Version Information

.NET Framework

Supported in: 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Platforms

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also

Reference

Other Resources

Community Content

Jesse Houwing
Dispose objects
The sample doesn't show it, but all the objects from this namespace inherit from PrintSystemObject which in turn implements IDisposable. So you need to use a proper using statement (C#) or try/finally to clean up these objects after use.