DL Logo

PDFLPrint Definitions

kPDPrintUseCropBox

Header: PDFLPrint.h:1112

Syntax

#define kPDPrintUseCropBox (( ASUns16 ) ~ 0 - 1 )

kPDPrintUseMediaBox

Header: PDFLPrint.h:1105

Syntax

#define kPDPrintUseMediaBox (( ASUns16 ) ~ 0 )

PDFLPrint Enumerations

ALDImageColorType

Header: PDFLExpT.h:1581

Description

OPI 1.3 color type information.

Enum Constants

ALDImageColorType_Spot
Spot color type.
ALDImageColorType_Process
Process color type.
ALDImageColorType_Separation
Separation color type.
ALDImageColorType_Intrinsic
Intrinsic color type.

Used In

ImageInk

Header: PDFLExpT.h:1663

Description

OPI 2.0 image ink information.

Enum Constants

ImageInk_Registration
Image colorant registration value.
ImageInk_FullColor
Image colorant full color value.
ImageInk_Monochrome
Image colorant monochrome value

Used In

IncludeOptions

Header: PDFLExpT.h:121

Description

Value options for PDInclusion.

Enum Constants

kIncludeOncePerDoc
Include the resource only once per file.
kIncludeOnEveryPage
Include the resource on every page in the file.
kIncludeNever
Never include the resource.
kIncludeWhenNeeded
When needed.
kIncludeByRange

OPIversion

Header: PDFLExpT.h:1571

Description

OPI Types for PostScript printing.

Enum Constants

OPIv13
OPI version 1.3.
OPIv20
OPI version 2.0.

Used In

PDDuplexOOptions

Header: PDFLExpT.h:392

Description

Duplex values.

Value options for PDDuplexEnum.

Enum Constants

kPDDuplexOff
Respect whatever duplex option was selected in printer preferences.
kPDDuplexOnTumbleShort
Duplex on short edge.
kPDDuplexOnTumbleLong
Duplex on long edge.
kPDDuplexForceSimplex
Force simplex printing, ignoring the printer preferences.

PDFLPrintProgressMarker

Header: PDFLPrint.h:73

Description

An enumeration of the various stages that might be involved in printing a PDF. For use with PDFLPrintProgressProc.

Enum Constants

kPDFLPrintProg_PopLastProgress=0
kPDFLPrintProg_PushCompilingDocumentResources
kPDFLPrintProg_PushCompilingPageResources
kPDFLPrintProg_PushStreamingDocumentFont
kPDFLPrintProg_PushStreamingDocumentResource
kPDFLPrintProg_PushStreamingPageFont
kPDFLPrintProg_PushStreamingPageResource
kPDFLPrintProg_PushStreamingPageContent
kPDFLPrintProg_PushStreamingPageEpilogue
kPDFLPrintProg_PushStreamingDocumentEpilogue
kPDFLPrintProg_PushStreamingDocumentProcset
kPDFLPrintProg_PushStreamingPageSeparation
kPDFLPrintProg_PushStreamingPageImage
kPDFLPrintProg_PushStreamingPageImageOPI
kPDFLPrintProg_PushStreamingPageCSA
kPDFLPrintProg_PushStreamingPageCRD
kPDFLPrintProg_PushStreamingPageGradient
kPDFLPrintProg_PushOnHostTrapBeginPage
kPDFLPrintProg_SetOnHostTrapProgressPercent
kPDFLPrintProg_StreamingPageImageProgressPercent
kPDFLPrintProg_PushBeginStreamingTraps
kPDFLPrintProg_SetStreamingTrapPercent

PDPDFarEastFont_Download_Options

Header: PDFLExpT.h:164

Description

Value options for PDFarEastFont.

Enum Constants

PDPDFarEastFont_Download_All
Download all CJK fonts to the printer.
PDPDFarEastFont_Download_None
Download only embedded fonts to the printer.
PDPDFarEastFont_Print_As_Image
GDI/QuickDraw on PS option. PS Level 1 should use this to print CJK.

PDPrintFontArrayFlags

Header: PDFLExpT.h:221

Description

Font array.

Enum Constants

kPDSingleByteFont=0x0001
A fLag to indicate that the font uses a single byte encoding.

PDPrintTrapTypes

Header: PDFLExpT.h:491

Description

Value options for PDPrintTrapType.

Enum Constants

kPDPrintTrapNone=0x01
kPDPrintTrapInRIP=0x04

PDPrintWhatAnnot_Options

Header: PDFLExpT.h:475

Description

Value options for PDPrintWhatAnnot.

Enum Constants

PDPrintWhatAnnot_NoExtras=0x01
PDPrintWhatAnnot_TrapAnnots=0x02
PDPrintWhatAnnot_PrinterMarks=0x04

PDPrintWhatFlipOptions

Header: PDFLExpT.h:483

Description

Value options for PDPrintWhatFlip.

Enum Constants

kPDPrintFlipNone=0x01
kPDPrintFlipX=0x02
kPDPrintFlipY=0x04
kPDPrintFlipXY=0x08

pdprintsuppressenum

Header: PDFLExpT.h:1027

Enum Constants

kPRPrintSuppressXMP=1

PDFLPrint Typedefs

PDDuplexEnum

Header: PDFLExpT.h:406

Description

Duplex values.

For value options see PDDuplexOOptions.

Syntax

typedef ASEnum8 PDDuplexEnum;

Used In

PDFLPrintUserCallbacks

Header: PDFLExpT.h:2480

Syntax

typedef struct _t_PDFLPrintUserCallbacks *PDFLPrintUserCallbacks;

Used In

PDFLPrintUserParams

Header: PDFLExpT.h:2486

Description

Declare the type PDFLPrintUserParams, which is a pointer to a structure and is passed into PDFLPrintDoc. This structure is defined in PDFLPrint.h, but it is complex and platform-specific. This declaration avoids the need to include the platform specific details into files that just need a decaration of this pointer.

Syntax

typedef struct _t_PDFLPrintUserParams *PDFLPrintUserParams;

Used By

PDFLPrintUserParamsEx

Header: PDFLExpT.h:2488

Syntax

typedef struct _t_PDFLPrintUserParamsEx *PDFLPrintUserParamsEx;

Used By

PDFarEastFont

Header: PDFLExpT.h:163

Description

CJK font related option for PostScript printing.

For value options see PDPDFarEastFont_Download_Options.

Syntax

typedef ASEnum8 PDFarEastFont;

Used In

PDInclusion

Header: PDFLExpT.h:120

Description

Specifies how to include a resource in a file.

For value options see IncludeOptions.

Syntax

typedef ASEnum8 PDInclusion;

Used In

PDOutputType

Header: PDFLExpT.h:142

Description

Specifies what kind of file to emit.

For value options see PDOutput_Options.

Syntax

typedef ASEnum8 PDOutputType;

Used In

PDPrintClient

Header: PDFLExpT.h:1548

Description

A data structure used by PDDocPrintPages(). It contains methods to be implemented by the client. Unless otherwise indicated, methods may be NULL, indicating that they do nothing. The methods are called in the order listed in this structure.

Syntax

typedef struct _t_PDPrintClient *PDPrintClient;

Used By

PDPrintController

Header: PDFLExpT.h:1549

Syntax

typedef struct _t_PDPrintController *PDPrintController;

PDPrintMarkStyles

Header: PDFLExpT.h:1531

Description

For value options see PDIStyles.

Syntax

typedef ASInt32 PDPrintMarkStyles;

PDPrintTrapType

Header: PDFLExpT.h:492

Description

For value options see PDPrintTrapTypes.

Syntax

typedef ASEnum8 PDPrintTrapType;

PDPrintWhatAnnot

Header: PDFLExpT.h:480

Description

For value options see PDPrintWhatAnnot_Options.

Syntax

typedef ASEnum8 PDPrintWhatAnnot;

Used In

PDPrintWhatFlip

Header: PDFLExpT.h:489

Description

For value options see PDPrintWhatFlipOptions.

Syntax

typedef ASEnum8 PDPrintWhatFlip;

PPDFeaturesRec

Header: PDFLPrint.h:49

Syntax

typedef struct _t_PPDFeatures PPDFeaturesRec, *PPDFeaturesP;

