---
title: Core Printing
framework: applicationservices
role: collectionGroup
role_heading: API Collection
path: applicationservices/core_printing
---

# Core Printing

## Overview

Overview Core Printing is a C API that Mac apps and command line tools can use to perform printing tasks that don’t display a user interface. Core Printing defines a set of opaque types and a rich set of operations on instances of these types. The Core Printing opaque types include: PMPrintSession for general information about a print job PMPrintSettings for print job parameters PMPageFormat for the page format of a printed document PMPaper for information about a type of paper PMPrinter for information about a printer In Carbon applications, Core Printing is used together with Carbon Printing to implement printing features. For more information about Carbon Printing, see Carbon Printing Reference. In Cocoa applications, Core Printing can be used to extend the functionality in the Cocoa printing classes. The NSPrintInfo class provides direct access to some Core Printing objects. note: Core Printing is available to 64-bit applications, except for functions, data types, and constants that have been deprecated.

## Topics

### Releasing and Retaining Printing Objects

- [PMRelease(_:)](applicationservices/1461402-pmrelease.md)
- [PMRetain(_:)](applicationservices/1460190-pmretain.md)

### Creating and Using Page Format Objects

- [PMCreatePageFormat(_:)](applicationservices/1459485-pmcreatepageformat.md)
- [PMCreatePageFormatWithPMPaper(_:_:)](applicationservices/1459274-pmcreatepageformatwithpmpaper.md)
- [PMCopyPageFormat(_:_:)](applicationservices/1464669-pmcopypageformat.md)
- [PMSessionDefaultPageFormat(_:_:)](applicationservices/1462217-pmsessiondefaultpageformat.md)
- [PMSessionValidatePageFormat(_:_:_:)](applicationservices/1459090-pmsessionvalidatepageformat.md)
- [PMSessionCreatePageFormatList(_:_:_:)](applicationservices/1463985-pmsessioncreatepageformatlist.md)
- [PMPageFormatCreateDataRepresentation(_:_:_:)](applicationservices/1464227-pmpageformatcreatedatarepresenta.md)
- [PMPageFormatCreateWithDataRepresentation(_:_:)](applicationservices/1462876-pmpageformatcreatewithdatarepres.md)

### Accessing Data in Page Format Objects

- [PMGetPageFormatExtendedData(_:_:_:_:)](applicationservices/1464455-pmgetpageformatextendeddata.md)
- [PMSetPageFormatExtendedData(_:_:_:_:)](applicationservices/1463464-pmsetpageformatextendeddata.md)
- [PMGetPageFormatPaper(_:_:)](applicationservices/1461319-pmgetpageformatpaper.md)
- [PMPageFormatGetPrinterID(_:_:)](applicationservices/1462961-pmpageformatgetprinterid.md)
- [PMGetOrientation(_:_:)](applicationservices/1459144-pmgetorientation.md)
- [PMSetOrientation(_:_:_:)](applicationservices/1459016-pmsetorientation.md)
- [PMGetScale(_:_:)](applicationservices/1458796-pmgetscale.md)
- [PMSetScale(_:_:)](applicationservices/1463343-pmsetscale.md)
- [PMGetAdjustedPageRect(_:_:)](applicationservices/1461543-pmgetadjustedpagerect.md)
- [PMGetAdjustedPaperRect(_:_:)](applicationservices/1459167-pmgetadjustedpaperrect.md)
- [PMGetUnadjustedPageRect(_:_:)](applicationservices/1462944-pmgetunadjustedpagerect.md)
- [PMGetUnadjustedPaperRect(_:_:)](applicationservices/1462939-pmgetunadjustedpaperrect.md)

### Creating and Using Print Settings Objects

- [PMCreatePrintSettings(_:)](applicationservices/1463239-pmcreateprintsettings.md)
- [PMSessionDefaultPrintSettings(_:_:)](applicationservices/1460138-pmsessiondefaultprintsettings.md)
- [PMSessionValidatePrintSettings(_:_:_:)](applicationservices/1458994-pmsessionvalidateprintsettings.md)
- [PMPrintSettingsCreateDataRepresentation(_:_:_:)](applicationservices/1464570-pmprintsettingscreatedatareprese.md)
- [PMPrintSettingsCreateWithDataRepresentation(_:_:)](applicationservices/1462203-pmprintsettingscreatewithdatarep.md)
- [PMCopyPrintSettings(_:_:)](applicationservices/1462491-pmcopyprintsettings.md)
- [PMPrintSettingsToOptions(_:_:)](applicationservices/1459069-pmprintsettingstooptions.md)
- [PMPrintSettingsToOptionsWithPrinterAndPageFormat(_:_:_:_:)](applicationservices/1459435-pmprintsettingstooptionswithprin.md)

### Accessing Data in Print Settings Objects

