/* File: PMCore.h Contains: Carbon Printing Manager Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1998-2001 by Apple Computer, Inc., all rights reserved Bugs?: For bug reports, consult the following page on the World Wide Web: http://developer.apple.com/bugreporter/ */ #ifndef __PMCORE__ #define __PMCORE__ #ifndef __MACERRORS__ #include #endif #ifndef __FILES__ #include #endif #ifndef __CFSTRING__ #include #endif #ifndef __CFURL__ #include #endif #ifndef __QUICKDRAW__ #include #endif #ifndef __CMAPPLICATION__ #include #endif #ifndef __PMDEFINITIONS__ #include #endif #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #ifndef PM_USE_SESSION_APIS #define PM_USE_SESSION_APIS 1 #endif /* !defined(PM_USE_SESSION_APIS) */ /* Callbacks */ typedef CALLBACK_API( void , PMIdleProcPtr )(void); typedef STACK_UPP_TYPE(PMIdleProcPtr) PMIdleUPP; /* * NewPMIdleUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( PMIdleUPP ) NewPMIdleUPP(PMIdleProcPtr userRoutine); /* * DisposePMIdleUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) DisposePMIdleUPP(PMIdleUPP userUPP); /* * InvokePMIdleUPP() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API_C( void ) InvokePMIdleUPP(PMIdleUPP userUPP); #if PM_USE_SESSION_APIS /* * PMSessionCreatePrinterList() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.4 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionCreatePrinterList( PMPrintSession printSession, CFArrayRef * printerList, CFIndex * currentIndex, PMPrinter * currentPrinter); /* * PMSessionSetCurrentPrinter() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.4 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionSetCurrentPrinter( PMPrintSession session, CFStringRef printerName); /* * PMSessionSetDestination() * * Summary: * Alter a print session and print settings so that an associated * print job is sent to the provided destination type in the, * optional, MIME document format. * * Discussion: * This function is most useful when an application would like to * write its print output to disk without requiring user * interaction. The list of MIME types that can be sent to the * provided destination can be obtained from * PMSessionCopyOutputFormatList and one of these passed to this * function. * * Parameters: * * printSession: * The session to be used for a print job. The session holds the * preview setting which can override the destination type in the * print settings. * * printSettings: * The print settings to be used for a print job. The print * settings specify whether a job will be directed toward a * printer or to file. It also holds the requested MIME output * type. * * destType: * The destiation type for a print job associated with the * provided print session and print settings. Fax is currently not * supported, but kPMDestinationPrinter, kPMDestinationFile, and * kPMDestinationPreview can be set. * * destFormat: * The MIME type to be generated for the provided destination * type. This parameter can be NULL in which the default format * for the requested destination type is used. To obtain a list of * valid formats for a given destiation type, use the function * PMSessionCopyOutputFormatList. * * destLocation: * Some destination types support a destination location. The * clearest example is the kPMDestinationFile destination type * which allows a caller to also supply a file URL specifying * where the output file is to be created. * * SPECIAL_AVAILABILITY_NOTE: * This routine is available in ApplicationsServices.framework in * Mac OS X version 10.1 and later. On Mac OS X it is available to * CFM applications through CarbonLib starting with Mac OS X * version 10.2 and later. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionSetDestination( PMPrintSession printSession, PMPrintSettings printSettings, PMDestinationType destType, CFStringRef destFormat, CFURLRef destLocation); /* * PMSessionGetDestinationType() * * Summary: * Hand back the destination type that will be used for a print job * with the specified print settings and print session. * * Discussion: * Currently there are four destination types: * kPMDestinationPrinter, kPMDestinationFile, kPMDestinationFax and * kPMDestinationPreview. The first three destination types are * stored in the print settings. The switch for preview is stored in * the print session and, if enabled, overrides the destination in * the print setting. This function is preferred over * PMGetDestination as the latter does not take a print session * parameter and therefore can not indicate whether preview has been * selected as the destination. * * Parameters: * * printSession: * The session to be used for a print job. The session holds the * preview setting which can override the destination type in the * print settings. * * printSettings: * The print settings to be used for a print job. The print * settings specify whether a job will be directed toward a * printer or to file. * * destTypeP: * A pointer to a caller supplied PMDestinationType variable. If * this function succeeds then *'destTypeP' will be filled in with * the destination type for a print job that used the specified * session and print settings. If this function fails, then * *'destType' will be set to kPMDestinationInvalid. * * SPECIAL_AVAILABILITY_NOTE: * This routine is available in ApplicationsServices.framework in * Mac OS X version 10.1 and later. On Mac OS X it is available to * CFM applications through CarbonLib starting with Mac OS X * version 10.2 and later. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionGetDestinationType( PMPrintSession printSession, PMPrintSettings printSettings, PMDestinationType * destTypeP); /* * PMSessionCopyDestinationFormat() * * Summary: * Hand back the destination output MIME type associated with the * provided print session and print settings. * * Parameters: * * printSession: * A currently open print session. * * printSettings: * The print settings that are to be searched. * * destFormatP: * A pointer to a caller allocated CFStringRef variable. If this * routine returns noErr then *'destFormatP' will either be a copy * of a CFStringRef specifying the output format for the print * job, or NULL indicating that the default output format will be * used. If this function return an error, then *'destFormatP' * will be set to NULL. * * SPECIAL_AVAILABILITY_NOTE: * This routine is available in ApplicationsServices.framework in * Mac OS X version 10.1 and later. On Mac OS X it is available to * CFM applications through CarbonLib starting with Mac OS X * version 10.2 and later. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionCopyDestinationFormat( PMPrintSession printSession, PMPrintSettings printSettings, CFStringRef * destFormatP); /* * PMSessionCopyDestinationLocation() * * Summary: * Hand back the URL destination location given a print session and * print settings. * * Discussion: * Some destination type support a destination location which * further defines where the output from a pritn job should be sent. * The kPMDestinationFile destiation type, for example, will use a * file URL to determine where a new file should be created. * * Parameters: * * printSession: * A currently open print session. * * printSettings: * The print settings that are to be searched. * * destLocationP: * A pointer to a caller allocated CFURLRef variable. If this * routine returns noErr then *'outputFileP' will either be NULL * indicating that the job is using the default destination * location for the current destination type or a copy of a * CFURLRef will be placed in *'destLocationP'. If this function * returns an error then 'destLocationP' will be set to NULL. * * SPECIAL_AVAILABILITY_NOTE: * This routine is available in ApplicationsServices.framework in * Mac OS X version 10.1 and later. On Mac OS X it is available to * CFM applications through CarbonLib starting with Mac OS X * version 10.2 and later. * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.5 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionCopyDestinationLocation( PMPrintSession printSession, PMPrintSettings printSettings, CFURLRef * destLocationP); /* * PMSessionCopyOutputFormatList() * * Summary: * Hands back an an array of MIME types describing the possible * output formats for the printer module associated with the current * printer. * * Parameters: * * printSession: * This session's current printer's printer module will be queried * for its supported output MIME types. * * destType: * A print job can have one of several possible destination types. * The list of valid output formats is dependent upon the * destination type. This parameter specifies destination type of * interest when retrieving the output formats list. * * documentFormatP: * A pointer to a caller's CFArrayRef variable. If this routine * completes successfully, then *'documentFormatP' will be set to * a CFArrayRef containing CFStringRefs. Each CFStringRef in the * array is a MIME type specifying a type of output that can be * generated by the printer module associated with the current * printer. * * SPECIAL_AVAILABILITY_NOTE: * This routine is available in ApplicationsServices.framework in * Mac OS X version 10.1 and later. On Mac OS X it is available to * CFM applications through CarbonLib starting with Mac OS X * version 10.2 and later. On Mac OS 8/9 using CarbonLib, this * routine returns kPMNotImplemented * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionCopyOutputFormatList( PMPrintSession printSession, PMDestinationType destType, CFArrayRef * documentFormatP); /* * PMSessionCreatePageFormatList() * * Summary: * Hand back a list of page format instances. Each page format * instance describes a paper size available on the specified * printer. * * Parameters: * * printSession: * A currently open print session. * * printer: * The printer whose page size list should be enumerated. To get * the session's current printer, see PMSessionGetCurrentPrinter(). * * pageFormatList: * If this function is successful then noErr will be returned and * *'pageFormatList' will be set to a newly created CFArray. Each * element in the array will be a PMPageFormat describing an * available paper size for the specified printer. If this * function fails then a non-zero error code will be returned and * *'pageFormatList' will be set to NULL. * * SPECIAL_AVAILABILITY_NOTE: * This routine is available in ApplicationsServices.framework in * Mac OS X version 10.1 and later. On Mac OS X it is available to * CFM applications through CarbonLib starting with Mac OS X * version 10.2 and later. On Mac OS 8/9 using CarbonLib, this * routine returns kPMNotImplemented * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( OSStatus ) PMSessionCreatePageFormatList( PMPrintSession printSession, PMPrinter printer, CFArrayRef * pageFormatList); /* * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib * starting with Mac OS X version 10.2 and later. * * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented */ /* * PMSessionBeginDocumentNoDialog() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSessionBeginDocumentNoDialog( PMPrintSession printSession, PMPrintSettings printSettings, PMPageFormat pageFormat); /* * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib * starting with Mac OS X version 10.2 and later. * * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented */ /* * PMSessionEndDocumentNoDialog() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSessionEndDocumentNoDialog(PMPrintSession printSession); /* * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib * starting with Mac OS X version 10.2 and later. * * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented */ /* * PMSessionBeginPageNoDialog() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSessionBeginPageNoDialog( PMPrintSession printSession, PMPageFormat pageFormat, const PMRect * pageFrame); /* * SPECIAL AVAILABILITY note: This routine is available in ApplicationsServices.framework in * Mac OS X version 10.0 and later. On Mac OS X it is available to CFM applications through CarbonLib * starting with Mac OS X version 10.2 and later. * * On Mac OS 8/9 using CarbonLib, this routine returns kPMNotImplemented */ /* * PMSessionEndPageNoDialog() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSessionEndPageNoDialog(PMPrintSession printSession); #else /* * PMSetIdleProc() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetIdleProc(PMIdleUPP idleProc); /* Print loop */ /* * PMBegin() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMBegin(void); /* * PMEnd() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMEnd(void); /************************/ /* Valid only within a PMBeginPage/PMEndPage block. You should retrieve the printing */ /* port with this call and set it before imaging a page. */ /************************/ /* * PMGetGrafPtr() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetGrafPtr( PMPrintContext printContext, GrafPtr * grafPort); /* PMPageFormat */ /* * PMNewPageFormat() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMNewPageFormat(PMPageFormat * pageFormat); /* * PMDisposePageFormat() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMDisposePageFormat(PMPageFormat pageFormat); /* * PMDefaultPageFormat() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMDefaultPageFormat(PMPageFormat pageFormat); /* * PMValidatePageFormat() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMValidatePageFormat( PMPageFormat pageFormat, Boolean * result); /* PMPrintSettings */ /* * PMNewPrintSettings() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMNewPrintSettings(PMPrintSettings * printSettings); /* * PMDisposePrintSettings() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMDisposePrintSettings(PMPrintSettings printSettings); /* * PMDefaultPrintSettings() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMDefaultPrintSettings(PMPrintSettings printSettings); /* * PMValidatePrintSettings() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMValidatePrintSettings( PMPrintSettings printSettings, Boolean * result); /* Classic Support */ /* * PMGeneral() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGeneral(Ptr pData); /* * PMConvertOldPrintRecord() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMConvertOldPrintRecord( Handle printRecordHandle, PMPrintSettings * printSettings, PMPageFormat * pageFormat); /* * PMMakeOldPrintRecord() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMMakeOldPrintRecord( PMPrintSettings printSettings, PMPageFormat pageFormat, Handle * printRecordHandle); /* Driver Information */ /* * PMIsPostScriptDriver() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMIsPostScriptDriver(Boolean * isPostScript); /* * PMGetLanguageInfo() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetLanguageInfo(PMLanguageInfo * info); /* * PMGetDriverCreator() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetDriverCreator(OSType * creator); /* * PMGetDriverReleaseInfo() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetDriverReleaseInfo(VersRec * release); /* * PMGetPrinterResolutionCount() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetPrinterResolutionCount(UInt32 * count); /* * PMGetPrinterResolution() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetPrinterResolution( PMTag tag, PMResolution * res); /* * PMGetIndexedPrinterResolution() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetIndexedPrinterResolution( UInt32 index, PMResolution * res); /************************/ /* PMEnableColorSync and PMDisableColorSync are valid within */ /* BeginPage/EndPage block */ /************************/ /* ColorSync & PostScript Support */ /* * PMEnableColorSync() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMEnableColorSync(void); /* * PMDisableColorSync() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMDisableColorSync(void); /************************/ /* The PMPostScriptxxx calls are valid within a */ /* BeginPage/EndPage block */ /************************/ /* * PMPostScriptBegin() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMPostScriptBegin(void); /* * PMPostScriptEnd() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMPostScriptEnd(void); /************************/ /* These PMPostScriptxxx calls are valid within a */ /* PMPostScriptBegin/PMPostScriptEnd block */ /************************/ /* * PMPostScriptHandle() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMPostScriptHandle(Handle psHandle); /* * PMPostScriptData() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMPostScriptData( Ptr psPtr, Size len); /* * PMPostScriptFile() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMPostScriptFile(FSSpec * psFile); /* Error */ /* * PMError() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMError(void); /* * PMSetError() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetError(OSStatus printError); #endif /* PM_USE_SESSION_APIS */ /* PMPageFormat */ /* * PMCopyPageFormat() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMCopyPageFormat( PMPageFormat formatSrc, PMPageFormat formatDest); /************************/ /* Flattening a page format should only be necessary if you intend to preserve */ /* the object settings along with a document. A page format will persist outside of a */ /* PMBegin/PMEnd block. This will allow you to use any accessors on the object without */ /* the need to flatten and unflatten. Keep in mind accessors make no assumption */ /* on the validity of the value you set. This can only be done thru PMValidatePageFormat */ /* in a PMBegin/PMEnd block or with PMSessionValidatePageFormat with a valid session. */ /* It is your responsibility for disposing of the handle. */ /************************/ /* * PMFlattenPageFormat() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMFlattenPageFormat( PMPageFormat pageFormat, Handle * flatFormat); /* * PMUnflattenPageFormat() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMUnflattenPageFormat( Handle flatFormat, PMPageFormat * pageFormat); /* PMPageFormat Accessors */ /************************/ /* PMSetxxx calls only saves the value inside the printing object. They make no assumption on the */ /* validity of the value. This should be done using PMValidatePageFormat/PMSessionValidatePageFormat */ /* Any dependant settings are also updated during a validate call. */ /* For example: */ /* PMGetAdjustedPaperRect - returns a rect of a certain size */ /* PMSetScale( aPageFormat, 500.0 ) */ /* PMGetAdjustedPaperRect - returns the SAME rect as the first call */ /**/ /* PMGetAdjustedPaperRect - returns a rect of a certain size */ /* PMSetScale( aPageFormat, 500.0 ) */ /* PMValidatePageFormat or PMSessionValidatePageFormat */ /* PMGetAdjustedPaperRect - returns a rect thats scaled 500% from the first call */ /************************/ /* * PMGetPageFormatExtendedData() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetPageFormatExtendedData( PMPageFormat pageFormat, OSType dataID, UInt32 * size, void * extendedData); /* * PMSetPageFormatExtendedData() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetPageFormatExtendedData( PMPageFormat pageFormat, OSType dataID, UInt32 size, void * extendedData); /************************/ /* A value of 100.0 means 100% (no scaling). 50.0 means 50% scaling */ /************************/ /* * PMGetScale() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetScale( PMPageFormat pageFormat, double * scale); /* * PMSetScale() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetScale( PMPageFormat pageFormat, double scale); /************************/ /* This is the drawing resolution of an app. This should not be confused with */ /* the resolution of the printer. You can call PMGetPrinterResolution to see */ /* what resolutions are avaliable for the current printer. */ /************************/ /* * PMGetResolution() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetResolution( PMPageFormat pageFormat, PMResolution * res); /* * PMSetResolution() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetResolution( PMPageFormat pageFormat, const PMResolution * res); /************************/ /* This is the physical size of the paper without regard to resolution, orientation */ /* or scaling. It is returned as a 72dpi value. */ /************************/ /* * PMGetPhysicalPaperSize() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetPhysicalPaperSize( PMPageFormat pageFormat, PMRect * paperSize); /* * PMSetPhysicalPaperSize() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetPhysicalPaperSize( PMPageFormat pageFormat, const PMRect * paperSize); /************************/ /* This is the physical size of the page without regard to resolution, orientation */ /* or scaling. It is returned as a 72dpi value. */ /************************/ /* * PMGetPhysicalPageSize() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetPhysicalPageSize( PMPageFormat pageFormat, PMRect * pageSize); /* * PMGetAdjustedPaperRect() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetAdjustedPaperRect( PMPageFormat pageFormat, PMRect * paperRect); /* * PMGetAdjustedPageRect() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetAdjustedPageRect( PMPageFormat pageFormat, PMRect * pageRect); /* * PMGetUnadjustedPaperRect() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetUnadjustedPaperRect( PMPageFormat pageFormat, PMRect * paperRect); /* * PMSetUnadjustedPaperRect() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetUnadjustedPaperRect( PMPageFormat pageFormat, const PMRect * paperRect); /* * PMGetUnadjustedPageRect() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetUnadjustedPageRect( PMPageFormat pageFormat, PMRect * pageRect); /* * PMSetAdjustedPageRect() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetAdjustedPageRect( PMPageFormat pageFormat, const PMRect * pageRect); /* * PMGetOrientation() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetOrientation( PMPageFormat pageFormat, PMOrientation * orientation); /* * PMSetOrientation() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetOrientation( PMPageFormat pageFormat, PMOrientation orientation, Boolean lock); /* PMPrintSettings */ /* * PMCopyPrintSettings() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMCopyPrintSettings( PMPrintSettings settingSrc, PMPrintSettings settingDest); /************************/ /* Flattening a print settings should only be necessary if you intend to preserve */ /* the object settings along with a document. A print settings will persist outside of a */ /* PMBegin/PMEnd block. This allows you to use any accessors on the object without */ /* the need to flatten and unflatten. Keep in mind the accessors make no assumption */ /* on the validity of the value. This can only be done thru PMValidatePrintSettings */ /* in a PMBegin/PMEnd block or with PMSessionValidatePrintSettings with a valid session. */ /* It is your responsibility for disposing of the handle. */ /************************/ /* * PMFlattenPrintSettings() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMFlattenPrintSettings( PMPrintSettings printSettings, Handle * flatSettings); /* * PMUnflattenPrintSettings() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMUnflattenPrintSettings( Handle flatSettings, PMPrintSettings * printSettings); /* PMPrintSettings Accessors */ /* * PMGetPrintSettingsExtendedData() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetPrintSettingsExtendedData( PMPrintSettings printSettings, OSType dataID, UInt32 * size, void * extendedData); /* * PMSetPrintSettingsExtendedData() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetPrintSettingsExtendedData( PMPrintSettings printSettings, OSType dataID, UInt32 size, void * extendedData); /* * PMGetDestination() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.1 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetDestination( PMPrintSettings printSettings, PMDestinationType * destType, CFURLRef * fileURL); /* * PMGetJobName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetJobName( PMPrintSettings printSettings, StringPtr name); /* * PMSetJobName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetJobName( PMPrintSettings printSettings, StringPtr name); /* * PMGetCopies() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetCopies( PMPrintSettings printSettings, UInt32 * copies); /* * PMSetCopies() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetCopies( PMPrintSettings printSettings, UInt32 copies, Boolean lock); /* * PMGetFirstPage() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetFirstPage( PMPrintSettings printSettings, UInt32 * first); /* * PMSetFirstPage() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetFirstPage( PMPrintSettings printSettings, UInt32 first, Boolean lock); /* * PMGetLastPage() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetLastPage( PMPrintSettings printSettings, UInt32 * last); /* * PMSetLastPage() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetLastPage( PMPrintSettings printSettings, UInt32 last, Boolean lock); /************************/ /* The default page range is from 1-32000. The page range is something that is */ /* set by the application. It is NOT the first and last page to print. It serves */ /* as limits for setting the first and last page. You may pass kPMPrintAllPages for */ /* the maxPage value to specified that all pages are available for printing. */ /************************/ /* * PMGetPageRange() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMGetPageRange( PMPrintSettings printSettings, UInt32 * minPage, UInt32 * maxPage); /************************/ /* The first and last page are immediately clipped to the new range */ /************************/ /* * PMSetPageRange() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetPageRange( PMPrintSettings printSettings, UInt32 minPage, UInt32 maxPage); /* * PMSetProfile() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.0 and later * Mac OS X: in version 10.0 and later */ EXTERN_API( OSStatus ) PMSetProfile( PMPrintSettings printSettings, PMTag tag, const CMProfileLocation * profile); /* * PMSetCollate() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) PMSetCollate( PMPrintSettings printSettings, Boolean collate); /* * PMGetCollate() * * Availability: * Non-Carbon CFM: not available * CarbonLib: in CarbonLib 1.6 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) PMGetCollate( PMPrintSettings printSettings, Boolean * collate); /* * PMServerCreatePrinterList() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) PMServerCreatePrinterList( PMServer server, CFArrayRef * printerList); /* * PMPrinterGetName() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( CFStringRef ) PMPrinterGetName(PMPrinter printer); /* * PMPrinterGetID() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( CFStringRef ) PMPrinterGetID(PMPrinter printer); /* * PMPrinterIsDefault() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( Boolean ) PMPrinterIsDefault(PMPrinter printer); /* * PMPrinterGetLocation() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( CFStringRef ) PMPrinterGetLocation(PMPrinter printer); /* * PMPrinterGetState() * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) PMPrinterGetState( PMPrinter printer, PMPrinterState * state); /* * PMPrinterGetDeviceURI() * * Summary: * Hand back the URI of the printer's device. * * Discussion: * If defined on OS 9 this function returns kPMNotImplemented. * * Parameters: * * printer: * The printer whose device URI is to be retrieved. * * deviceURI: * On exit, if successful *'deviceURI' will contain a reference to * a CFURL describing the printer's device. The caller is * responsible for releasing this reference. If this call returns * an error, then *'deviceURI' will be set to NULL. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( OSStatus ) PMPrinterGetDeviceURI( PMPrinter printer, CFURLRef * deviceURI); /* * PMPrinterIsFavorite() * * Summary: * Return true if the printer is in the user's favorite printer list. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later * Mac OS X: in version 10.2 and later */ EXTERN_API( Boolean ) PMPrinterIsFavorite(PMPrinter printer); /* * PMCGImageCreateWithEPSDataProvider() * * Summary: * Create an image reference that references both the PostScript * contents of an EPS file and a preview (proxy) image for that EPS * file. * * Discussion: * For OS X 10.1.0, this function ignores the passed in data * provider. The passed in image reference is retained and then * returned. For 10.1.1 and later, then the data provider is used * and the returned image reference is different than the passed in * image reference, so please be careful with your use of these * references. It is likely that the data will not be read from the * EPS data provider until well after this function returns. The * caller should be careful not to free the underlying EPS data * until the provider's release routine is invoked. Similarly the * preview image's data may be needed long after you think it should * be. Do not free the image data until the image data provider's * release data function has been called. To make sure these data * providers are properly reference counted, release your reference * the EPS data provider and on the EPS image preview when they are * no longer needed by your application. For Mac OS X 10.2 and * later, the contents of the EPS provider at the time of this call * can be dumped to a file if you first do the following, BEFORE * running your application. From the command line in terminal: * defaults write NSGlobalDomain com.apple.print.eps.testProvider * /tmp/dump.eps causes a dump of the EPS data into a file * /tmp/dump.eps. * * Parameters: * * epsDataProvider: * A Core Graphics data provider that can supply the PostScript * contents of the EPS file. Post OS X 10.1, there will be some * checking done on the EPS data provided to the * PMCGImageCreateWithEPSDataProvider() call. It is important that * the EPS data begin with the EPSF required header and bounding * box DSC comments. * * epsPreview: * A Core Graphics image reference to the proxy image for the EPS * file. When the image reference result of this function is * rendered on screen or printed to a printer that can not render * PostScript this proxy image is drawn instead. * * Result: * an image reference capable of rendering either the EPS content or * the proxy image depending upon the capabilities of the targeted * context. * * Availability: * Non-Carbon CFM: not available * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.1 and later * Mac OS X: in version 10.1 and later */ EXTERN_API( CGImageRef ) PMCGImageCreateWithEPSDataProvider( CGDataProviderRef epsDataProvider, CGImageRef epsPreview); #ifdef PRAGMA_IMPORT_OFF #pragma import off #elif PRAGMA_IMPORT #pragma import reset #endif #ifdef __cplusplus } #endif #endif /* __PMCORE__ */