Used In

PDFLPrint Callback Signatures

PDFLPrintCancelProc

Header: PDFLPrint.h:68

Description

This is called once per page of a document being printed. In addition to giving the ability to cancel the print job, a developer can use this callback to return control briefly to an application to handle events, update UI elements, and so on. The library pauses printing until the return from this procedure, because it is single-threaded.

Related Methods

ASCancelProc CancelProc

Syntax

ASBool PDFLPrintCancelProc(PDDoc pdDoc, void *clientData);

Parameters

pdDoc
The document being printed.
clientData
A pointer to the client data that was passed in the PDFLPrintUserParamsRec with the call to PDFLPrintDoc.

Returns

true to cancel the print job, false otherwise.

Used In

PDFLPrintProgressProc

Header: PDFLPrint.h:111

Description

A print progress callback.

Syntax

ASBool PDFLPrintProgressProc(ASInt32 pageNum, ASInt32 totalPages, float current, const char *name, ASInt32 /* it's a PDFLPrintProgressMarker or PDFLFlattenProgressMarker (see PDFLPrint.h) */ stage, void *progMonClientData);

Parameters

pageNum
the current page
totalPages
current
name
stage
progMonClientData
IN/OUT User-supplied data that was passed in the call to whatever API method required the progress monitor.

Used In

PDPrintCanEmitFontProc

Header: PDFLExpT.h:1867

Description

(Optional) A callback for PDPrintClient. It is called to determine whether a font can be emitted into the print job. This is used to determine whether a font is a document-included resource. Only used for PostScript printing. If it is NULL, the default is to assume that any font can be emitted.

Related Methods

Syntax

ASBool PDPrintCanEmitFontProc(PDFont fontP, PDPrintClient printClient);

Parameters

fontP
The font to check.
printClient
The PDPrintClient from which this is invoked.

Returns

true if client can emit specified font, false otherwise.

Used In

PDPrintEmitFontProc

Header: PDFLExpT.h:1849

Description

(Required) A callback for PDPrintClient. It emits a font. For Type0 fonts that require font substition, this routine may emit multiple font definitions. The caller can get the list of fonts used by calling GetFontComponentList().

Related Methods

Syntax

ASBool PDPrintEmitFontProc(ASStm stm, PDFont fontP, PDPrintClient printClient, ASUns32 flags);

Parameters

stm
The PostScript print stream for the current page.
fontP
The font to emit.
printClient
The PDPrintClient from which this is invoked.
flags
Print flags.

Returns

true if the font is emitted; false otherwise.

Used In

PDPrintGetFontEncodingMethodProc

Header: PDFLExpT.h:1833

Description

(Required for PostScript printing) A callback for PDPrintClient. It asks the client which encoding method should be used for the font.

Related Methods

Syntax

ASInt32 PDPrintGetFontEncodingMethodProc(PDFont fontP, PDPrintClient printClient);

Parameters

fontP
The font whose encoding method is determined.
printClient
The PDPrintClient from which this is invoked.

Returns

The encoding method, which must be one of the following:
Method
Description
Use for Type 1 fonts and substituted fonts.
Use for TrueType Windows font or built-in encoding font.
Use for a TrueType custom font or font with Mac OS encoding.

Used In

PDFLPrint Structures

ImageInks

Header: PDFLExpT.h:1685

Description

Image inks.

Syntax

struct ImageInks {
ImageInk type;
Image ink type.
MonoInkList *mono;
Image ink monochrome list. This is defined only if type == ImageInk_Monochrome.
} ImageInks;

Used In

OPI13dict

Header: PDFLExpT.h:1611

Description

OPI 1.3 dictionary.

Syntax