- [PMGetFirstPage(_:_:)](applicationservices/1460271-pmgetfirstpage.md)
- [PMSetFirstPage(_:_:_:)](applicationservices/1461519-pmsetfirstpage.md)
- [PMGetLastPage(_:_:)](applicationservices/1462747-pmgetlastpage.md)
- [PMSetLastPage(_:_:_:)](applicationservices/1463595-pmsetlastpage.md)
- [PMGetPageRange(_:_:_:)](applicationservices/1459324-pmgetpagerange.md)
- [PMSetPageRange(_:_:_:)](applicationservices/1462294-pmsetpagerange.md)
- [PMPrintSettingsGetJobName(_:_:)](applicationservices/1459233-pmprintsettingsgetjobname.md)
- [PMPrintSettingsSetJobName(_:_:)](applicationservices/1460149-pmprintsettingssetjobname.md)
- [PMGetCopies(_:_:)](applicationservices/1464480-pmgetcopies.md)
- [PMSetCopies(_:_:_:)](applicationservices/1463804-pmsetcopies.md)
- [PMGetCollate(_:_:)](applicationservices/1464492-pmgetcollate.md)
- [PMSetCollate(_:_:)](applicationservices/1463223-pmsetcollate.md)
- [PMGetDuplex(_:_:)](applicationservices/1458921-pmgetduplex.md)
- [PMSetDuplex(_:_:)](applicationservices/1462000-pmsetduplex.md)
- [PMPrintSettingsGetValue(_:_:_:)](applicationservices/1460602-pmprintsettingsgetvalue.md)
- [PMPrintSettingsSetValue(_:_:_:_:)](applicationservices/1461697-pmprintsettingssetvalue.md)
- [PMPrintSettingsCopyAsDictionary(_:_:)](applicationservices/1459088-pmprintsettingscopyasdictionary.md)
- [PMPrintSettingsCopyKeys(_:_:)](applicationservices/1462730-pmprintsettingscopykeys.md)

### Creating Printing Session Objects

- [PMCreateSession(_:)](applicationservices/1463247-pmcreatesession.md)

### Accessing Data in Printing Session Objects

- [PMSessionGetDataFromSession(_:_:_:)](applicationservices/1462964-pmsessiongetdatafromsession.md)
- [PMSessionSetDataInSession(_:_:_:)](applicationservices/1461902-pmsessionsetdatainsession.md)
- [PMSessionGetCurrentPrinter(_:_:)](applicationservices/1458998-pmsessiongetcurrentprinter.md)
- [PMSessionSetCurrentPMPrinter(_:_:)](applicationservices/1461096-pmsessionsetcurrentpmprinter.md)
- [PMSessionGetCGGraphicsContext(_:_:)](applicationservices/1461952-pmsessiongetcggraphicscontext.md)
- [PMSessionError(_:)](applicationservices/1460003-pmsessionerror.md)
- [PMSessionSetError(_:_:)](applicationservices/1460216-pmsessionseterror.md)

### Using Printer Presets

- [PMPresetCopyName(_:_:)](applicationservices/1460343-pmpresetcopyname.md)
- [PMPresetCreatePrintSettings(_:_:_:)](applicationservices/1463414-pmpresetcreateprintsettings.md)
- [PMPresetGetAttributes(_:_:)](applicationservices/1459042-pmpresetgetattributes.md)

### Creating and Using Paper Objects

- [PMPaperCreateCustom(_:_:_:_:_:_:_:)](applicationservices/1459322-pmpapercreatecustom.md)
- [PMPaperIsCustom(_:)](applicationservices/1459526-pmpaperiscustom.md)

### Accessing Data in Paper Objects

- [PMPaperGetID(_:_:)](applicationservices/1462910-pmpapergetid.md)
- [PMPaperGetWidth(_:_:)](applicationservices/1459209-pmpapergetwidth.md)
- [PMPaperGetHeight(_:_:)](applicationservices/1460389-pmpapergetheight.md)
- [PMPaperGetMargins(_:_:)](applicationservices/1461994-pmpapergetmargins.md)
- [PMPaperCreateLocalizedName(_:_:_:)](applicationservices/1460981-pmpapercreatelocalizedname.md)
- [PMPaperGetPrinterID(_:_:)](applicationservices/1461737-pmpapergetprinterid.md)
- [PMPaperGetPPDPaperName(_:_:)](applicationservices/1461039-pmpapergetppdpapername.md)

### Print Loop Functions

- [PMSessionBeginCGDocumentNoDialog(_:_:_:)](applicationservices/1460101-pmsessionbegincgdocumentnodialog.md)
- [PMSessionEndDocumentNoDialog(_:)](applicationservices/1464527-pmsessionenddocumentnodialog.md)
- [PMSessionBeginPageNoDialog(_:_:_:)](applicationservices/1463416-pmsessionbeginpagenodialog.md)
- [PMSessionEndPageNoDialog(_:)](applicationservices/1462014-pmsessionendpagenodialog.md)

