<!--
{
  "availability" : [
    "macOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "AppKit",
  "identifier" : "/documentation/AppKit/NSPrinter",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "AppKit"
    ],
    "preciseIdentifier" : "c:objc(cs)NSPrinter"
  },
  "title" : "NSPrinter"
}
-->

# NSPrinter

An object that describes a printer’s capabilities.

```
class NSPrinter
```

## Overview

[`NSPrinter`](/documentation/AppKit/NSPrinter) provides information about a printer; it does not modify printer attributes or control a printing job. A printer object can be constructed by specifying either the printer name or the make and model of an available printer. Typically, Cocoa apps don’t create [`NSPrinter`](/documentation/AppKit/NSPrinter) objects; instead, the printing system uses these objects to support the printing jobs and when it shows users a list of printers.

## Topics

### Creating the Printer Object

[`+  printerWithName:`](/documentation/AppKit/NSPrinter/init(name:))

Creates and returns a printer object initialized with the specified printer name.

[`+  printerWithType:`](/documentation/AppKit/NSPrinter/init(type:))

Creates and returns a printer object initialized to the first available printer with the specified make and model information.

### Getting General Printer Information

[`printerNames`](/documentation/AppKit/NSPrinter/printerNames)

Returns the names of all available printers.

[`printerTypes`](/documentation/AppKit/NSPrinter/printerTypes)

Returns descriptions of the makes and models of all available printers.

[`TypeName`](/documentation/AppKit/NSPrinter/TypeName)

The type you use to describe a printer’s make and model.

### Getting Attributes

[`name`](/documentation/AppKit/NSPrinter/name)

The printer’s name.

[`type`](/documentation/AppKit/NSPrinter/type)

A description of the printer’s make and model.

### Getting Page and Printer Information

[`-  pageSizeForPaper:`](/documentation/AppKit/NSPrinter/pageSize(forPaper:))

Returns the size of the page for the specified paper type.

[`PaperName`](/documentation/AppKit/NSPrinter/PaperName)

The type you use to specify the name of a type of paper.

[`languageLevel`](/documentation/AppKit/NSPrinter/languageLevel)

The PostScript language level recognized by the printer.

### Querying Tables

[`deviceDescription`](/documentation/AppKit/NSPrinter/deviceDescription)

A dictionary of keys and values that describe the device.

### Deprecated

[`-  isKey:inTable:`](/documentation/AppKit/NSPrinter/isKey:inTable:)

Returns a Boolean value that indicates whether the specified key is in the specified table.

[`-  stringForKey:inTable:`](/documentation/AppKit/NSPrinter/stringForKey:inTable:)

Returns the first occurrence of a value associated with specified key.

[`-  stringListForKey:inTable:`](/documentation/AppKit/NSPrinter/stringListForKey:inTable:)

Returns an array of strings, one for each occurrence, associated with specified key.

[`-  booleanForKey:inTable:`](/documentation/AppKit/NSPrinter/booleanForKey:inTable:)

Returns the Boolean value associated with the specified key.

[`-  floatForKey:inTable:`](/documentation/AppKit/NSPrinter/floatForKey:inTable:)

Returns the floating-point value associated with the specified key.

[`-  intForKey:inTable:`](/documentation/AppKit/NSPrinter/intForKey:inTable:)

Returns the integer value associated with the specified key.

[`-  rectForKey:inTable:`](/documentation/AppKit/NSPrinter/rectForKey:inTable:)

Returns the rectangle associated with the specified key.

[`-  sizeForKey:inTable:`](/documentation/AppKit/NSPrinter/sizeForKey:inTable:)

Returns the size data type associated with the specified key.

[`-  statusForTable:`](/documentation/AppKit/NSPrinter/statusForTable:)

Returns the status of the specified table.

[`TableStatus`](/documentation/AppKit/NSPrinter/TableStatus)

Constants that describe the state of a printer information table stored by a printer object.

[`+  printerWithName:domain:includeUnavailable:`](/documentation/AppKit/NSPrinter/printerWithName:domain:includeUnavailable:)

Deprecated.

[`-  acceptsBinary`](/documentation/AppKit/NSPrinter/acceptsBinary)

Deprecated.

[`-  domain`](/documentation/AppKit/NSPrinter/domain)

Deprecated.

[`-  host`](/documentation/AppKit/NSPrinter/host)

Deprecated.

[`-  imageRectForPaper:`](/documentation/AppKit/NSPrinter/imageRectForPaper:)

Deprecated.

[`-  isColor`](/documentation/AppKit/NSPrinter/isColor)

Deprecated.

[`-  isFontAvailable:`](/documentation/AppKit/NSPrinter/isFontAvailable:)

Deprecated.

[`-  isOutputStackInReverseOrder`](/documentation/AppKit/NSPrinter/isOutputStackInReverseOrder)

Deprecated.

[`-  note`](/documentation/AppKit/NSPrinter/note)

Deprecated.

## Relationships

### Conforms To

[`CustomStringConvertible`](/documentation/Swift/CustomStringConvertible)

[`NSCopying`](/documentation/Foundation/NSCopying)

[`NSCoding`](/documentation/Foundation/NSCoding)

[`Equatable`](/documentation/Swift/Equatable)

[`Hashable`](/documentation/Swift/Hashable)

[`CVarArg`](/documentation/Swift/CVarArg)

[`NSObjectProtocol`](/documentation/ObjectiveC/NSObjectProtocol)

[`CustomDebugStringConvertible`](/documentation/Swift/CustomDebugStringConvertible)

### Inherits From

[`NSObject-swift.class`](/documentation/ObjectiveC/NSObject-swift.class)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)