/*-----------------------------------------------------------------------------*/ /*! ** \file PdfImpositionTypes.h ** \author © 2000 callas software gmbh ** \author Andreas Dippe ** \date created 06.02.2001 ** \date updated 27.01.2009 ** \brief The header file "PdfImpositionTypes.h" declares the struct and enum for the PDFengine Imposition Library DLL. */ /*-----------------------------------------------------------------------------*/ #ifndef _PDFIMPOSITIONTYPES_H #define _PDFIMPOSITIONTYPES_H #if defined( MAC_PLATFORM ) && defined(__MWERKS__) # pragma options align=power # pragma enumsalwaysint on #endif /*-----------------------------------------------------------------------------*/ /* simple type */ /*-----------------------------------------------------------------------------*/ typedef int IPL_bool_t; /*!< Boolean type */ typedef short IPL_int16_t; /*!< 16 bit signed int */ typedef unsigned short IPL_uint16_t; /*!< 16 bit unsigned int */ //#if !defined(AIX) && !defined(_AIX) && !defined(__x86_64__) /* exclude 64bit systems.*/ //typedef long IPL_int32_t; /*!< 32 bit signed int */ //typedef unsigned long IPL_uint32_t; /*!< 32 bit unsigned int */ //typedef long IPL_sheetid_t; /*!< 32 bit signed int */ //#else /* !defined(AIX) && !defined(_AIX) && !defined(__x86_64__) */ typedef int IPL_int32_t; /*!< 32 bit signed int */ typedef unsigned int IPL_uint32_t; /*!< 32 bit unsigned int */ typedef int IPL_sheetid_t; /*!< 32 bit signed int */ //#endif /* !defined(AIX) && !defined(_AIX) && !defined(__x86_64__) */ typedef double IPL_real_t; /*!< Double real type */ typedef float IPL_float_t; /*!< Simple real type */ typedef IPL_uint32_t IPL_size_t; /*!< size type */ typedef char IPL_sys_char_t; /*!< system character type */ typedef unsigned char IPL_utf8_char_t; /*!< UTF-8 character type */ typedef IPL_uint16_t IPL_utf16_char_t; /*!< UTF-16 character type */ typedef IPL_utf8_char_t IPL_Path_t; /*!< File path type */ /*-----------------------------------------------------------------------------*/ /*-----------------------------------------------------------------------------*/ /* Error codes */ /*-----------------------------------------------------------------------------*/ typedef enum { IPL_eErr_WriteFail = 10001 /*Cannot generate or write file*/ , IPL_eErr_DictExpect /*CosDict expected*/ , IPL_eErr_IntExpect /*CosInteger expected*/ , IPL_eErr_NameExpect /*CosName expected*/ , IPL_eErr_ArrayExpect /*CosArray expected*/ , IPL_eErr_ObjNotFound /*CosObject not found*/ , IPL_eErr_MBoxFail /*Mediabox is defect*/ , IPL_eErr_NumberExpect /*CosNumber expected*/ , IPL_eErr_ArrayLenghtFail /*CosArray is too short*/ , IPL_eErr_SheetIdxRange /*Sheet index is too big*/ , IPL_eErr_ObjIdxRange /*PDF-Object index is too big*/ , IPL_eErr_StreamExpect /*CosStream expected*/ , IPL_eErr_IDsNotFound /*Could not find callasID or userID in the sheet*/ , IPL_eErr_MatrixNotFound /*Could not find matrix instruction*/ , IPL_eErr_PaintNotFound /*Could not find drawing instruction*/ , IPL_eErr_PageDescFail /*Invalid page description*/ , IPL_eErr_IDsNotMatch /*Unable to identify the handed over callasID or userID*/ , IPL_eErr_SheetOpen /*Can not create or open sheet file*/ , IPL_eErr_SheetNotOpen /*Sheet file is not opened*/ , IPL_eErr_SheetPageIdx /*Invalid sheet file page index*/ , IPL_eErr_InvalidMBox /*Invalid mediabox entry*/ , IPL_eErr_NoPDFFile /*File is not a correct PDF file*/ , IPL_eErr_ErrorInSheet /*PDF error in sheet file*/ , IPL_eErr_SheetWrite /*Cannot save sheet file*/ , IPL_eErr_InvalidStructSize /*Invalid size of a struct*/ , IPL_eErr_InvalidPVParam /*Invalid parameter while creating preview*/ , IPL_eErr_PDFEncryting /*The document is encrypted. Unable to work with encrypted document*/ , IPL_eErr_DDEFail /*Unable to register preview dde client or acrobat could not be started*/ , IPL_eErr_DDETimeout /*Preview client reports timeout*/ , IPL_eErr_NoMemoryPV /*Preview client reports out of memory*/ , IPL_eErr_PreviewDDEFail /*Preview client reports error*/ , IPL_eErr_UserStoped /*User has stoped process*/ , IPL_eErr_NoMemory /*No memory available*/ , IPL_eErr_StreamLostData /*Stream object has lost data*/ , IPL_eErr_CopyFail /*Unable to copy PDF file. No memory available*/ , IPL_eErr_TmpPathToLong /*Path for temporary files is to long*/ , IPL_eErr_PageNotFound /*The requested page is not available in this sheet file*/ , IPL_eErr_SpotColorNotFound /*Unable to found the demanded spot colors or it is a DeviceN colorspace, this is not supported*/ , IPL_eErr_InfoDictNotFound /*Unable to find the PDF file info dictionary*/ , IPL_eErr_InfoDictFail /*Info parameter not valid*/ , IPL_eErr_NumOfSepColors /*Only 1, 3 or 4 are valid as separation colorant number*/ , IPL_eErr_KeycodeFail /*The keycode is not correct*/ , IPL_eErr_KeycodeExpired /*The keycode has expired*/ , IPL_eErr_TmpFileCreation /*Unable to create a temporary file*/ , IPL_eErr_InvalidParameter /*Invalid or missing parameter in callback funktion*/ , IPL_eErr_NewPageFail /*Unable to create a new page*/ , IPL_eErr_SaveExpotFail /*Unable to save export file*/ , IPL_eErr_PageIdxNotFound /*Unable to find the needed page, page number is unknown*/ , IPL_eErr_PageAlreadyUsed /*This page is already in use*/ , IPL_eErr_OpenPDFFile /*Unable to open PDF file*/ , IPL_eErr_ImposeFileOpen /*Unable to open Impose file*/ , IPL_eErr_TemplateFileOpen /*Unable to open Template file*/ , IPL_eErr_UnknownError /*Unknown error code*/ , IPL_eErr_WrongObjCode /*The given "object code" is corrupt*/ , IPL_eErr_InvalidUTF8 /*Text is not valid UTF8*/ , IPL_eErr_FontNotFound /*Requested Font could not be found*/ , IPL_eErr_InvalidDoc = 29001 /*Invalid PDF document. The analysis of page content is interrupted*/ , IPL_eErr_AnalysisInterrupt /*The analysis of page content is interrupted. Not enough memory*/ } IPL_EErrorCodes; /*-----------------------------------------------------------------------------*/ /*! default path length */ #define IPL_MAX_LENGTH 512 /*-----------------------------------------------------------------------------*/ /*! Indicates the type of the respective resource; used in IPL_GetCALSResourceNames. */ typedef enum { IPL_eCALS_FONTCOURIER = 1 /*!< Get the PDFengine Imposition Library courier font resource name. */ , IPL_eCALS_COLORSPACEALL /*!< Get the PDFengine Imposition Library colorspace all resource name. */ } IPL_CALSRESOURCETYPE; /*! Type of the name buffer, the reason to do this here, is to define the size of this buffer; used in IPL_GetCALSResourceNames */ typedef IPL_sys_char_t IPL_TCALSRESNAME[128]; /*!< type of resource name buffer. */ /*-----------------------------------------------------------------------------*/ /*! Type of the progress callback function. The parameters for the callback function have the follwing semantics: \param lowrange lower limit of the range of values \param highrange upper limit of the range of values \param counter value between lower and upper limit that indicates the progress \param cbparam the pointer value as input when installing the callback function \return if the callback function return false, the process was stoped and the called function, e.g. "IPL_PDFOutputStream_Close", return 10032 (User has stoped process.), See description of IPL_SetProgressFunction. */ typedef IPL_bool_t (*IPL_PROGRESSFUNCTION)( IPL_int32_t lowrange, IPL_int32_t highrange, IPL_int32_t counter, void* cbparam); /*-----------------------------------------------------------------------------*/ /*! Indicates the type of the requested preview; used in IPL_PDFDocument_CreatePreviews. */ typedef enum { IPL_ePVT_BMP = 0 /*!< windows device-independent bitmap format. */ , IPL_ePVT_JPEGTIFF /*!< TIFF file format (V.6.0) with JPEG encoding, NOTE: At the time, not implemented. */ , IPL_ePVT_JFIF /*!< JFIF, JPEG file interchange format */ } IPL_PREVIEWTYPE; /*! The IPL_TCREATEPREVIEW struct defines all necessary parameter to create a preview; used in IPL_PDFDocument_CreatePreviews. */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_int32_t resolution; /*!< contains the preview resolution, 72 - 300 dpi */ IPL_int32_t type; /*!< contains enum type from IPL_PREVIEWTYPE, see above */ IPL_utf8_char_t prefix[IPL_MAX_LENGTH]; /*!< contains prefix string for the preview file, e.g. "KIM" */ IPL_utf8_char_t suffix[IPL_MAX_LENGTH]; /*!< contains suffix string for the preview file, e.g. ".BMP" */ IPL_int32_t digits; /*!< contains number of digits to use in preview file name */ } IPL_TCREATEPREVIEW; /*-----------------------------------------------------------------------------*/ /*! The IPL_TDRECT structure defines the coordinates of the upper-left and lower-right corners of a rectangle with IPL_float_t values. */ typedef struct { IPL_float_t left; /*!< left edge */ IPL_float_t bottom; /*!< lower edge */ IPL_float_t right; /*!< right edge */ IPL_float_t top; /*!< upper edge */ } IPL_FLOATRECT; typedef struct { union { IPL_float_t rc[4]; /*!< as array for sequential access. */ IPL_FLOATRECT fr; }; } IPL_TDRECT; /*-----------------------------------------------------------------------------*/ /*! The IPL_TDPOINT structure defines a point with IPL_float_t values. */ typedef struct { IPL_float_t x; /*!< the x coordinate */ IPL_float_t y; /*!< the y coordinate */ } IPL_TDPOINT; /*-----------------------------------------------------------------------------*/ /*! The IPL_PDFIMPOSITIONINFO struct defines the additional PDF-information to a PDF sheet file; used in IPL_PDFOutputStream_AddInfo */ /* new in interface version, 1.6 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_utf8_char_t* lpAuthor; /*!< this is the autor of the pdf file. */ IPL_utf8_char_t* lpProducer; /*!< The name of the application that create the document. In german ( Erzeugt mit) */ IPL_utf8_char_t* lpTitle; /*!< The document's title. In german ( Titel) */ IPL_utf8_char_t* lpSubject; /*!< The subject of the document. In german ( Thema) */ IPL_utf8_char_t* lpKeywords; /*!< Keywords associated with the document. In german ( Stichwoerter) */ IPL_utf8_char_t* lpDummy1; /*!< unused at the time */ IPL_utf8_char_t* lpDummy2; /*!< unused at the time */ } IPL_PDFIMPOSITIONINFO; /*-----------------------------------------------------------------------------*/ /*! The IPL_TDMATRIX struct defines the values tranformation matrix, used in pdf files. For more information see Portable Document Format Reference Manual, Version 1.3, section 3.10; used in IPL_PDFSheet_AddObject and IPL_PDFSheet_RetransformObject */ typedef struct { IPL_float_t a; IPL_float_t b; IPL_float_t c; IPL_float_t d; IPL_float_t h; IPL_float_t v; } IPL_TDMATRIX; /*-----------------------------------------------------------------------------*/ /*! The IPL_TOBJECTID struct defines the information to create or identify a sheet object; used in IPL_PDFSheet_AddObject, IPL_PDFSheet_RemoveObject and IPL_PDFSheet_RetransformObject */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_Path_t pdffile[IPL_MAX_LENGTH]; /*!< contains the UTF8 full path to the sheet pdf file to insert to sheet */ IPL_int32_t pageidx; /*!< contains page index into pdf object */ IPL_utf8_char_t callasID[IPL_MAX_LENGTH]; /*!< object ID string, use from callas to identify objects into sheet */ IPL_utf8_char_t userID[IPL_MAX_LENGTH]; /*!< object ID string, use from other dll user to identify objects into sheet */ } IPL_TOBJECTID; /*-----------------------------------------------------------------------------*/ /*! The IPL_TPDFCODEID struct defines the information to insert additional pdf-code to a sheet; used in IPL_PDFSheet_InsertPDFCode. */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_sys_char_t* pdfcode; /*!< contains the private pdf contents stream code */ IPL_int32_t pdfcodelen; /*!< contains the length of pdfcode */ IPL_bool_t allcolorspace; /*!< if 0, the "separation colorspace all" is disabled in this private pdf contents stream code */ IPL_utf8_char_t callasID[IPL_MAX_LENGTH]; /*!< object ID string, use from callas to identify objects into sheet */ IPL_utf8_char_t userID[IPL_MAX_LENGTH]; /*!< object ID string, use from other dll user to identify objects into sheet */ } IPL_TPDFCODEID; /*-----------------------------------------------------------------------------*/ /*! The IPL_TPDFCODECOLOR_2 struct defines the information about separation color for additional pdf-code; used in IPL_PDFSheet_InsertPDFCode. */ /* new in interface version, 1.7 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_utf8_char_t colorname[IPL_MAX_LENGTH]; /*!< contains the name of the separation color */ IPL_int32_t colorcomp; /*!< contains the number of color components, 1, 3 and 4 are valid numbers. */ IPL_float_t colorv[4]; /*!< the color values for the alternate color, colorcomp says how many values are valid. */ } IPL_TPDFCODECOLOR; /*-----------------------------------------------------------------------------*/ /* new in interface version 2.3 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_utf8_char_t colorname[IPL_MAX_LENGTH]; /*!< contains the name of the separation color */ IPL_int32_t colorcomp; /*!< contains the number of color components, 1, 3 and 4 are valid numbers. */ IPL_float_t colorv[4]; /*!< the color values for the alternate color, colorcomp says how many values are valid. */ IPL_float_t tintvalue; /*!< the tint value for seperation color. */ } IPL_TPDFCODECOLOR_2; /*-----------------------------------------------------------------------------*/ /*! The IPL_TSEPARATIONINFO struct defines the information to create separation info; used in IPL_PDFSheet_InsertSepInfo. */ /* new in interface version, 1.3 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_int32_t pagenum; /*!< numbers of pages for this separation info, restricted the arrays below. */ IPL_bool_t* isname; /*!< pointer of an bool array: is true, if colorname specified a name objet not a string, like "Cyan". */ IPL_utf8_char_t** colorname; /*!< pointer of an UTF8 char* array: the name of the device colorant assigned to this separation. */ IPL_int32_t* pagearray; /*!< pointer of an array of page numbers which are the PDF pages that comprise a single separated document page. */ /* new in interface version, 1.4 */ IPL_int32_t logpagenum; /*!< contains the logical page number, necessary for pagelabel dict. */ } IPL_TSEPARATIONINFO; /*-----------------------------------------------------------------------------*/ /*! Type of the spot color callback function. If no complete spot color representation can be found, this callback must help to give alternate color values. The parameters for the callback function have the follwing semantics: \param color the available information about spot color. If the callback function is invoked only the color.size and color.colorname member are valid. The callback function itself must fill the color.colorcomp and color.colorv. \param userdata the user defined data will be hand over \return if the callback function return false, the process was stoped and the called function. */ typedef IPL_bool_t (*IPL_SPOTCOLORFUNCTION)( IPL_TPDFCODECOLOR* color, void* userdata); /*-----------------------------------------------------------------------------*/ /*! The IPL_TCOLORMAPPER struct defines the information to match colorant names; used in IPL_PDFSheet_AddObject */ /* new in interface version, 1.5 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_int32_t colors; /*!< the number of colors entrys (pointers) in the oldcolor or newcolor pointer array. */ IPL_utf8_char_t** oldcolor; /*!< pointer of an UTF8 char* array: holds the names of the old color names to be mapped. */ IPL_utf8_char_t** newcolor; /*!< pointer of an UTF8 char* array: holds the names of the new color names to mapped to. */ IPL_Path_t altpdf[IPL_MAX_LENGTH]; /*!< contains a alternate UTF8 pdf file path, from with the colorspace can be imported. */ IPL_int32_t altpagenum; /*!< contains the page number, from which the colorspace can be imported, if altpdf different NULL. */ /* new in interface version, 1.16 */ IPL_SPOTCOLORFUNCTION alternatecb; /*!< if no complete spot color representation can be found, this callback must help to give the color values */ void* alternatecbdata; /*!< user defined data will be hand over the callback function alternatecb in his userdata parameter */ } IPL_TCOLORMAPPER; /*-----------------------------------------------------------------------------*/ /*! The IPL_TPDFOBJECTCODE struct defines the information to insert additional pdf-code before and after a sheet object will be draw used in IPL_PDFSheet_InsertPDFCode. */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_sys_char_t* preobjcode; /*!< contains pdf contents stream code to insert straightly before sheet object will paint */ IPL_int32_t preobjcodelen; /*!< contains the length in bytes of preobjcode */ IPL_sys_char_t* postobjcode; /*!< contains pdf contents stream code to insert straightly after sheet object will paint */ IPL_int32_t postobjcodelen; /*!< contains the length in bytes of postobjcode */ } IPL_TPDFOBJECTCODE; /*-----------------------------------------------------------------------------*/ /*! The IPL_ETrGroupAction enum defines the behaviour of transparency group information.; used in function IPL_PDFSheet_AddObject2. */ /* new in interface version, 2.05 */ typedef enum { IPL_etgIgnore /*!< ignore all transparency group settings from original page */ , IPL_etgAlways /*!< if exist copy transparency group object from original page into sheet object and set I(solated) to true */ , IPL_etgNever /*!< if exist copy transparency group object from original page into sheet object and set I(solated) to false */ , IPL_etgUnchanged /*!< if exist copy transparency group object from original page into sheet object, I(solated) sould be unchanged */ , IPL_etgHasTransparency /*!< if exist and page use transparency in Extended Graphic State or Image resource copy transparency group object from original page into sheet object and set I(solated) to true */ , IPL_etgCreateIsolated /*!< if no transparency group object exist a new will be created with I(solated) to true */ } IPL_ETrGroupAction; /* new in interface version, 2.05 */ typedef enum { IPL_ebmNormal /*!< no BlendMode will be set */ , IPL_ebmMultiply /*!< set BlendMode to "Multiply" */ , IPL_ebmScreen /*!< set BlendMode to "Screen" */ , IPL_ebmOverlay /*!< set BlendMode to "Overlay" */ , IPL_ebmDarken /*!< set BlendMode to "Darken" */ , IPL_ebmLighten /*!< set BlendMode to "Lighten" */ , IPL_ebmColorDodge /*!< set BlendMode to "ColorDodge" */ , IPL_ebmColorBurn /*!< set BlendMode to "ColorBurn" */ , IPL_ebmHardLight /*!< set BlendMode to "HardLight" */ , IPL_ebmSoftLight /*!< set BlendMode to "SoftLight" */ , IPL_ebmDifference /*!< set BlendMode to "Difference" */ , IPL_ebmExclusion /*!< set BlendMode to "Exclusion" */ , IPL_ebmLuminosity /*!< set BlendMode to "Luminosity" */ , IPL_ebmHue /*!< set BlendMode to "Hue" */ , IPL_ebmSaturation /*!< set BlendMode to "Saturation" */ , IPL_ebmColor /*!< set BlendMode to "Color" */ } IPL_EBlendModes; /*! The IPL_TTRANSPGROUP struct defines the behaviour of transparency group information from original page used in function IPL_PDFSheet_AddObject2. */ /* new in interface version, 2.05 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_ETrGroupAction isolated; /*!< transparency group action depends from enum value */ IPL_EBlendModes blendmode; /*!< a BlendMode to set a blending effect to whole pdf object */ } IPL_TTRANSPGROUP; /*-----------------------------------------------------------------------------*/ /*! The IPL_EExtGrState enum defines the mask bits for the struct items in IPL_TEXTGRSTATE.; used in IPL_PDFSheet_InsertPDFCode */ /* new in interface version, 1.8 */ typedef enum { IPL_eStrokeAdj = 0x00000001 /*!< The stroke adjustment value is valid. */ , IPL_eStrokeOPrint = 0x00000002 /*!< The overprint for stroke value is valid. */ , IPL_eFillOPrint = 0x00000004 /*!< The overprint for fill value is valid. */ , IPL_eOprintMode = 0x00000008 /*!< The overprint mode value is valid. */ , IPL_eSmoothness = 0x00000010 /*!< The Smoothness value is valid. */ , IPL_eLineWidth = 0x00000020 /*!< The line width value is valid. */ , IPL_eLineCap = 0x00000040 /*!< The line cap value is valid. */ , IPL_eLineJoin = 0x00000080 /*!< The line join value is valid. */ , IPL_eMiterLimit = 0x00000100 /*!< The miter limit value is valid. */ , IPL_eFlatness = 0x00000200 /*!< The flatness value is valid. */ } IPL_EExtGrState; /*! The IPL_TEXTGRSTATE struct defines the information for a additional extended graphic state obj. for PDF code; used in IPL_PDFSheet_InsertPDFCode */ /* new in interface version, 1.8 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_uint32_t mask; /*!< Specifying which attributes to set, must be a combination of values from IPL_EExtGrState enum. */ IPL_bool_t strokeadj; /*!< Stroke adjustment. */ IPL_bool_t strokeoprint; /*!< Overprint for stroke. */ IPL_bool_t filloprint; /*!< Overprint for fill. */ IPL_int32_t oprintmode; /*!< The overprint mode. */ IPL_float_t smoothness; /*!< Smoothness, */ IPL_float_t linewidth; /*!< The line width. */ IPL_int32_t linecap; /*!< The line cap. */ IPL_int32_t linejoin; /*!< The line join. */ IPL_float_t miterlimit; /*!< The miter limit. */ IPL_float_t flatness; /*!< The flatness. */ } IPL_TEXTGRSTATE; /*-----------------------------------------------------------------------------*/ /*! This enum defines the possible predefined encodings, used in the default fonts (base14 or japanese fonts). used in IPL_TPDFCODEFONT */ typedef enum { IPL_eStandard /*!< StandardEncoding */ , IPL_eMacRoman /*!< MacRomanEncoding */ , IPL_eMacExpert /*!< MacExpertEncoding */ , IPL_eWinAnsi /*!< andWinAnsiEncoding */ , IPL_ePDFDoc /*!< PDFDocEncoding */ , IPL_e83pv_RKSJ_H /*!< 83pv-RKSJ-H */ , IPL_e90ms_RKSJ_H /*!< 90ms-RKSJ-H */ , IPL_e90ms_RKSJ_V /*!< 90ms-RKSJ-V */ , IPL_e90msp_RKSJ_H /*!< 90msp-RKSJ-H */ , IPL_e90msp_RKSJ_V /*!< 90msp-RKSJ-V */ , IPL_e90pv_RKSJ_H /*!< 90pv-RKSJ-H */ , IPL_eAdd_RKSJ_H /*!< Add-RKSJ-H */ , IPL_eAdd_RKSJ_V /*!< Add-RKSJ-V */ , IPL_eEUC_H /*!< EUC-H */ , IPL_eEUC_V /*!< EUC-V */ , IPL_eExt_RKSJ_H /*!< Ext-RKSJ-H */ , IPL_eExt_RKSJ_V /*!< Ext-RKSJ-V */ , IPL_eH /*!< H */ , IPL_eV /*!< V */ , IPL_eUniJIS_UCS2_H /*!< UniJIS-UCS2-H */ , IPL_eUniJIS_UCS2_V /*!< UniJIS-UCS2-V */ , IPL_eUniJIS_UCS2_HW_H /*!< UniJIS-UCS2-HW-H */ , IPL_eUniJIS_UCS2_HW_V /*!< UniJIS-UCS2-HW-V */ , IPL_eIdentity_H /*!< Identity-H */ , IPL_eIdentity_V /*!< Identity-V */ } IPL_EFontEncoding; /*! This enum defines the possible font names, such as base14 or japanese fonts. used in IPL_TPDFCODEFONT */ typedef enum { IPL_eCourier /*!< Courier */ , IPL_eCourierBold /*!< Courier-Bold */ , IPL_eCourierBoldOblique /*!< Courier-BoldOblique */ , IPL_eCourierOblique /*!< Courier-Oblique */ , IPL_eHelvetica /*!< Helvetica */ , IPL_eHelveticaBold /*!< Helvetica-Bold */ , IPL_eHelveticaBoldOblique /*!< Helvetica-BoldOblique */ , IPL_eHelveticaOblique /*!< Helvetica-Oblique */ , IPL_eTimesRoman /*!< Times-Roman */ , IPL_eTimesBold /*!< Times-Bold */ , IPL_eTimesItalic /*!< Times-Italic */ , IPL_eTimesBoldItalic /*!< Times-BoldItalic */ , IPL_eSymbol /*!< Symbol */ , IPL_eZapfDingbats /*!< ZapfDingbats */ , IPL_eHeiseiMinW3Acro /*!< HeiseiMin-W3-Acro */ , IPL_eHeiseiKakuGoW5Acro /*!< HeiseiKakuGo-W5-Acro */ , IPL_eCustomFont /*!< a custom font is expected, i.e. all font settings already done in the pdf code */ } IPL_EFontName; /*! The IPL_TEXTGRSTATE struct defines the information for the font and his size used in PDF code; used in IPL_PDFSheet_InsertPDFCode */ /* new in interface version, 1.9 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_uint32_t fontsize; /*!< Contains the font size used in the pdf code. */ IPL_EFontName name; /*!< Contains the basefont name used in the pdf code. */ IPL_EFontEncoding encoding; /*!< (NOTE: ignored if name = eCustomFont) Contains the font encoding used in the pdf code. */ IPL_float_t cspacing; /*!< (NOTE: ignored if name = eCustomFont) It is the additional displacement between two characters. */ IPL_float_t wspacing; /*!< (NOTE: ignored if name = eCustomFont) It is the additional displacement between two words. */ } IPL_TPDFCODEFONT; /*-----------------------------------------------------------------------------*/ /* new in interface version, 1.10 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_TDRECT* searchbox; /*!< Contains the box size to find in contents stream as clipping path and eliminate. Only used if unequal to NULL. */ IPL_TDRECT* clipbox; /*!< Contains the new clipbox size or differences, see absolute. Only used if unequal to NULL. */ IPL_bool_t absolute; /*!< If this is true, then clipbox contains the new absolute size else it contains only signed differences. */ } IPL_TRECTIFYCLIPRECT; /*-----------------------------------------------------------------------------*/ /*! Type of the object enumeration callback function. The parameters for the callback function have the follwing semantics: \param objid pointer to an IPL_TOBJECTID structure, filled by the callback function. \param IPL_TOBJECTID.size size of structure in bytes; sizeof( IPL_TOBJECTID) \param IPL_TOBJECTID.pdffile is empty, must be ignored. \param IPL_TOBJECTID.pageidx is 0, must be ignored. \param IPL_TOBJECTID.userID INPUT: ID string provided by the user of the DLL; may be empty \param IPL_TOBJECTID.callasID OUTPUT: ID string created by the DLL \param data the long value as input when installing the callback function \return if the callback function return false, the process was stoped and the called function, e.g. "IPL_PDFSheet_EnumObjects", return 10032 (User has stoped process.), */ /* new in interface version, 1.11 */ typedef IPL_bool_t (*IPL_EnumObjectCB)( IPL_TOBJECTID* objid, void* data); /*-----------------------------------------------------------------------------*/ /* new in interface version, 2.2 */ typedef struct { IPL_int32_t size; /*!< contains size of this structur */ IPL_uint32_t pageindex; /*!< The current page counter started at zero and will be increased at one each time, this is not the page number. */ IPL_int32_t rotate; /*!< The number of degrees by which the page should be rotated clockwise when displayed or printed. The value must be a multiple of 90. This number can be negativ. */ IPL_uint32_t separationnum; /*!< The page number start at one and increased at one each time. If an /SeparationInfo dictionary is present in the page dictionary, all pages from this separation will have the same page number and follow immediately the first occur. */ IPL_utf8_char_t separation[IPL_MAX_LENGTH]; /*!< If an /SeparationInfo dictionary is present in the page dictionary, here will appear the separation color name, otherwise the string is empty. */ IPL_utf8_char_t pagelabel[IPL_MAX_LENGTH]; /*!< This string is the same as Acrobat show in the thumbnail view or in the status line about this page. Here we evaluate the /PageLabels in the document catalog objekt, if exist and create the string about this page. If no /PageLabels is avail the string is empty. */ IPL_TDRECT mediabox; /*!< The mediabox coordinates [llx lly urx upy]. */ IPL_TDRECT cropbox; /*!< The cropbox coordinates [llx lly urx upy]. */ IPL_bool_t inherited_cropbox; /*!< If this is true, then cropbox is inherited from mediabox. */ IPL_TDRECT trimbox; /*!< The trimbox coordinates [llx lly urx upy]. */ IPL_bool_t inherited_trimbox; /*!< If this is true, then trimbox is inherited from cropbox. */ IPL_TDRECT bleedbox; /*!< The bleedbox coordinates [llx lly urx upy]. */ IPL_bool_t inherited_bleedbox; /*!< If this is true, then bleedbox is inherited from cropbox. */ IPL_TDRECT artbox; /*!< The artbox coordinates [llx lly urx upy]. */ IPL_bool_t inherited_artbox; /*!< If this is true, then artbox is inherited from cropbox. */ IPL_TDPOINT origin; /*!< Two numbers in the form of "llx lly", they shown the origin of the page, these are the unrotated lower/left point from media box. */ } IPL_TENUMPAGEPROPERTY; /*-----------------------------------------------------------------------------*/ /*! Type of the object enumeration callback function. The parameters for the callback function have the follwing semantics: \param pageprop pointer to an IPL_TENUMPAGEPROPERTY structure, filled by the callback function. \param IPL_TENUMPAGEPROPERTY.size size of structure in bytes; sizeof( IPL_TENUMPAGEPROPERTY) \param IPL_TENUMPAGEPROPERTY.pageindex the current page counter started at zero and will be increased at one each time, this is not the page number. \param IPL_TENUMPAGEPROPERTY.rotate the number of degrees by which the page should be rotated clockwise when displayed or printed. The value must be a multiple of 90. This number can be negativ. \param IPL_TENUMPAGEPROPERTY.separationnum the page number start at one and increased at one each time. If an /SeparationInfo dictionary is present in the page dictionary, all pages from this separation will have the same page number and follow immediately the first occur. \param IPL_TENUMPAGEPROPERTY.separation if an /SeparationInfo dictionary is present in the page dictionary, here will appear the separation color name, otherwise the string is empty. \param IPL_TENUMPAGEPROPERTY.pagelabel this string is the same as Acrobat show in the thumbnail view or in the status line about this page. Here we evaluate the /PageLabels in the document catalog objekt, if exist and create the string about this page. If no /PageLabels is avail the string is empty. \param IPL_TENUMPAGEPROPERTY.mediabox the mediabox coordinates [llx lly urx upy]. \param IPL_TENUMPAGEPROPERTY.cropbox the cropbox coordinates [llx lly urx upy]. \param IPL_TENUMPAGEPROPERTY.inherited_cropbox if this is true, then cropbox is inherited from mediabox. \param IPL_TENUMPAGEPROPERTY.trimbox the trimbox coordinates [llx lly urx upy]. \param IPL_TENUMPAGEPROPERTY.inherited_trimbox if this is true, then trimbox is inherited from cropbox. \param IPL_TENUMPAGEPROPERTY.bleedbox the bleedbox coordinates [llx lly urx upy]. \param IPL_TENUMPAGEPROPERTY.inherited_bleedbox if this is true, then bleedbox is inherited from cropbox. \param IPL_TENUMPAGEPROPERTY.artbox the artbox coordinates [llx lly urx upy]. \param IPL_TENUMPAGEPROPERTY.inherited_artbox if this is true, then artbox is inherited from cropbox. \param IPL_TENUMPAGEPROPERTY.origin two numbers in the form of "llx lly", they shown the origin of the page, these are the unrotated lower/left point from media box. \param data the long value as input when installing the callback function \return if the callback function return false, the process will be stoped and the called function, e.g. "IPL_PDFDocument_EnumPageProperties", return 10032 (User has stoped process.), */ /* new in interface version, 2.2 */ typedef IPL_bool_t (*IPL_EnumPagePropertyCB)( IPL_TENUMPAGEPROPERTY* pageprop, void* data); /*-----------------------------------------------------------------------------*/ /*! PDFDoc is a synonym for an open PDF document */ /* new in interface version, 1.12 */ #ifdef CALS_PDFENGINE # include "PDFEngine/PDFEngineClasses.h" typedef CosDoc PDFDoc; #elif defined( CALS_ACROBAT) || defined( CALS_APDFL) # include "PDCalls.h" typedef PDDoc PDFDoc; #else /* all other */ typedef void* PDFDoc; #endif /* all other */ /*-----------------------------------------------------------------------------*/ /*! In the IPL_EClipBoxType enum the library define the clipbox type in the IPL_TIMPOSITIONSLOT struct */ /* new in interface version, 1.12 */ typedef enum { IPL_eUseExternal /*!< use a given external clipping box */ , IPL_eUseMediaBox /*!< use the page MediaBox for clipping */ , IPL_eUseCropBox /*!< use the page CropBox for clipping */ , IPL_eUseTrimBox /*!< use the page TrimBox for clipping */ , IPL_eUseBleedBox /*!< use the page BleedBox for clipping */ , IPL_eUseArtBox /*!< use the page ArtBox for clipping */ } IPL_EClipBoxType; /*-----------------------------------------------------------------------------*/ /*! The IPL_TIMPOSITIONSLOT struct defines the information for imposition with simple scripting. used in IPL_PDFDocument_ImposeFromFile */ /* new in interface version, 1.12 */ typedef struct { IPL_int32_t size; /*!< contains size of this structure */ IPL_int32_t sourcePageNum; /*!< page number from source document */ IPL_int32_t templateSheetNum; /*!< sheet number for imposed page */ IPL_EClipBoxType clipType; /*!< shows what box should be used for clipping */ IPL_TDRECT clippingRect; /*!< clipping rect for slot in sheet coordinates (used if cliptype == eUseExternal) */ IPL_TDMATRIX transformation; /*!< transformation matrix for page position, transforms the page mediabox to the sheets (template page) destination rect */ IPL_utf8_char_t callasID[IPL_MAX_LENGTH]; /*!< object ID string, use from callas to identify objects into sheet */ IPL_utf8_char_t userID[IPL_MAX_LENGTH]; /*!< object ID string, use from other dll user to identify objects into sheet */ } IPL_TIMPOSITIONSLOT; /*-----------------------------------------------------------------------------*/ /*! In the IPL_EClipBoxType enum the library define the clipbox type in the IPL_TIMPOSITIONSLOT struct
NOTE: The eXMLDocOverviewInfo and eXMLPageOverviewInfo info is only avail with a pdfInspektor2 libray, if the libray can not found the pdfInspektor2 libray a error will occur! */ /* new in interface version, 1.13 */ typedef enum { IPL_ePostScriptInfo /*!< the old info file will be create how function PDFDocument_ListContents2 do */ , IPL_eXMLDocOverviewInfo /*!< an xml document overview about all used resources will be create */ , IPL_eXMLPageOverviewInfo /*!< an xml page overview about all used resources will be create */ , IPL_ePostScriptInfo_1_4 /*!< how ePostScriptInfo, but with additional information about plates, new in interface version, 1.18 */ } IPL_EInfoFormat; /*-----------------------------------------------------------------------------*/ #endif /* _PDFIMPOSITIONTYPES_H */ /*-----------------------------------------------------------------------------*/ /*! \history ** AD-2002-12-04: insert history ** AD-2002-12-04: insert interface extension for version 1.12 ** AD-2002-12-09: the user and callas id should be in the TIMPOSITIONSLOT ** UF-2002-12-09: #elif defined(CALS_ACROBAT) ** AD-2003-07-25: PDFDocument_ListContents3 with report format parameter ** DO-2003-08-12: added newline at end ** UfF-2003-09-05: added enum EResourceHandling ** ADi-2003-09-11: change some comments ** ADi-2004-03-08: callas header are obsolete ** ADi-2005-01-13: enum EResourceHandling is obsolete now, use eCustomFont as font name instead ** ADi-2005-06-30: Version 1.15: new structure TPDFOBJECTCODE added to support user defined clipping ** ADi-2005-11-28: new member added in struct TCOLORMAPPER, new declaration from spot color callback function SPOTCOLORFUNCTION ** ADi-2007-03-29: rename header and rename struct PDFIMPOSITIONINFO and define error code in enum EImpLib_ErrorCodes ** ADi-2008-05-09: add new error code eImpLibErr_WrongObjCode and ePostScriptInfo_1_4 in enum EInfoFormat ** HTh-2008-09-17: changed name of includefile from PDCALLS.H to PDCalls.h ** HTh-2008-10.14: int32 already defined on AIX (by system headers) ** ADi-2008-11-21: rearrange pdfImposition library interface to version 2.0 ** ADi-2009-02-03: correct comments ** ADi-2009-11-18: CaBT 0003718: add new function IPL_PDFDocument_EnumPageProperties and types to support quick page information ** UFr-2009-12-15: Interface version 2.3 ** UFr-2009-12-15: CaBT 0004026: Allow specification of tintvalue for spot colors while rendering text ** HTh-2011-09-13: CaBT 0006008: 64bit cleanup (usage of 'long' where 'int' is more appropriate) ** HTh-2011-10-06: CaBT 0006008: 64bit cleanup (changed misleading comment) ** ADi-2012-08-13: CaBT 0007876: add enum IPL_ETrGroupAction and struct IPL_TTRANSPGROUP in V2.05 ** UFr-2014-04-16: CaBT 0009302: Improved error code/message if font could not be found during placing of text ** ADi-2017-01-27: CaBT 0012908: add enum IPL_EBlendModes, change struct IPL_TTRANSPGROUP and enum IPL_ETrGroupAction */