struct OPI13dict {
TIFFASCIITagList *aldImageAsciiTags;
TIFF ASCII tags.
struct {
float c, m, y, k;
char *name;
} aldImageColor;
Image color.
ALDImageColorType aldImageColorType;
Image color type.
float aldImageCropFixed [4];
The portion of the image to be used.
ASUns32 aldImageCropRect [4];
The portion of the image to be used ( [left top right bottom]). REQUIRED.
ASUns32 aldImageDimensions [2];
Included image dimensions. [width height] REQUIRED. /Size in PDF.
PDFileSpec aldImageFileName;
REQUIRED. Image file name.
ASUns16 *aldImageGrayMap;
Changes to the brightness or contrast of the image.
ASUns16 aldImageGrayMapLength;
Length of the GrayMap array ( 2, 16, or 256).
char *aldImageID;
Image identifier.
ASBool aldImageOverprint;
Determines whether the image is to overprint ( true) or knock out ( false) underlying marks on other separations.
float aldImagePosition [8];
The location on the page of the cropped image ( [llx lly ulx uly urx ury lrx lry]. REQUIRED.
float aldImageResolution [2];
Image resolution ( [horiz vert]).
float aldImageTint;
The concentration of the color in which the image is to be rendered.
ASBool aldImageTransparency;
Specifies whether white pixels in the image are to be treated as transparent.
ASUns32 aldImageType [2];
Specifies the number of samples per pixel and bits per sample in the image ( [samplesPerPixel bitsPerSample]).
char *aldObjectComments;
A human-readable comment, typically containing instructions or suggestions to the operator of the OPI server on how to handle the image.
struct {
unsigned aldimageasciitags : 1, aldimagecolor : 1, aldimagecolortype : 1, aldimagecropfixed : 1, aldimagecroprect : 1, aldimagedimensions : 1, aldimagefilename : 1, aldimagegraymap : 1, aldimageid : 1, aldimageoverprint : 1, aldimageposition : 1, aldimageresolution : 1, aldimagetint : 1, aldimagetransparency : 1, aldimagetype : 1, aldobjectcomments : 1;
} defined;
Since most parameters are optional, we indicate which were specified. It is required that all unspecified pointer-fields be NULL, so that error-handlers know exactly which ones to free.
} OPI13dict;

OPI20dict

Header: PDFLExpT.h:1693

Description

OPI 2.0 dictionary.

Syntax

struct OPI20dict {
float imageCropRect [4];
The portion of the image to be used ( [left top right bottom]). OPTIONAL.
float imageDimensions [2];
The dimensions of the included image ( [width height]). OPTIONAL.
PDFileSpec imageFileName;

The external file containing the image. The following values are required if imageCropRect and imageDimensions are defined:

0 left < right width

0 top < bottom height

REQUIRED.

ImageInks imageInks;
The colorants to be applied to the image.
ASBool imageOverprint;
Specifies whether the image is to overprint ( true) or knock out ( false) underlying marks on other separations.
ASUns32 includedImageDimensions [2];
Included image dimensions.
float includedImageQuality;
The quality of the included image.
char *mainImage;
The path name of the file containing the full-resolution image.
TIFFASCIITagList *tiffAsciiTags;
struct {
unsigned imagecroprect : 1, imagedimensions : 1, imagefilename : 1, imageinks : 1, imageoverprint : 1, includedimagedimensions : 1, includedimagequality : 1, mainimage : 1, tiffasciitags : 1;
} defined;
} OPI20dict;

OPIdict

Header: PDFLExpT.h:1737

Description

OPI dictionary.

Syntax

struct OPIdict {
OPIversion version;
OPI version ( 1.3 or 2.0).
union {
OPI13dict *dict13;
OPI20dict *dict20;
} dict;
OPI 1.3 or 2.0 dictionary.
} OPIdict;

PDPrintParams

Header: PDFLExpT.h:499

Description

A data structure indicating how a document should be printed.

Note: All fields in the PDPrintParams structure apply to PostScript file creation. PDPrintParams are ignored when printing to non-PostScript devices.

Related Methods

Syntax

struct PDPrintParams {
ASSize_t size;
The size of the data structure. It must be set to sizeof(PDPrintParams).
PDPageRange *ranges;
Ranges of pages to print. Use NULL to print the entire document.
ASInt32 numRanges;
The number of ranges of pages to print in ranges. The default value is 0.
ASBool shrinkToFit;
true if the page is scaled to fit the printer page size, false otherwise. This field overrides the scale. The default value is false.
ASBool expandToFit;
true if small pages are to be scaled up to fit the printer page size, false otherwise. It overrides the scale. The default value is false.
ASBool rotateAndCenter;
true if the page is to be rotated to fit the printer's orientation and centered in the printer's page size; false otherwise.The default value is false. Rotation and centering ( true) only occur, however, if the page contents are too wide to fit on a narrow page (or vice versa) and the page contents are less than an inch smaller than the target page in one direction.
PDPrintWhat printWhat;
Print the document, the document and comments, or document form fields only.
PDPrintWhatAnnot printWhatAnnot;
Annotation flags which modify PDPrintWhat to enable Pro product behavior.
ASBool emitPS;
If true, emit a PostScript file. The default value is true.
ASInt32 psLevel;
PostScript level: 1, 2, or 3. The default value is 2.
PDOutputType outputType;
Print PostScript or EPS with or without a preview.
PDInclusion incBaseFonts;
Embed the base fonts. The default value is kIncludeNever.
PDInclusion incEmbeddedFonts;
Embed fonts that are embedded in the PDF file. This overrides the incType1Fonts, incTrueTypeFonts, and incCIDFonts fields. The default value is kIncludeOncePerDoc.
PDInclusion incType1Fonts;
Embed Type 1 fonts. The default value is kIncludeOncePerDoc.
PDInclusion incType3Fonts;
Embed Type 3 fonts. The default value is kIncludeOnEveryPage.
PDInclusion incTrueTypeFonts;
Embed TrueType fonts. The default value is kIncludeOncePerDoc.
PDInclusion incCIDFonts;
Embed CID fonts. The default value is kIncludeOncePerDoc.
PDInclusion incProcsets;
Include Procsets in the file. The default value is kIncludeOncePerDoc.
PDInclusion incOtherResources;
Include all other types of resources in the file. The default value is kIncludeOncePerDoc.
ASInt32 fontPerDocVM;
The amount of VM available for font downloading at the document level. It is ignored if it is less than or equal to 0.
ASBool emitShowpage;
Emit save and restore showpage in PostScript files. The default value is true.
ASBool emitTTFontsFirst;
Emit TrueType fonts before any other fonts. The default value is false.
ASBool setPageSize;
(PostScript level 2 only) Set the page size on each page. Use the media box for outputting to PostScript files, use the crop box for EPS files. Default is false.
ASBool emitDSC;
Write DSC (Document Structuring Conventions) comments. The default value is true.
ASBool setupProcsets;
If procsets are included, also include init/term code. The default value is true.
ASBool emitColorSeps;
Emit images for Level-1 separations. The default value is false.
ASBool binaryOK;
true if binary data is permitted in the PostScript file, false otherwise. It is overridden by the printer's "Output Protocol" device settings. The default value is true.
ASBool useSubFileDecode;
Add SubFileDecode filter to work around stream problems [ false ]. The SubFileDecode filter will always be emitted when you print as binary.
ASBool emitRawData;
true if adding no unnecessary filters when emitting image data, false otherwise. The default value is true.
ASBool TTasT42;
If including TrueType fonts, convert to Type 42 fonts instead of Type 1 fonts. The default value is false. This parameter is valid only for the Export to PS workflow and not for printing to a printer.
float scale;
The document-wide scale factor. 100.0 = full size. The default value is 100.
ASBool emitExternalStreamRef;
If an Image resource uses an external stream, emit code that points to the external file. The default value is false.
ASBool emitHalftones;
Preserve any halftone screening in the PDF file. The default value is false.
ASBool emitPSXObjects;
Emit PostScript XObjects into the PostScript stream [ false ].
ASBool centerCropBox;
true if CropBox output is centered on the page when the CropBox < MediaBox, false otherwise. The default value is true.
ASBool emitSeparableImagesOnly;
If emitting EPS, include only CMYK and gray images.
ASBool emitDeviceExtGState;
When emitting the extended graphics state, include the device-dependent parameters (overprint, black generation, undercolor removal, transfer, halftone, halftone phase, smoothness, flatness, rendering intent) in addition to the device-independent parameters (font, line width, line cap, line join, miter limit, dash pattern). If this flag is false, only the device-independent parameters will be emitted. This flag overrides emitHalftones; if this is false, then halftones are not emitted. [true]
ASFixedRect boundingBox;
If all zeroes, it is ignored. Otherwise, it is used for %%BoundingBox DSC comment and in centerCropBox calculations and for setpagedevice. The default value is [0 0 0 0].
ASBool useFontAliasNames;
Used when printing with system fonts. The default value is false.
ASBool emitPageRotation;
Emit a concat at the beginning of each page so that the page is properly rotated. Used when emitting EPS. The default value is false.
ASBool reverse;
If set to true, reverse the order of page output.
ASFixedRect *tCropBox;
Temporary crop box to represent the selected region.
ASBool emitPageClip;
Emit page clip.
ASBool emitTransfer;
Emit transfer.
ASBool emitBG;
Emit black generation.
ASBool emitUCR;
Emit undercolor removal.
PDFarEastFont farEastFontOpt;
GDI to PS or download CJK fonts. PDPDFarEastFont_Print_As_Image will not be honored.
ASBool suppressCJKSubstitution;
If true, do not perform CJK substitution on the printer. This will work only when farEastFontOpt is PDPDFarEastFont_Download_None.
ASBool suppressCSA;
Do not emit CSAs for 4-component (CMYK) colors. This will take precedence over the hostbasedCM settings.
ASBool hostBased;
For separator, do host-based color management.
ASAtom hostBasedOutputCS;
The output color space when hostBased color management is true.
PDDuplexEnum duplex;
Sets the duplex mode if the device supports duplex printing. The default value is kPDDuplexOff.
PDPageTilingMode doTiling;
Determines whether to tile none, all, or only large pages.
PDTileEx tileInfo;
If non- NULL, tiling is desired with these parameters.
ASBool rotate;
Enable the auto-rotating behavior from past versions of Acrobat.
ASBool hostBasedCM;
Do hostBased color management using the destination profile. The default is false, which means doing CSA generation for profiles instead of converting all colors on the host.
char destProfile [256];
If hostBasedCM color management is true, use this profile. It should be the name of the profile like "U.S. Web Coated (SWOP) v2" and not the name of the file.
ASAtom destCSAtom;
An ASAtom representing the device color space (DeviceGray, DeviceRGB, and so on).
ASBool saveVM;
true means try to save VM when printing to PostScript.
ASBool doOPP;
Do the overprint preview operation.
ASInt32 suppressOPPWhenNoSpots;
When true, suppress OPP for pages that do not contain spot colors
ASBool optimizeForSpeed;
If true, do it fast; false means PostScript code must be page-independent. If it is set to true, font downloads are forced from kIncludeOnEveryPage to kIncludeOncePerDoc.
ASBool brokenCRDs;
If true, do not set rendering intent in PostScript stream due to broken non-default CRDs.
ASBool useMaxVM;
If true, store all possible resources in VM.
ASInt32 lastWidth;
Used when setPageSize is true to prevent unneeded setpagedevice calls.
ASInt32 lastHeight;
Used when setPageSize is true to prevent unneeded setpagedevice calls.
ASUns32 bitmapResolution;
DPI for bitmaps. The default is 300. This will only work when you set useFullResolutionJP2KData to false; it should not be less then 50.
ASUns32 gradientResolution;
DPI for gradients interior to the object (not edges). It can generally be lower than the bitmapResolution. The default is 150.
ASUns32 transparencyQuality;
The transparency level. The range is 0-100.
PDOCContext ocContext;
The optional-content context to use for visibility state information, or NULL to use the document's current states in the default context.
ASBool applyOCGPrintOverrides;
Print-specific visiblity state settings are always applied from the optional-content group. applyOCGPrintOverrides is no longer honored. It is always considered as true whatever may be the value passed to it.
ASBool useFullResolutionJP2KData;
Determines whether to use the maximum available JPEG2000 resolution.
ASBool emitInRipSeps;
When true, it requests that separations, one sheet per ink, be generated in the RIP (printer). It is available only in Acrobat Professional.
PDPageMarkFlags whichMarks;

Page mark indication. It is a bit-wise OR of the PDPageMarkFlags values.

It applies to print separations, which are available only in Acrobat Professional.

ASBool westernMarksStyle;
When true, use western style for page marks. It applies to print separations, which are available only in Acrobat Professional. Obsoleted by markStyle below.
ASBool doProofing;
When true, print using proofing settings.
char proofProfile [256];
Description string for the proofing profile.
ASBool inkBlack;
Proofing settings: simulate ink black.
ASBool paperWhite;
Proofing settings: simulate paper white.
ASBool useExecForm;
When true, emit execform calls when emitting Form XObjects.
PDFlatten flattenInfo;
A structure containing parameters that control tile flattening.
ASBool negative;
When true, invert the plate.
ASEnum8 mirrorprint;

One of the following constants:

kPDPrintFlipNone = 0x01

kPDPrintFlipX = 0x02

kPDPrintFlipY = 0x04

kPDPrintFlipXY = 0x08

Mirroring is done in the PostScript output stream.

ASUns32 numCollatedCopies;
Enables collation for the viewer.
ASBool emitFlatness;
Honors the flatness settings over gstate flatness.
ASInt32 trapType;
ASBool TTasCIDT2;
This parameter is obsolete from PDFL 10.0. When this is set, emit TrueType fonts as CIDType2 instead of as CIDFontType0.
ASInt32 markStyle;
Specify the style to use for page marks. The PDPrintMarkStyles enum contains possible styles. It applies to print separations, which are available only in Acrobat Pro.
float lineWidth;
The line weight to use for printer marks.
ASBool macQDPrinter;
true if the printer is a Mac QuickDraw printer, false otherwise.
ASPathName customMarksFileName;
If markStyle ==-1, this should be a valid file name pointing to a valid.mrk file for custom printer marks.
AGMPrintInterface *pAGMPI;
The AGMP interface pointer. This should not be set by PDF Library SDK clients.
void *pAGMPI;
ASBool disableFlattening;
Disable flattening of the PDF file; transparency data will be ignored. Also note the preprocessor define below.
ASBool doNotDownloadFauxFonts;
ASBool grayToK;
convert Gray to K (any Gray to CMYK (0,0,0,K))
ASBool suppressSnapToDevice;
ASUns32 suppressElement;
ASUns32 maxFlatSeconds;
ASInt32 testTilingMode;
Provide a means for all 4 page rotations to be tiling-exercised at once.
} PDPrintParamsRec, *PDPrintParams;

Used By

Used In

PDPrintStr

Header: PDFLExpT.h:179

Description

A structure for controlling the printing of glyphs.

Syntax

struct PDPrintStr {
char *str;
The string.
ASUns32 len;
Byte length.
ASRealPoint *displacements;
Displacements.
ASUns32 numGlyphs;
The number of glyphs.
ASUns32 flags;
Flags. Reserved for internal use.
} PDPrintStr, *PDPrintStrP;

Used By

PDTileEx

Header: PDFLExpT.h:409

Syntax

struct PDTileEx {
PDTileRec pubRec;
Used for giving information to and from the user.
ASUns32 imageablePaperWidth;
(pts)
ASUns32 imageablePaperHeight;
(pts)
ASUns32 unprintablePaperWidth;
Unprintable left edge (pts).
ASUns32 unprintablePaperHeight;
Unprintable bottom edge (pts).
ASUns32 indent;
The amount tile indented within the imageable area (pts).
ASInt32 rotateAngle;
The clockwise rotation angle in degrees for tile.
ASText labelTemplate;
The optional label string template has 6 parameters it can fill in. If it is NULL, the label template "$DOC$ $DATE$ $TIME$ $PAGE$ ($ROW$, $COL$)" is used.
double driverScale;
The scale selected by the user in the Print Setup or Printer Properties dialog box.
double tileScale;
The scale for tiled pages.
} PDTileRecEx, *PDTileEx;

Used In

_t_PDFLPrintUserCallbacks

Header: PDFLExpT.h:2475

Description

The structure holding pointers to certain optional Callbacks available with the PDFLPrintDoc() API.

Syntax

struct _t_PDFLPrintUserCallbacks {
ASSize_t size;
} PDFLPrintUserCallbacksRec;

Used In

_t_PDFLPrintUserParams

Header: PDFLPrint.h:134

Description

Used to control printing with PDFLPrintDoc.

To print to a PostScript file, set emitToFile to true, fill in printParams, and create a writeable stream.

To print to a printer, set emitToPrinter to true, fill in printParams, and optionally fill in the command.

Note: UNIX supports only PostScript to a file or printer, as controlled by the (mutually exclusive) emitToFile and emitToPrinter parameters.

Syntax

struct _t_PDFLPrintUserParams {
ASInt32 size;
Size of the data structure. Must be set to sizeof(PDFLPrintUserParamsRec).
PDPrintParams printParams;
PDPrintParams structure. Used for both creating a PostScript file and printing to a printer.
ASBool emitToFile;
Create a PostScript file. You set either this parameter or emitToPrinter, but not both.
ASStm printStm;
Writable ASStm that points to a file stream or proc stream. It applies to both a PostScript printer and a file.
ASUns16 paperWidth;
Width of paper in points. The default value is 612. Applies to a PostScript printer.
ASUns16 paperHeight;
Height of paper in points. The default value is 792. Applies to a PostScript printer.
ASInt32 dontEmitListLen;
Number of fonts that should not be downloaded. Applies to both a PostScript printer and a file.
char **dontEmitList;
List of fonts (T1, TrueType, CID) that should not be downloaded. Applies to both a PostScript printer and a file.
ASBool emitToPrinter;
Output PDF file to a PostScript printer. Set either this parameter or emitToFile, but not both.
char *command;
Optional command line arguments. It is used only if emitToPrinter is true. For example, "lp" or "lpr" applies to a PostScript printer.
PDFLPrintCancelProc cancelProc;
Optional PDFLPrintCancelProc. It applies to both a a PostScript printer and a file.
void *clientData;
Optional pointer to data passed to cancelProc. Applies to both a PostScript printer and a file.
int startResult;
Spooler ID from StartDoc
PDFLPrintUserCallbacks userCallbacks;
Optional pointer to structure containing pointers to user callback functions
int nCopies;
(Optional) Number of copies to print. It applies to a PostScript file.
PPDFeaturesP PPDFeatures;
Optional pointer to a structure where you can add additional PPD features like staple, input tray, output tray, duplex mode etc. for output to PostScript file. For more details, see _t_PPDFeatures
ASText ppdFileName;
(Optional)The name and path of the PPD file from which the PPD features will be emitted to a PostScript file. Use this field alongwith PPDFeaturesP PPDFeatures. For more details, see _t_PPDFeatures.
PDFLPrintProgressProc progressProc;
void *progressClientData;
int transQuality;
Transparency flattening quality control. 1 is fastest; 5 is best. It applies to a printer. The default is 3.
} PDFLPrintUserParamsRec;

_t_PDFLPrintUserParams

Header: PDFLPrint.h:251

Description

Used to control printing with PDFLPrintDoc.

See PDFLPrint.h for details about printing on specific platforms.

To print to a PostScript file, set emitToFile to true, fill in printParams, and create a writeable stream.

To print to a printer, set emitToPrinter to true, fill in printParams, and optionally fill in the command.

Note: UNIX supports only PostScript to a file or printer, as controlled by the mutually exclusive emitToFile and emitToPrinter parameters.

Syntax

struct _t_PDFLPrintUserParams {
ASInt32 size;
Size of the data structure. Must be set to sizeof(PDFLPrintUserParamsRec).
ASBool emitToFile;
Create a PostScript file. You set either this parameter or emitToPrinter, but not both.
PDPrintParams printParams;
PDPrintParams structure. It is used for both creating a PostScript file and printing to a printer.
ASStm printStm;
Writable ASStm that points to file stm or proc stm. It applies to both a PostScript printer and a file.
ASUns16 paperWidth;
Width of paper in points. The default value is 612. It applies to a PostScript printer.
ASUns16 paperHeight;
Height of paper in points. The default value is 792. It applies to a PostScript printer.
ASInt32 dontEmitListLen;
Number of fonts that should not be downloaded. It applies to both a PostScript printer and a file.
char **dontEmitList;
List of fonts (T1, TT, CID) that should not be downloaded. It applies to both a PostScript printer and a file.
ASBool emitToPrinter;
Output PDF file to a PostScript printer. Set either this parameter or emitToFile, but not both.
char *inFileName;

Deprecated. Use the Unicode version inFileNameW.

Used for the Windows DOCINFO structure ( lpszDocName) that points to a NULL-terminated string that specifying the name of the document. In case of printing/exporting to Postscript, this field sets the Title DSC comment in the generated Postscript file. inFileNameW has precedence over the deprecated inFileName. If neither is provided, the Title DSC comment is filled with the name of pdf document.

char *outFileName;

Deprecated. Use the Unicode version outFileNameW.

Used for the Windows DOCINFO structure ( lpszOutput). It points to a NULL-terminated string that specifies the name of an output file. If this pointer is NULL, the output will be sent to the device identified by deviceName, driverName, and portName. It applies to a printer.

char *deviceName;

Deprecated. Use the Unicode version deviceNameW.

The name of the device on which to print (for example, "Distiller Assistant v3.01"). Available devices can be found in the Windows Registry at HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices. It applies to a printer.

char *driverName;

Deprecated. Use the Unicode version driverNameW.

The name of the driver (for example, "winspool"). See the registry key for deviceName. It applies to the printer.

char *portName;

Deprecated. Use the Unicode version portNameW.

The name of the port (for example, "Ne00"). See the registry key for deviceName. It applies to the printer.

DEVMODEA *pDevMode;

Deprecated. Use the Unicode version pDevModeW.

(Optional) Allows you to pass a DEVMODE structure in if you have one.

If you do not pass in your own DEVMODE structure, PDFL creates its own by calling OpenPrinter(), DocumentProperties(), and ClosePrinter().

PDFL never calls SetPrinter() and has no facility to offer the features provided by SetPrinter() (for example, pause/resume, deleting jobs, changing printer status, etc.). DocumentProperties() is called only in the case where the client does not provide a DEVMODE.

int startPage;
Page to start printing with, using zero-based numbering. It applies to a printer.
int endPage;
Page on which to finish printing. It applies to a printer.
int shrinkToFit;
1 turns on shrink to fit, 0 turns it off. It applies to a PostScript printer.
int printAnnots;
1 turns on printing annotations, 0 turns it off. It applies to a printer.
int psLevel;
PostScript level. It applies to a PostScript printer.
int nCopies;
Number of copies to print. It applies to a printer and to a PostScript file.
int binaryOK;
1 turns on binary data, 0 turns it off. It applies to a PostScript printer.
int emitHalftones;
1 turns on emit half-tones, 0 turns it off. It applies to a PostScript printer.
int reverse;
1 reverses print order, 0 does regular order. It applies to a printer.
int farEastFontOpt;
One of PDFarEastFont.The default value is PDPDFarEastFont_Download_All. It applies to a PostScript printer. PDPDFarEastFont_Print_As_Image will not be honored.
int transQuality;
Transparency flattening quality control. 1 is fastest; 5 is best. It applies to a printer. The default is 3.
int doOPP;
1 uses OverPrint Preview, 0 does not. It applies to a printer. The default is 0.
PDFLPrintCancelProc cancelProc;
Optional PDFLPrintCancelProc. It applies to both a PostScript printer and a file.
void *clientData;
Optional pointer to data passed to cancelProc. It applies to both a PostScript printer and a file.
int startResult;
Spooler ID from StartDoc().
ASUns16 *inFileNameW;
Used for the Windows DOCINFO structure ( lpszDocName) that points to a NULL-terminated string that specifying the name of the document. In case of printing/exporting to Postscript, this field sets the Title DSC comment in the generated Postscript file. inFileNameW has precedence over the deprecated inFileName. If neither is provided, the Title DSC comment is filled with the name of pdf document.
ASUns16 *outFileNameW;
Used for the Windows DOCINFO structure ( lpszOutput). It points to a NULL-terminated string that specifies the name of an output file. If this pointer is NULL, the output will be sent to the device identified by deviceName, driverName, and portName. It applies to a printer.
ASUns16 *deviceNameW;
The name of the device to print to (for example, "Distiller Assistant v3.01"). Available devices can be found in the Windows Registry at HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices. It applies to a printer.
ASUns16 *driverNameW;
The name of the driver (for example, "winspool"). See the registry key for deviceName. It applies to the printer.
ASUns16 *portNameW;
The name of the port (for example, "Ne00"). See the registry key for deviceName. It applies to the printer.
DEVMODEW *pDevModeW;

(Optional) Allows you to pass a DEVMODE structure in if you have one.

If you do not pass in your own DEVMODE structure, PDFL creates its own by calling OpenPrinter(), DocumentProperties(), and ClosePrinter().

PDFL never calls SetPrinter() and has no facility to offer the features provided by SetPrinter() (for example, pause/resume, deleting jobs, changing printer status, etc.). DocumentProperties() is called only in the case where the client does not provide a DEVMODE.

HDC pDC;

(Optional) Allows you to pass a DeviceContext structure.

If you do not pass in your own DeviceContext structure PDFL creates its own.

PDFLPrintUserCallbacks userCallbacks;
Optional pointer to structure containing pointers to user callback functions
ASBool forceGDIPrint;
Optional value used for Postscript printing that allows printing with the code path used by the nonps printer instead of the code used by the PS printer
HDC hDC;
Optional device handle used to allow the device handle used in the user's sample with StartDoc and EndDoc to be passed to the library to be used in StartPage and EndPage.
PPDFeaturesP PPDFeatures;
Optional pointer to a structure where you can add additional PPD features like staple, input tray, output tray, duplex mode etc. for output to PostScript file. For more details, see _t_PPDFeatures
ASText ppdFileName;
(Optional)The name and path of the PPD file from which the PPD features will be emitted to a PostScript file. Use this field alongwith PPDFeaturesP PPDFeatures. For more details, see _t_PPDFeatures.
PDFLPrintProgressProc progressProc;
void *progressClientData;
ASBool useCustomPaperSize;
Force the use of the paper size provided in the PDFLPrintUserParamsRec paperWidth and paperHeight parameters instead of searching for best fit size provided by printer. PDPrintParamsRec setPageSize must also be set for this option.
} PDFLPrintUserParamsRec;

_t_PDFLPrintUserParams

Header: PDFLPrint.h:575

Description

Used to control printing with PDFLPrintDoc.

To print to a PostScript file, set emitToFile to true, fill in printParams, and create a writeable stream.

To print to a printer, set emitToPrinter to true, fill in printParams, and optionally fill in the command.

Note: UNIX supports only PostScript to a file or printer, as controlled by the (mutually exclusive) emitToFile and emitToPrinter parameters.

Syntax

struct _t_PDFLPrintUserParams {
ASInt32 size;
Size of the data structure. It must be set to sizeof(PDFLPrintUserParamsRec).
ASBool emitToFile;
Create a PostScript file. Set either this parameter or emitToPrinter, but not both.
PDPrintParams printParams;
PDPrintParams structure. It is used both for creating a PostScript file and printing to a printer.
ASStm printStm;
Writable ASStm that points to a file stream or proc stream. It applies to both a PostScript printer and a file.
ASUns16 paperWidth;
Width of paper in points. The default value is 612. It applies to a PostScript printer.
ASUns16 paperHeight;
Height of paper in points. The default value is 792. It applies to a PostScript printer.
ASInt32 dontEmitListLen;
Number of fonts that should not be downloaded. It applies to both a PostScript printer and a file.
char **dontEmitList;
List of fonts (T1, TrueType, CID) that should not be downloaded. It applies to both a PostScript printer and a file.
ASBool emitToPrinter;
Output a PDF file to a PostScript printer. Set either this parameter or emitToFile, but not both.
void *printRecord;
DO NOT USE: Classic (non-Carbon) printing is no longer supported.
PMPrintSession printSession;
Carbon print session- may be NULL. It applies to a printer.
PMPrintSettings printSettings;
Carbon print settings- may be NULL. It applies to a printer.
PMPageFormat pageFormat;
Carbon page format- may be NULL. It applies to a printer.
PDFLPrintCancelProc cancelProc;
Optional PDFLPrintCancelProc. It applies to both a PostScript printer and a file.
void *clientData;
Optional pointer to data passed to cancelProc. It applies to both a PostScript printer and a file.
int startPage;
The page on which to start printing, using zero-based numbering. It applies to a printer.
int endPage;
The page on which to finish printing. It applies to a printer.
int shrinkToFit;
1 turns on shrink to fit, 0 turns it off. It applies to a PostScript printer.
int printAnnots;
1 turns on printing annots, 0 turns it off. It applies to a printer.
int psLevel;
PostScript level. It applies to a PostScript printer.
int nCopies;
The number of copies to print. It applies to a printer and to a PostScript file.
int binaryOK;
1 turns on binary data, 0 turns it off. It applies to a PostScript printer.
int emitHalftones;
1 turns on emit half-tones, 0 turns them off. It applies to a PostScript printer.
int reverse;
1 reverses print order, 0 does regular order. It applies to a printer.
int doOPP;
1 uses OverPrint Preview, 0 does not. It applies to a printer. The default is 0.
PDFLPrintUserCallbacks userCallbacks;
Optional pointer to structure containing pointers to user callback functions
PPDFeaturesP PPDFeatures;
Optional pointer to a structure where you can add additional PPD features like staple, input tray, output tray, duplex mode etc. for output to PostScript file. For more details, see _t_PPDFeatures
ASText ppdFileName;
(Optional)The name and path of the PPD file from which the PPD features will be emitted to a PostScript file. Use this field alongwith PPDFeaturesP PPDFeatures. For more details, see _t_PPDFeatures.
PDFLPrintProgressProc progressProc;
void *progressClientData;
int transQuality;
Transparency flattening quality control. 1 is fastest; 5 is best. It applies to a printer. The default is 3.
} PDFLPrintUserParamsRec;

Used In

_t_PDFLPrintUserParamsEx

Header: PDFLPrint.h:750

Description

Used to control printing with PDFLPrintDoc.

See PDFLPrint.h for details about printing on specific platforms.

To print to a PostScript file, set emitToFile to true, fill in printParams, and create a writeable stream.

To print to a printer, set emitToPrinter to true, fill in printParams, and optionally fill in the command.

Note: UNIX supports only PostScript to a file or printer, as controlled by the mutually exclusive emitToFile and emitToPrinter parameters.

Syntax

struct _t_PDFLPrintUserParamsEx {
ASInt32 size;
Size of the data structure. Must be set to sizeof(PDFLPrintUserParamsRec).
ASBool emitToFile;
Create a PostScript file. You set either this parameter or emitToPrinter, but not both.
PDPrintParams printParams;
PDPrintParams structure. It is used for both creating a PostScript file and printing to a printer.
ASStm printStm;
Writable ASStm that points to file stm or proc stm. It applies to both a PostScript printer and a file.
ASUns16 paperWidth;
Width of paper in points. The default value is 612. It applies to a PostScript printer.
ASUns16 paperHeight;
Height of paper in points. The default value is 792. It applies to a PostScript printer.
ASInt32 dontEmitListLen;
Number of fonts that should not be downloaded. It applies to both a PostScript printer and a file.
char **dontEmitList;
List of fonts (T1, TT, CID) that should not be downloaded. It applies to both a PostScript printer and a file.
ASBool emitToPrinter;
Output PDF file to a PostScript printer. Set either this parameter or emitToFile, but not both.
char *inFileName;

Deprecated. Use the Unicode version inFileNameW.

Used for the Windows DOCINFO structure ( lpszDocName) that points to a NULL-terminated string that specifying the name of the document. In case of printing/exporting to Postscript, this field sets the Title DSC comment in the generated Postscript file. inFileNameW has precedence over the deprecated inFileName. If neither is provided, the Title DSC comment is filled with the name of pdf document.

char *outFileName;

Deprecated. Use the Unicode version outFileNameW.

Used for the Windows DOCINFO structure ( lpszOutput). It points to a NULL-terminated string that specifies the name of an output file. If this pointer is NULL, the output will be sent to the device identified by deviceName, driverName, and portName. It applies to a printer.

char *deviceName;

Deprecated. Use the Unicode version deviceNameW.

The name of the device on which to print (for example, "Distiller Assistant v3.01"). Available devices can be found in the Windows Registry at HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices. It applies to a printer.

char *driverName;

Deprecated. Use the Unicode version driverNameW.

The name of the driver (for example, "winspool"). See the registry key for deviceName. It applies to the printer.

char *portName;

Deprecated. Use the Unicode version portNameW.

The name of the port (for example, "Ne00"). See the registry key for deviceName. It applies to the printer.

DEVMODEA *pDevMode;

Deprecated. Use the Unicode version pDevModeW.

(Optional) Allows you to pass a DEVMODE structure in if you have one.

If you do not pass in your own DEVMODE structure, PDFL creates its own by calling OpenPrinter(), DocumentProperties(), and ClosePrinter().

PDFL never calls SetPrinter() and has no facility to offer the features provided by SetPrinter() (for example, pause/resume, deleting jobs, changing printer status, etc.). DocumentProperties() is called only in the case where the client does not provide a DEVMODE.

int startPage;
Page to start printing with, using zero-based numbering. It applies to a printer.
int endPage;
Page on which to finish printing. It applies to a printer.
int shrinkToFit;
1 turns on shrink to fit, 0 turns it off. It applies to a PostScript printer.
int printAnnots;
1 turns on printing annotations, 0 turns it off. It applies to a printer.
int psLevel;
PostScript level. It applies to a PostScript printer.
int nCopies;
Number of copies to print. It applies to a printer and to a PostScript file.
int binaryOK;
1 turns on binary data, 0 turns it off. It applies to a PostScript printer.
int emitHalftones;
1 turns on emit half-tones, 0 turns it off. It applies to a PostScript printer.
int reverse;
1 reverses print order, 0 does regular order. It applies to a printer.
int farEastFontOpt;
One of PDFarEastFont.The default value is PDPDFarEastFont_Download_All. It applies to a PostScript printer. PDPDFarEastFont_Print_As_Image will not be honored.
int transQuality;
Transparency flattening quality control. 1 is fastest; 5 is best. It applies to a printer. The default is 3.
int doOPP;
1 uses OverPrint Preview, 0 does not. It applies to a printer. The default is 0.
PDFLPrintCancelProc cancelProc;
Optional PDFLPrintCancelProc. It applies to both a PostScript printer and a file.
void *clientData;
Optional pointer to data passed to cancelProc. It applies to both a PostScript printer and a file.
int startResult;
Spooler ID from StartDoc().
ASUns16 *inFileNameW;
Used for the Windows DOCINFO structure ( lpszDocName) that points to a NULL-terminated string that specifying the name of the document. In case of printing/exporting to Postscript, this field sets the Title DSC comment in the generated Postscript file. inFileNameW has precedence over the deprecated inFileName. If neither is provided, the Title DSC comment is filled with the name of pdf document.
ASUns16 *outFileNameW;
Used for the Windows DOCINFO structure ( lpszOutput). It points to a NULL-terminated string that specifies the name of an output file. If this pointer is NULL, the output will be sent to the device identified by deviceName, driverName, and portName. It applies to a printer.
ASUns16 *deviceNameW;
The name of the device to print to (for example, "Distiller Assistant v3.01"). Available devices can be found in the Windows Registry at HKEY_CURRENT_USER\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Devices. It applies to a printer.
ASUns16 *driverNameW;
The name of the driver (for example, "winspool"). See the registry key for deviceName. It applies to the printer.
ASUns16 *portNameW;
The name of the port (for example, "Ne00"). See the registry key for deviceName. It applies to the printer.
DEVMODEW *pDevModeW;

(Optional) Allows you to pass a DEVMODE structure in if you have one.

If you do not pass in your own DEVMODE structure, PDFL creates its own by calling OpenPrinter(), DocumentProperties(), and ClosePrinter().

PDFL never calls SetPrinter() and has no facility to offer the features provided by SetPrinter() (for example, pause/resume, deleting jobs, changing printer status, etc.). DocumentProperties() is called only in the case where the client does not provide a DEVMODE.

HDC pDC;

(Optional) Allows you to pass a DeviceContext structure.

If you do not pass in your own DeviceContext structure PDFL creates its own.

PDFLPrintUserCallbacks userCallbacks;
Optional pointer to structure containing pointers to user callback functions
ASBool forceGDIPrint;
Optional value used for Postscript printing that allows printing with the code path used by the nonps printer instead of the code used by the PS printer
HDC hDC;
Optional device handle used to allow the device handle used in the user's sample with StartDoc and EndDoc to be passed to the library to be used in StartPage and EndPage.
PPDFeaturesP PPDFeatures;
Optional pointer to a structure where you can add additional PPD features like staple, input tray, output tray, duplex mode etc. for output to PostScript file. For more details, see _t_PPDFeatures
ASText ppdFileName;
(Optional)The name and path of the PPD file from which the PPD features will be emitted to a PostScript file. Use this field alongwith PPDFeaturesP PPDFeatures. For more details, see _t_PPDFeatures.
PDFLPrintProgressProc progressProc;
void *progressClientData;
ASBool useCustomPaperSize;
Force the use of the paper size provided in the PDFLPrintUserParamsRec paperWidth and paperHeight parameters instead of searching for best fit size provided by printer. PDPrintParamsRec setPageSize must also be set for this option.
ASBool oneJobwithNCopies;
} PDFLPrintUserParamsRecEx;

Used In

_t_PDPrintClient

Header: PDFLExpT.h:1887

Description

A data structure used by PDDocPrintPages. It contains methods to be implemented by the client. Unless otherwise indicated, methods may be NULL, indicating that they do nothing. The methods are called in the order listed in this structure.

Syntax

struct _t_PDPrintClient {
ASSize_t size;
The size of the structure.
PDDoc pdDoc;
The document to print.
PDPrintParams params;
A control structure describing how to print the document.
ACCBPROTO1 void( ACCBPROTO2 *DocBegin )( const PDPageRange ranges [], ASInt32 numRanges, ASStm stm, const PDResTree docTree, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. Begin processing a document for printing.
ACCBPROTO1 ASBool( ACCBPROTO2 *DocSetup )( const PDPageRange ranges [], ASInt32 numRanges, ASStm prologStm, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. Set up a document for printing.
ACCBPROTO1 void( ACCBPROTO2 *EndSetup )( ASStm stm, PDPrintClient client )

(Optional) A callback for PDPrintClient. End the setup for printing a document.

One task that might be performed here is to broadcast a notification for each range of pages that will be printed, as in this pseudo code:

for i = 0 to numRanges-1... {

NOTIFY( PDDocWillPrintPages)(doc, fromPage, toPage, psLevel, binaryOK);

for pageNum = ranges[ i]-> startPage to ranges[ i]-> lastPage...

}

ACCBPROTO1 void( ACCBPROTO2 *NotifyNewPage )( ASInt32 pageNum, PDPrintClient printClient )

(Optional) A callback for PDPrintClient. It is called once for each page printed.

A client can use this notification to update the page number in the message pane, for example.

ACCBPROTO1 void( ACCBPROTO2 *PageBegin )( ASStm stm, ASInt32 pageNum, const PDResTree pageTree, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called before a page begins printing.
ACCBPROTO1 ASBool( ACCBPROTO2 *BeforePageSetup )( ASStm stm, ASInt32 pageNum, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called before a page is printed to set it up. (And before the %%BeginpageSetup DCS)
ACCBPROTO1 ASBool( ACCBPROTO2 *PageSetup )( ASStm stm, ASInt32 pageNum, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called before a page is printed to set it up.
ACCBPROTO1 void( ACCBPROTO2 *PageSetupPostResource )( ASStm stm, ASInt32 pageNum, PDPrintClient printClient )
A callback for PDPrintClient. PageSetupPostResource() is called from PDPrintPageBegin() after the resource tree has been processed (all fonts and other resources emitted into the PostScript stream).
ACCBPROTO1 void( ACCBPROTO2 *PageCleanup )( ASStm stm, ASInt32 pageNum, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It mirrors PageSetup; PageCleanup is called before we clean our dictionaries.
ACCBPROTO1 void( ACCBPROTO2 *EmitPageContents )( ASStm stm, ASInt32 pageNum, PDPage pdPage, PDPrintClient printClient )

(Optional) A callback for PDPrintClient. It emits the page contents for printing. It broadcasts a notification that the page has been printed:

NOTIFY( PDDocDidPrintPage) (doc, page, stm, error)

There is a default callback for PostScript printing.

ACCBPROTO1 void( ACCBPROTO2 *PageEnd )( ASStm stm, ASInt32 pageNum, ASBool veryLastPage, PDPrintClient printClient )

(Optional) A callback for PDPrintClient. It is called after a page has printed. It broadcasts a notification that the page has printed:

NOTIFY( PDDocDidPrintPages) (doc, fromPage, toPage, error);

ACCBPROTO1 void( ACCBPROTO2 *DocEnd )( ASStm stm, PDPrintClient printClient, PDPrintController controller )
In order for the Mac platform to emit color comments, the controller needs to be passed to the DocEnd client callback. The client then calls PDPrintFillColorUsageBuf() to fill in the data for the injection point used by the print manager to emit the custom color comments.
ACCBPROTO1 void( ACCBPROTO2 *DocEnd )( ASStm stm, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It ends processing a document for printing.
PDPrintGetFontEncodingMethodProc GetFontEncodingMethod;
This routine is called to ask the client what encoding method should be used for the font. This cannot be NULL for PostScript printing.
ACCBPROTO1 ASInt32( ACCBPROTO2 *GetFontVMUsage )( PDFont fontP, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It asks the client what the VM usage is for the font.
ACCBPROTO1 void( ACCBPROTO2 *EmitPSFontBegin )( ASStm stm, PDFont fontP, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called before a font is emitted (outside DSC comments).
ACCBPROTO1 void( ACCBPROTO2 *EmitPSFontEnd )( ASStm stm, PDFont fontP, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called after a font is emitted (outside DSC comments).
ACCBPROTO1 ASBool( ACCBPROTO2 *EmitPSFontEncodingBegin )( ASStm stm, PDFont fontP, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called before a font encoding is emitted.
ACCBPROTO1 void( ACCBPROTO2 *EmitPSFontEncodingEnd )( ASStm stm, PDFont fontP, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called after a font encoding is emitted.
ACCBPROTO1 void( ACCBPROTO2 *EmitPSResourceBegin )( ASStm stm, ASAtom resType, const char *resName, CosObj resObj, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called before a PostScript resource is emitted.
ACCBPROTO1 void( ACCBPROTO2 *EmitPSResourceEnd )( ASStm stm, ASAtom resType, const char *resName, CosObj resObj, PDPrintClient printClient )
(Optional) A callback for PDPrintClient. It is called after a PostScript resource is emitted.
ACCBPROTO1 ASBool( ACCBPROTO2 *ShouldCancel )( PDPrintClient printClient )
A callback for PDPrintClient. ShouldCancel is called at least once per page. It should return true if the print job should be cancelled (typically, the user hit a key combination to cancel printing).
ACCBPROTO1 ASBool( ACCBPROTO2 *CancelPrintJob )( PDPrintClient printClient )
A callback for PDPrintClient. CancelPrintJob is called to actually cause the print job to be cancelled. It should stop further printing and preferably should remove the incomplete print job.
ACCBPROTO1 ASInt32( ACCBPROTO2 *FlushString )( char *data, ASInt32 nData, PDPrintClient printClient )
(Required) A callback for PDPrintClient. It is called when the ASStm buffer is full. Buffered data should be sent to the printer, driver, file, or other destination. Not used for non-PostScript printing.
ACCBPROTO1 ASInt32( ACCBPROTO2 *EmitPrologString )( const char *s, ASInt32 nData, PDPrintClient printClient )

(Optional) A callback for PDPrintClient. It emits a prolog string.

It defaults to a method that calls FlushString().

This routine is called to determine whether a font can be emitted into the print job. This is used to determine whether a font is a document-included resource. It is only used for PostScript.

OPTIONAL: The default is to assume that any font can be emitted.

REQUIRED. This routine is called to emit a font. For Type0 fonts that require font substition, this routine may emit multiple font definitions. The caller can get the list of fonts used by calling GetFontComponentList().
ACCBPROTO1 ASBool( ACCBPROTO2 *UndefineFont )( ASStm stm, PDFont fontP, ASBool vmUndefine, PDPrintClient client )
(Required) UndefineFont() is called to remove the font from the list of fonts that have been downloaded and to undefine the font from PostScript VM. It may be called during a page, at the end of the page, or between pages. After this routine is called, if the font is required again, the EmitFont() routine will be called.
ACCBPROTO1 ASBool( ACCBPROTO2 *EmitFontProcSet )( ASStm stm, PDFont fontP, PDPrintClient client )
(Optional) A callback for PDPrintClient. EmitFontProcSet() is called while emitting the document prolog. It should emit any procsets required to download the font. The routine will be called once for each font in the document. However, each procset only needs to be downloaded once per document.
ACCBPROTO1 ASBool( ACCBPROTO2 *EmitGlyphsIncr )( ASStm stm, PDFont fontP, PDPrintStrP srcStr, PDPrintStrP dstStr, ASUns32 *srcBytesUsed, ASUns32 *dstBytesUsed, ASUns32 *glyphCount, ASUns16 *fontIndex, PDPrintClient printClient )
A callback for PDPrintClient. It emits glyphs incrementally.
ACCBPROTO1 void( ACCBPROTO2 *GetComponentFontList )( PDFont fontP, PDPrintFontArrayP fontList, PDPrintClient printClient )
(Required) A callback for PDPrintClient. GetComponentFontList() is called to get the list of component font names used for substitution. For fonts that do not require substitution or are substituted by only one font, the list returned should only have one element. For a Type 0 font that requires several fonts for font substitution, the list will have multiple fonts. The font names returned are the names used by the font definitions downloaded to PostScript. The font definitions themselves are downloaded by a call to the EmitFont() routine.
ACCBPROTO1 void( ACCBPROTO2 *FlushIncrGlyphList )( ASStm stm, PDPrintClient printClient )

(Required) A callback for PDPrintClient. FlushIncrGlyphList() is called to flush the list of glyphs that have been incrementally download since the calls to EmitFont or the last call of FlushIncrGlyphList. This routine will be called if the caller generates PostScript code that would flush glyphs procedures that have been downloaded to the PostScript interpreter. For example, if at the beginning of each page, a save is executed and then at the end of a page, a restore is executed, any glyph procedures downloaded after the beginning of the page will be removed when the restore is executed.

The call to FlushIncrGlyphList() indicates that all the glyphs need to be redownloaded, by calls to EmitGlyphsIncr().

ACCBPROTO1 ASBool( ACCBPROTO2 *OPIhandler )( OPIdict *opi, ASStm stm, void *clientData )
(Optional) A callback for PDPrintClient. If this method is supplied, then during PostScript printing, it will be called when a form or image containing an OPI dictionary is encountered. If it returns true, then the client is presumed to have taken care of the entire form or image, and PDFL will emit nothing. Otherwise, PDFL will generate OPI comments based on the dictionary.
ACCBPROTO1 ASUns32( ACCBPROTO2 *DataSourceString )( PDFileSpec f, char *buf, ASUns32 bufSize, void *clientData )

(Optional) If this method is supplied, and the emitExternalStreamRef parameter in the PDPrintParamsRec is true, then during PostScript printing this method will be called when an external stream is encountered. If the method is not supplied, or if it returns NULL, then the simple path name will be written as the DataSource for the stream; otherwise, the returned string will be written as the DataSource.

The DataSource is used thus:

/ DataSource (xxxxx) (r) file

where xxxxx is the returned string or the simple path name.

ASInt32 sequentialPageNum;
The current page, starting at 1.
void *clientData;
Data for the client's use. This data is passed to the OPIhandler and DataSourceString methods.
void *fontDownloadContext;
For the client's use to hold a font download context for the EmitFontProcSet.
ASInt32 vmUsed;
The amount of virtual memory used. It is incremented by routines that download fonts and resources.
ACCBPROTO1 ASBool( ACCBPROTO2 *ProgressMonitor )( ASInt32 pageNum, ASInt32 totalPages, float current, const char *name, ASInt32 stage, void *progMonClientData )
Optional. If ProgressMonitor, then during PostScript printing, it will be called when page uses the flattener to print.
void *progMonClientData;
ACCBPROTO1 void( ACCBPROTO2 *GetTimeDate )( ASText timeDate )
For use in the Exchange product, when emitting the time/date of the print job (the PageInfo mark for separations), this callback takes an ASText object and the client side fills in the timeDate with a localized representation of the current date and time. This could be called from the Tiling code as well.
Pro product only.
ACCBPROTO1 void( ACCBPROTO2 *GetClientPaperSize )( PDPrintClient printClient, ASFixed *height, ASFixed *width, ASBool *custom )
For internal use of PDFL. SDK clients must set this parameter to NULL.
ASStm outStm;
Output stream for creating postscript file.
} PDPrintClientRec;

Used In

_t_PPDFeatures

Header: PDFLPrint.h:1062

Syntax

struct _t_PPDFeatures {
ASUns32 size;
Size of the data structure. It must be set to sizeof(PPDFeaturesRec).
ASText InputSlot;
Optional. Specifies the Input Tray of the printer. For eg. Upper
ASText OutputBin;
Optional. Specifies the Onput Tray of the printer. For eg. Left
ASText Duplex;
Optional. Specifies the Duplex mode. For eg. DuplexTumble
ASText StapleLocation;
Optional. Specifies the location for stapling. For eg. SinglePortrait. Either StapleLocation should be used or both StapleX and StapleY to specify the location for stapling.
ASText StapleX;
Optional. Specifies the StapleX. For eg. Left. Also read the comment on StapleLocation
ASText StapleY;
Optional. Specifies the StapleY. For eg. Top. Also read the comment on StapleLocation
ASText StapleOrientation;
Optional. Specifies the orientation of the stapling. For eg. 45
ASText StapleWhen;
Optional. Specifies when to staple. For eg. EndOfPage
};

Used In

_t_TIFFASCIITagList

Header: PDFLExpT.h:1601

Description

TIFF ASCII tags.

Syntax

struct _t_TIFFASCIITagList {
ASInt32 tagNumber;
The tag number
TextList *tagText;
Tag text list.
struct _t_TIFFASCIITagList *next;
For OPI 1.3, the TextList contains only one element.
} TIFFASCIITagList;

Used In

_t_monoInkList

Header: PDFLExpT.h:1675

Description

Image ink monochrome list.

Syntax

struct _t_monoInkList {
char *name;
Name of the colorant.
float level;
Concentration of the colorant.
struct _t_monoInkList *next;
Pointer to next list element.
} MonoInkList;

Used In

_t_textList

Header: PDFLExpT.h:1593

Description

List structure used in TIFFASCIITagList.

Syntax

struct _t_textList {
char *name;
Tag name.
struct _t_textList *next;
Pointer to next list element.
} TextList;

Used In

PDFLPrint Functions

PDFLPrintDoc

Header: PDFLProcs.h:747

Description

Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.

Note: Users of the PDFLPrintDoc() method do not have to create the PDPrintClient() callbacks. That detail is handled by the library.

Syntax

void PDFLPrintDoc(PDDoc doc, PDFLPrintUserParams userParams);

Parameters

doc
The PDDoc for the document to print.
userParams
Parameters to control printing.

Exceptions

PDFLPrintDocEx

Header: PDFLProcs.h:778

Description

Prints a PDF document or pages from a PDF document allowing the caller to specify options such as page size, rotation, and shrink-to-fit.

Note: Users of the PDFLPrintDoc() method do not have to create the PDPrintClient() callbacks. That detail is handled by the library.

Syntax

void PDFLPrintDocEx(PDDoc doc, PDFLPrintUserParamsEx userParams);

Parameters

doc
The PDDoc for the document to print.
userParams
Parameters to control printing.

Exceptions

PDFLPrintPDF

Header: PDFLProcs.h:753

Description

Deprecated: use PDFLPrintDoc() instead.

Syntax

void PDFLPrintPDF(PDDoc pdDoc, ASPathName pathName, PDPrintParams psParams);