### Accessing the Print Job Destination

- [PMSessionSetDestination(_:_:_:_:_:)](applicationservices/1459855-pmsessionsetdestination.md)
- [PMSessionGetDestinationType(_:_:_:)](applicationservices/1461071-pmsessiongetdestinationtype.md)
- [PMSessionCopyDestinationFormat(_:_:_:)](applicationservices/1464266-pmsessioncopydestinationformat.md)
- [PMSessionCopyDestinationLocation(_:_:_:)](applicationservices/1462967-pmsessioncopydestinationlocation.md)
- [PMSessionCopyOutputFormatList(_:_:_:)](applicationservices/1461332-pmsessioncopyoutputformatlist.md)

### Creating Printer Objects

- [PMServerLaunchPrinterBrowser(_:_:)](applicationservices/1460175-pmserverlaunchprinterbrowser.md)
- [PMServerCreatePrinterList(_:_:)](applicationservices/1459953-pmservercreateprinterlist.md)
- [PMSessionCreatePrinterList(_:_:_:_:)](applicationservices/1460119-pmsessioncreateprinterlist.md)
- [PMPrinterCreateFromPrinterID(_:)](applicationservices/1461363-pmprintercreatefromprinterid.md)
- [PMCreateGenericPrinter(_:)](applicationservices/1461960-pmcreategenericprinter.md)

### Accessing Information About a Printer

- [PMPrinterCopyDescriptionURL(_:_:_:)](applicationservices/1459187-pmprintercopydescriptionurl.md)
- [PMPrinterCopyDeviceURI(_:_:)](applicationservices/1460543-pmprintercopydeviceuri.md)
- [PMPrinterCopyHostName(_:_:)](applicationservices/1462076-pmprintercopyhostname.md)
- [PMPrinterCopyPresets(_:_:)](applicationservices/1459117-pmprintercopypresets.md)
- [PMPrinterGetCommInfo(_:_:_:)](applicationservices/1461069-pmprintergetcomminfo.md)
- [PMPrinterGetDriverCreator(_:_:)](applicationservices/1459107-pmprintergetdrivercreator.md)
- [PMPrinterGetID(_:)](applicationservices/1459606-pmprintergetid.md)
- [PMPrinterGetLocation(_:)](applicationservices/1461467-pmprintergetlocation.md)
- [PMPrinterGetMakeAndModelName(_:_:)](applicationservices/1463347-pmprintergetmakeandmodelname.md)
- [PMPrinterGetMimeTypes(_:_:_:)](applicationservices/1460125-pmprintergetmimetypes.md)
- [PMPrinterGetName(_:)](applicationservices/1459018-pmprintergetname.md)
- [PMPrinterGetOutputResolution(_:_:_:)](applicationservices/1459076-pmprintergetoutputresolution.md)
- [PMPrinterSetOutputResolution(_:_:_:)](applicationservices/1459931-pmprintersetoutputresolution.md)
- [PMPrinterGetPaperList(_:_:)](applicationservices/1460088-pmprintergetpaperlist.md)
- [PMPrinterGetPrinterResolutionCount(_:_:)](applicationservices/1462004-pmprintergetprinterresolutioncou.md)
- [PMPrinterGetIndexedPrinterResolution(_:_:_:)](applicationservices/1464490-pmprintergetindexedprinterresolu.md)
- [PMPrinterGetState(_:_:)](applicationservices/1462954-pmprintergetstate.md)
- [PMPrinterSetDefault(_:)](applicationservices/1461118-pmprintersetdefault.md)
- [PMPrinterIsDefault(_:)](applicationservices/1459030-pmprinterisdefault.md)
- [PMPrinterIsFavorite(_:)](applicationservices/1462074-pmprinterisfavorite.md)
- [PMPrinterIsPostScriptCapable(_:)](applicationservices/1464168-pmprinterispostscriptcapable.md)
- [PMPrinterIsPostScriptPrinter(_:_:)](applicationservices/1462257-pmprinterispostscriptprinter.md)
- [PMPrinterIsRemote(_:_:)](applicationservices/1461377-pmprinterisremote.md)

### Submitting a Print Job to a Printer

- [PMPrinterPrintWithFile(_:_:_:_:_:)](applicationservices/1464600-pmprinterprintwithfile.md)
- [PMPrinterPrintWithProvider(_:_:_:_:_:)](applicationservices/1461110-pmprinterprintwithprovider.md)

### Accessing PostScript Printer Description Files

- [PMCopyAvailablePPDs(_:_:)](applicationservices/1464170-pmcopyavailableppds.md)
- [PMCopyLocalizedPPD(_:_:)](applicationservices/1459690-pmcopylocalizedppd.md)
- [PMCopyPPDData(_:_:)](applicationservices/1460345-pmcopyppddata.md)

