Jump To:
Leopard Reference Library
The Mac OS X printing system is based on CUPS (Common UNIX Printing System). Mac OS X printing supports PostScript and raster printers, and offers features such as job spooling via IPP (Internet Printing Protocol), and PDF and Quartz imaging. The printing system allows applications to present extensible user interfaces so that developers can extend Apple's interface rather than write code to override it.

A guided introduction and learning path for developers new to Mac OS X printing.   Essential information for developers using Apple's printing environment.  
Document Descriptions
On Off
Display

Sorted by
Title
Sort by
Topic
Sort by
Resource Type
Sort by
Date
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
Hardware & Drivers Technical Q&As 1999-10-11
ATSUI and MLTE Printing (HTML) (日本語 HTML)
Deprecated - QD64: Describes a way to get MLTE and ATSUI text to print through the QuickDraw bottlenecks.
Carbon Technical Q&As 2000-11-08
Bonjour Printer Subtype for HTTP (HTML)
QA1555: Describes how printer vendors can register their bonjour service such that Safari can see them.
Networking Technical Q&As 2008-03-25
Carbon Printing Reference (HTML) (PDF)
Describes the C API used by Carbon applications to provide a user interface for printing.
Carbon Reference 2007-07-24
CarbonQuartzDrawingWPrinting (HTML) (DMG) (ZIP)
Deprecated - Demonstrates mixing QuickDraw and Quartz 2D drawing both on screen and during printing.
Carbon Sample Code 2003-01-14
CarbonSketch (HTML) (DMG) (ZIP)
Core Graphics only example of a Sketch application implemented with HIToolbox. Shows 1x1-CGBitmapContext for hit-testing, printing.
Carbon Sample Code 2005-03-23
CGContext Bounds (HTML)
QA1048: Explains how to determine the bounds of a CGContext.
Carbon, Cocoa Technical Q&As 2001-07-02
CGContextAddLineToPoint, CGContextAddCurveToPoint, et. al. (HTML)
QA1049: Explains why the CGContextAddXYZ APIs don't draw anything immediately.
Carbon, Cocoa Technical Q&As 2001-07-02
CGContextClosePath (HTML)
QA1046: Explains when you should call CGContextClosePath.
Carbon, Cocoa Technical Q&As 2001-10-02
Checking for the Printer Driver (HTML)
Deprecated - DV42: Describes a legacy Mac OS technique avoiding system hangs when using serial drivers on USB systems.
Hardware & Drivers Technical Q&As 2000-06-19
Cocoa PDE with Carbon Printing (HTML) (DMG) (ZIP)
Application that uses a Cocoa PDE along with the Carbon Printing APIs.
Carbon Sample Code 2007-07-27
Combinations of cupsColorSpace, cupsColorOrder and cupsBitsPerColor values supported by Mac OS X (HTML)
QA1368: Table of supported combinations of cupsColorSpace, cupsColorOrder and cupsBitsPerColor values supported by Mac OS X.
CUPS Technical Q&As 2005-08-10
Core Printing Reference (HTML) (PDF)
Describes the C API that provides an abstraction layer for application printing.
Carbon, Cocoa Reference 2007-07-24
Creating Printing Presets for iPhoto (HTML) (PDF)
Rules for creating and installing printer-specific collections of settings. Includes a sample file.
Carbon, CUPS Guides 2005-07-07
Detecting low printer ink levels (HTML)
TN2144: How to detect printer supply levels using a low ink tool
Hardware & Drivers, Networking Technical Notes 2005-06-29
Drawing a Path Multiple Times (HTML)
QA1047: Explains that path drawing operations consume the path.
Carbon, Cocoa Technical Q&As 2001-07-02
The Enhanced Print Apple Event (HTML)
TN2082: Describes an enhancement to the print Apple event that gives developers more control over scripted printing.
Carbon, Cocoa Technical Notes 2003-12-09
Extending Printing Dialogs (HTML) (PDF)
A guide to developing printing dialog extensions, including basic concepts and a documented Carbon-based sample project.
Carbon Guides 2006-10-03
Gathering all PostScript Printer Descriptions (PPDs) (HTML)
QA1529: Describes a work around for an issue in PMCopyAvailablePPDs on Mac OS X 10.4 and below
Carbon, Cocoa, CUPS Technical Q&As 2008-08-08
Generating a Non-Maskable Interrupt (NMI) (HTML) (日本語 HTML)
QA1264: Explains how to generate a non-maskable interrupt (NMI) on modern Macintosh systems.
Hardware & Drivers Technical Q&As 2008-10-13
Getting a Packet Trace (HTML) (日本語 HTML)
QA1176: Lists tools available for looking at the network packets on the wire.
Networking Technical Q&As 2008-06-03
How do I use PMSessionGetGraphicsContext to get a CGContextRef? (HTML) (日本語 HTML)
Deprecated - QA1216: Describes how to use PMSessionSetDocumentFormatGeneration and PMSessionGetGraphicsContext to get a CGContextRef for printing.
Carbon Technical Q&As 2003-02-25
How to measure CG text (HTML)
QA1051: Explains how to measure Core Graphics text.
Carbon, Cocoa Technical Q&As 2007-08-02
Mac OS X Printing System Overview (HTML) (PDF)
Introduces Apple's printing architecture. Includes a road map for developing software.
General Guides 2006-02-07
Mixing link-local IP addresses and routable IP addresses (HTML)
QA1357: Explains how to enable communication between devices with link-local addresses and devices with routable addresses.
Networking Technical Q&As 2005-07-06
New PPD keywords available in Mac OS X version 10.3 (HTML)
QA1352: Describes the new PPD keywords available for CUPS filters in Mac OS X 10.3.
CUPS, Hardware & Drivers Technical Q&As 2004-05-26
NSBox Class Reference (HTML) (PDF)
Describes a view that can display its border and a title.
Cocoa Reference 2008-10-15
NSHost Class Reference (HTML) (PDF)
Describes a representation of a network host.
Networking Reference 2007-03-24
NSPageLayout Class Reference (HTML) (PDF)
Describes a printing dialog for querying the user about page layout.
Cocoa Reference 2007-04-11
NSPrinter Class Reference (HTML) (PDF)
Describes a representation of a printer as specified by a PPD file.
Cocoa Reference 2007-01-29
NSPrintInfo Class Reference (HTML) (PDF)
Describes the print settings used for a print job.
Cocoa Reference 2009-01-06
NSPrintOperation Class Reference (HTML) (PDF)
Describes a print job.
Cocoa Reference 2007-03-02
NSPrintPanel Class Reference (HTML) (PDF)
Describes a print dialog.
Cocoa Reference 2007-07-16
NSView Class Reference (HTML) (PDF)
Describes the interface for drawing, event handling, and printing in views.
Cocoa Reference 2009-02-04
Obtaining 16 Bits-Per-Color Data with CUPS Raster Printing (HTML)
TN2149: Obtaining 16 Bits-Per-Color Data with CUPS Raster Printing
CUPS, Hardware & Drivers Technical Notes 2005-08-24
OutputBins2PDE (HTML) (DMG) (ZIP)
A Printer PDE demonstrating new features in 10.5
Carbon, Cocoa Sample Code 2008-02-08
PDEPanel Protocol Reference (HTML) (PDF)
Describes the informal protocol used to implement custom panes in a printing dialog.
Carbon, Cocoa Reference 2007-12-11
PDEPlugIn Protocol Reference (HTML) (PDF)
Describes the informal protocol used to add custom panes to a printing dialog.
Carbon, Cocoa Reference 2007-12-11
PDEPlugInCallbackProtocol Reference (HTML) (PDF)
Describes the informal protocol used to access information about the current print job.
Carbon, Cocoa Reference 2007-12-11
PDEProject (HTML) (DMG) (ZIP)
Deprecated - Demonstrates an application-hosted printing dialog extension (PDE) that displays a custom pane in the Print dialog.
Carbon Sample Code 2003-01-14
PMPrinterPrintWithFile (HTML) (DMG) (ZIP)
How to send files, for example PostScript and PDF, directly to the printer. Replaces the pict-ps path.
Carbon Sample Code 2006-07-18
PMPrinterTest (HTML) (DMG) (ZIP)
Demonstrates using the PMPrinter APIs to obtain information about the connected printers.
Carbon, Cocoa Sample Code 2009-02-13
Printer Queue vs. Printer Name (HTML)
QA1407: Explains the difference between a printer queue and a printer name.
Carbon Technical Q&As 2007-04-26
Printing Plug-in Interfaces Reference (HTML) (PDF)
Describes the various callback interfaces that Mac OS X printing plug-ins implement in Carbon.
Carbon Reference 2003-07-31
Printing Programming Topics for Cocoa (HTML) (PDF)
Explains how to support printing in Cocoa applications.
Cocoa Guides 2006-06-28
Providing PDF Workflow Options in the Print Dialog (HTML) (PDF)
Installation information and examples, including the use of Automator workflows.
Carbon, Cocoa Guides 2007-10-31
Quartz 2D Interpolation (HTML) (日本語 HTML)
QA1186: Explains how to control Quartz 2D's image interpolation.
Carbon, Cocoa Technical Q&As 2002-10-29
Quartz 2D Thread Safety (HTML) (日本語 HTML)
QA1238: Explains the thread-safety issues for the Quartz 2D API.
Carbon, Cocoa Technical Q&As 2003-02-25
Retain Counts of io_object_t Objects in IOKit.framework (HTML) (日本語 HTML)
QA1195: Distinguishes between the retain counts of an I/O Kit kernel object and its io_object_t user space proxy.
Hardware & Drivers Technical Q&As 2008-09-24
Saving Printer Settings for Automatic Printing (HTML)
TN2155: Describes how you can save a a user selected Printer, Print Settings and Page Format to disk.
Carbon Technical Notes 2007-03-29
Saving the current Core Graphics Path (HTML)
QA1056: Explains that the Core Graphics save and restore GState APIs do not affect the path.
Carbon, Cocoa Technical Q&As 2001-10-02
Supporting Printing in Your Carbon Application (HTML) (PDF)
Explains how to support printing in Carbon applications. Includes creating PDFs and porting from Mac OS 9.
Carbon Guides 2004-08-31
Ticket Services Reference (HTML) (PDF)
Describes the C API used by printer modules and PDEs to communicate printing information to the system.
Carbon Reference 2002-10-23
Tioga PostScript Printing Plugins in Mac OS X 10.2 (HTML) (日本語 HTML)
QA1085: Why Tioga printing plugins for PostScript printing aren't called on Mac OS X 10.2 and later.
CUPS, Hardware & Drivers Technical Q&As 2003-07-14
Turning Off Core Graphics Clipping (HTML)
QA1050: Explains how to clear the clipping path for a CGContext.
Carbon, Cocoa Technical Q&As 2001-07-02
Unexpected CG state changes (HTML)
QA1045: Explains why the Core Graphics drawing state sometimes changes for no apparent reason.
Carbon, Cocoa Technical Q&As 2001-07-02
Using PostScript Printer Description Files (HTML) (PDF)
Information for printer vendors. Includes installing files, PPD/PDE binding, and grouping features.
Carbon, Cocoa Guides 2005-07-07
Using PPD constraints with Paper Sizes (HTML)
QA1603: Describes the requirements for using PPD Constraints to constrain options against paper size.
CUPS, Device Drivers Technical Q&As 2008-08-08
ViewController (HTML) (DMG) (ZIP)
Demonstrates how to use "NSViewController".
Cocoa Sample Code 2007-06-11
Why does logging keep my Printer Module from working? (HTML) (日本語 HTML)
Deprecated - QA1182: Describes some problems with standard printf logging in a Printer Module on Jaguar.
Hardware & Drivers Technical Q&As 2002-11-06
Why don't all of my PDE localizations show up in all applications? (HTML) (日本語 HTML)
QA1185: Explains why some PDE localizations might not appear in all applications.
Hardware & Drivers Technical Q&As 2002-10-16