### Printing with PostScript Data

- [PMCGImageCreateWithEPSDataProvider(_:_:)](applicationservices/1462361-pmcgimagecreatewithepsdataprovid.md)
- [PMPrinterWritePostScriptToURL(_:_:_:_:_:_:)](applicationservices/1459729-pmprinterwritepostscripttourl.md)

### Using PDF Workflow Items

- [PMWorkflowCopyItems(_:)](applicationservices/1459914-pmworkflowcopyitems.md)
- [PMWorkflowSubmitPDFWithOptions(_:_:_:_:)](applicationservices/1463747-pmworkflowsubmitpdfwithoptions.md)
- [PMWorkflowSubmitPDFWithSettings(_:_:_:)](applicationservices/1458874-pmworkflowsubmitpdfwithsettings.md)

### Data Types

- [PMObject](applicationservices/pmobject.md)
- [PMPageFormat](applicationservices/pmpageformat.md)
- [PMPaper](applicationservices/pmpaper.md)
- [PMPaperMargins](applicationservices/pmpapermargins.md)
- [PMPreset](applicationservices/pmpreset.md)
- [PMPrinter](applicationservices/pmprinter.md)
- [PMPrintSession](applicationservices/pmprintsession.md)
- [PMPrintSettings](applicationservices/pmprintsettings.md)
- [PMServer](applicationservices/pmserver.md)

### Constants

- [PMDataFormat](applicationservices/pmdataformat.md)
- [PMDestinationType](applicationservices/pmdestinationtype.md)
- [PMDuplexMode](applicationservices/pmduplexmode.md)
- [PMOrientation](applicationservices/pmorientation.md)
- [PDF Workflow Dictionary Keys](applicationservices/core_printing/pdf_workflow_dictionary_keys.md)
- [PMPPDDomain](applicationservices/pmppddomain.md)
- [Print All Pages Constant](applicationservices/core_printing/1506768-print_all_pages_constant.md)
- [PMQualityMode](applicationservices/pmqualitymode.md)
- [PMPrinterState](applicationservices/pmprinterstate.md)
- [Printer Description Types](applicationservices/core_printing/printer_description_types.md)
- [User Cancellation Constant](applicationservices/core_printing/1506795-user_cancellation_constant.md)

### Result Codes

- [kPMGeneralError](applicationservices/kpmgeneralerror.md)
- [kPMOutOfScope](applicationservices/kpmoutofscope.md)
- [kPMNoDefaultPrinter](applicationservices/kpmnodefaultprinter.md)
- [kPMNotImplemented](applicationservices/kpmnotimplemented.md)
- [kPMNoSuchEntry](applicationservices/kpmnosuchentry.md)
- [kPMInvalidPrintSettings](applicationservices/kpminvalidprintsettings.md)
- [kPMInvalidPageFormat](applicationservices/kpminvalidpageformat.md)
- [kPMValueOutOfRange](applicationservices/kpmvalueoutofrange.md)
- [kPMInvalidPrintSession](applicationservices/kpminvalidprintsession.md)
- [kPMInvalidPrinter](applicationservices/kpminvalidprinter.md)
- [kPMObjectInUse](applicationservices/kpmobjectinuse.md)
- [kPMInvalidIndex](applicationservices/kpminvalidindex.md)
- [kPMStringConversionFailure](applicationservices/kpmstringconversionfailure.md)
- [kPMXMLParseError](applicationservices/kpmxmlparseerror.md)
- [kPMInvalidJobTemplate](applicationservices/kpminvalidjobtemplate.md)
- [kPMInvalidPrinterInfo](applicationservices/kpminvalidprinterinfo.md)
- [kPMInvalidConnection](applicationservices/kpminvalidconnection.md)
- [kPMInvalidKey](applicationservices/kpminvalidkey.md)
- [kPMInvalidValue](applicationservices/kpminvalidvalue.md)
- [kPMInvalidAllocator](applicationservices/kpminvalidallocator.md)
- [kPMInvalidTicket](applicationservices/kpminvalidticket.md)
- [kPMInvalidItem](applicationservices/kpminvaliditem.md)
- [kPMInvalidType](applicationservices/kpminvalidtype.md)
- [kPMInvalidReply](applicationservices/kpminvalidreply.md)
- [kPMInvalidFileType](applicationservices/kpminvalidfiletype.md)
- [kPMInvalidObject](applicationservices/kpminvalidobject.md)
- [kPMInvalidPaper](applicationservices/kpminvalidpaper.md)
- [kPMInvalidCalibrationTarget](applicationservices/kpminvalidcalibrationtarget.md)
- [kPMInvalidPreset](applicationservices/kpminvalidpreset.md)
