/* * << Haru Free PDF Library 2.0.3 >> -- hpdf_types.h * * URL http://libharu.sourceforge.net/ * * Copyright (c) 1999-2006 Takeshi Kanno * * Permission to use, copy, modify, distribute and sell this software * and its documentation for any purpose is hereby granted without fee, * provided that the above copyright notice appear in all copies and * that both that copyright notice and this permission notice appear * in supporting documentation. * It is provided "as is" without express or implied warranty. * */ #ifndef _HPDF_TYPES_H #define _HPDF_TYPES_H #ifndef HPDF_STDCALL #ifdef HPDF_DLL_MAKE #define HPDF_STDCALL __stdcall #else #ifdef HPDF_DLL #define HPDF_STDCALL __stdcall #else #define HPDF_STDCALL #endif #endif #endif #include #ifdef __cplusplus extern "C" { #endif /*----------------------------------------------------------------------------*/ /*----- type definition ------------------------------------------------------*/ /* native OS integer types */ typedef signed int HPDF_INT; typedef unsigned int HPDF_UINT; /* 32bit integer types */ typedef signed int HPDF_INT32; typedef unsigned int HPDF_UINT32; /* 16bit integer types */ typedef signed short HPDF_INT16; typedef unsigned short HPDF_UINT16; /* 8bit integer types */ typedef signed char HPDF_INT8; typedef unsigned char HPDF_UINT8; /* 8bit binary types */ typedef unsigned char HPDF_BYTE; /* float type (32bit IEEE754) */ typedef float HPDF_REAL; /* double type (64bit IEEE754) */ typedef double HPDF_DOUBLE; /* boolean type (0: False, !0: True) */ typedef signed int HPDF_BOOL; /* error-no type (32bit unsigned integer) */ typedef unsigned long HPDF_STATUS; /* charactor-code type (16bit) */ typedef HPDF_UINT16 HPDF_CID; typedef HPDF_UINT16 HPDF_UNICODE; /* HPDF_Point struct */ typedef struct _HPDF_Point { HPDF_REAL x; HPDF_REAL y; } HPDF_Point; typedef struct _HPDF_Rect { HPDF_REAL left; HPDF_REAL bottom; HPDF_REAL right; HPDF_REAL top; } HPDF_Rect; typedef struct _HPDF_Rect HPDF_Box; /* HPDF_Date struct */ typedef struct _HPDF_Date { HPDF_INT year; HPDF_INT month; HPDF_INT day; HPDF_INT hour; HPDF_INT minutes; HPDF_INT seconds; char ind; HPDF_INT off_hour; HPDF_INT off_minutes; } HPDF_Date; typedef enum _HPDF_InfoType { /* date-time type parameters */ HPDF_INFO_CREATION_DATE = 0, HPDF_INFO_MOD_DATE, /* string type parameters */ HPDF_INFO_AUTHOR, HPDF_INFO_CREATOR, HPDF_INFO_PRODUCER, HPDF_INFO_TITLE, HPDF_INFO_SUBJECT, HPDF_INFO_KEYWORDS, HPDF_INFO_EOF } HPDF_InfoType; typedef enum _HPDF_PdfVer { HPDF_VER_12 = 0, HPDF_VER_13, HPDF_VER_14, HPDF_VER_15, HPDF_VER_16, HPDF_VER_EOF } HPDF_PDFVer; typedef enum _HPDF_EncryptMode { HPDF_ENCRYPT_R2 = 2, HPDF_ENCRYPT_R3 = 3 } HPDF_EncryptMode; typedef void (HPDF_STDCALL *HPDF_Error_Handler) (HPDF_STATUS error_no, HPDF_STATUS detail_no, void *user_data); typedef void* (HPDF_STDCALL *HPDF_Alloc_Func) (HPDF_UINT size); typedef void (HPDF_STDCALL *HPDF_Free_Func) (void *aptr); /*---------------------------------------------------------------------------*/ /*------ text width struct --------------------------------------------------*/ typedef struct _HPDF_TextWidth { HPDF_UINT numchars; /* don't use this value (it may be change in the feature). use numspace as alternated. */ HPDF_UINT numwords; HPDF_UINT width; HPDF_UINT numspace; } HPDF_TextWidth; /*---------------------------------------------------------------------------*/ /*------ dash mode ----------------------------------------------------------*/ typedef struct _HPDF_DashMode { HPDF_UINT16 ptn[8]; HPDF_UINT num_ptn; HPDF_UINT phase; } HPDF_DashMode; /*---------------------------------------------------------------------------*/ /*----- HPDF_TransMatrix struct ---------------------------------------------*/ typedef struct _HPDF_TransMatrix { HPDF_REAL a; HPDF_REAL b; HPDF_REAL c; HPDF_REAL d; HPDF_REAL x; HPDF_REAL y; } HPDF_TransMatrix; /*---------------------------------------------------------------------------*/ typedef enum _HPDF_ColorSpace { HPDF_CS_DEVICE_GRAY = 0, HPDF_CS_DEVICE_RGB, HPDF_CS_DEVICE_CMYK, HPDF_CS_CAL_GRAY, HPDF_CS_CAL_RGB, HPDF_CS_LAB, HPDF_CS_ICC_BASED, HPDF_CS_SEPARATION, HPDF_CS_DEVICE_N, HPDF_CS_INDEXED, HPDF_CS_PATTERN, HPDF_CS_EOF } HPDF_ColorSpace; /*---------------------------------------------------------------------------*/ /*----- HPDF_RGBColor struct ------------------------------------------------*/ typedef struct _HPDF_RGBColor { HPDF_REAL r; HPDF_REAL g; HPDF_REAL b; } HPDF_RGBColor; /*---------------------------------------------------------------------------*/ /*----- HPDF_CMYKColor struct -----------------------------------------------*/ typedef struct _HPDF_CMYKColor { HPDF_REAL c; HPDF_REAL m; HPDF_REAL y; HPDF_REAL k; } HPDF_CMYKColor; /*---------------------------------------------------------------------------*/ /*------ The line cap style -------------------------------------------------*/ typedef enum _HPDF_LineCap { HPDF_BUTT_END = 0, HPDF_ROUND_END, HPDF_PROJECTING_SCUARE_END, HPDF_LINECAP_EOF } HPDF_LineCap; /*----------------------------------------------------------------------------*/ /*------ The line join style -------------------------------------------------*/ typedef enum _HPDF_LineJoin { HPDF_MITER_JOIN = 0, HPDF_ROUND_JOIN, HPDF_BEVEL_JOIN, HPDF_LINEJOIN_EOF } HPDF_LineJoin; /*----------------------------------------------------------------------------*/ /*------ The text rendering mode ---------------------------------------------*/ typedef enum _HPDF_TextRenderingMode { HPDF_FILL = 0, HPDF_STROKE, HPDF_FILL_THEN_STROKE, HPDF_INVISIBLE, HPDF_FILL_CLIPPING, HPDF_STROKE_CLIPPING, HPDF_FILL_STROKE_CLIPPING, HPDF_CLIPPING, HPDF_RENDERING_MODE_EOF } HPDF_TextRenderingMode; typedef enum _HPDF_WritingMode { HPDF_WMODE_HORIZONTAL = 0, HPDF_WMODE_VERTICAL, HPDF_WMODE_EOF } HPDF_WritingMode; typedef enum _HPDF_PageLayout { HPDF_PAGE_LAYOUT_SINGLE = 0, HPDF_PAGE_LAYOUT_ONE_COLUMN, HPDF_PAGE_LAYOUT_TWO_COLUMN_LEFT, HPDF_PAGE_LAYOUT_TWO_COLUMN_RIGHT, HPDF_PAGE_LAYOUT_EOF } HPDF_PageLayout; typedef enum _HPDF_PageMode { HPDF_PAGE_MODE_USE_NONE = 0, HPDF_PAGE_MODE_USE_OUTLINE, HPDF_PAGE_MODE_USE_THUMBS, HPDF_PAGE_MODE_FULL_SCREEN, /* HPDF_PAGE_MODE_USE_OC, HPDF_PAGE_MODE_USE_ATTACHMENTS, */ HPDF_PAGE_MODE_EOF } HPDF_PageMode; typedef enum _HPDF_PageNumStyle { HPDF_PAGE_NUM_STYLE_DECIMAL = 0, HPDF_PAGE_NUM_STYLE_UPPER_ROMAN, HPDF_PAGE_NUM_STYLE_LOWER_ROMAN, HPDF_PAGE_NUM_STYLE_UPPER_LETTERS, HPDF_PAGE_NUM_STYLE_LOWER_LETTERS, HPDF_PAGE_NUM_STYLE_EOF } HPDF_PageNumStyle; typedef enum _HPDF_DestinationType { HPDF_XYZ = 0, HPDF_FIT, HPDF_FIT_H, HPDF_FIT_V, HPDF_FIT_R, HPDF_FIT_B, HPDF_FIT_BH, HPDF_FIT_BV, HPDF_DST_EOF } HPDF_DestinationType; typedef enum _HPDF_AnnotType { HPDF_ANNOT_TEXT_NOTES, HPDF_ANNOT_LINK, HPDF_ANNOT_SOUND, HPDF_ANNOT_FREE_TEXT, HPDF_ANNOT_STAMP, HPDF_ANNOT_SQUARE, HPDF_ANNOT_CIRCLE, HPDF_ANNOT_STRIKE_OUT, HPDF_ANNOT_HIGHTLIGHT, HPDF_ANNOT_UNDERLINE, HPDF_ANNOT_INK, HPDF_ANNOT_FILE_ATTACHMENT, HPDF_ANNOT_POPUP } HPDF_AnnotType; typedef enum _HPDF_AnnotFlgs { HPDF_ANNOT_INVISIBLE, HPDF_ANNOT_HIDDEN, HPDF_ANNOT_PRINT, HPDF_ANNOT_NOZOOM, HPDF_ANNOT_NOROTATE, HPDF_ANNOT_NOVIEW, HPDF_ANNOT_READONLY } HPDF_AnnotFlgs; typedef enum _HPDF_AnnotHighlightMode { HPDF_ANNOT_NO_HIGHTLIGHT = 0, HPDF_ANNOT_INVERT_BOX, HPDF_ANNOT_INVERT_BORDER, HPDF_ANNOT_DOWN_APPEARANCE, HPDF_ANNOT_HIGHTLIGHT_MODE_EOF } HPDF_AnnotHighlightMode; typedef enum _HPDF_AnnotIcon { HPDF_ANNOT_ICON_COMMENT = 0, HPDF_ANNOT_ICON_KEY, HPDF_ANNOT_ICON_NOTE, HPDF_ANNOT_ICON_HELP, HPDF_ANNOT_ICON_NEW_PARAGRAPH, HPDF_ANNOT_ICON_PARAGRAPH, HPDF_ANNOT_ICON_INSERT, HPDF_ANNOT_ICON_EOF } HPDF_AnnotIcon; /*----------------------------------------------------------------------------*/ /*------ border stype --------------------------------------------------------*/ typedef enum _HPDF_BSSubtype { HPDF_BS_SOLID, HPDF_BS_DASHED, HPDF_BS_BEVELED, HPDF_BS_INSET, HPDF_BS_UNDERLINED } HPDF_BSSubtype; /*----- blend modes ----------------------------------------------------------*/ typedef enum _HPDF_BlendMode { HPDF_BM_NORMAL, HPDF_BM_MULTIPLY, HPDF_BM_SCREEN, HPDF_BM_OVERLAY, HPDF_BM_DARKEN, HPDF_BM_LIGHTEN, HPDF_BM_COLOR_DODGE, HPDF_BM_COLOR_BUM, HPDF_BM_HARD_LIGHT, HPDF_BM_SOFT_LIGHT, HPDF_BM_DIFFERENCE, HPDF_BM_EXCLUSHON, HPDF_BM_EOF } HPDF_BlendMode; /*----- slide show -----------------------------------------------------------*/ typedef enum _HPDF_TransitionStyle { HPDF_TS_WIPE_RIGHT = 0, HPDF_TS_WIPE_UP, HPDF_TS_WIPE_LEFT, HPDF_TS_WIPE_DOWN, HPDF_TS_BARN_DOORS_HORIZONTAL_OUT, HPDF_TS_BARN_DOORS_HORIZONTAL_IN, HPDF_TS_BARN_DOORS_VERTICAL_OUT, HPDF_TS_BARN_DOORS_VERTICAL_IN, HPDF_TS_BOX_OUT, HPDF_TS_BOX_IN, HPDF_TS_BLINDS_HORIZONTAL, HPDF_TS_BLINDS_VERTICAL, HPDF_TS_DISSOLVE, HPDF_TS_GLITTER_RIGHT, HPDF_TS_GLITTER_DOWN, HPDF_TS_GLITTER_TOP_LEFT_TO_BOTTOM_RIGHT, HPDF_TS_REPLACE, HPDF_TS_EOF } HPDF_TransitionStyle; /*----------------------------------------------------------------------------*/ typedef enum _HPDF_PageSizes { HPDF_PAGE_SIZE_LETTER = 0, HPDF_PAGE_SIZE_LEGAL, HPDF_PAGE_SIZE_A3, HPDF_PAGE_SIZE_A4, HPDF_PAGE_SIZE_A5, HPDF_PAGE_SIZE_B4, HPDF_PAGE_SIZE_B5, HPDF_PAGE_SIZE_EXECUTIVE, HPDF_PAGE_SIZE_US4x6, HPDF_PAGE_SIZE_US4x8, HPDF_PAGE_SIZE_US5x7, HPDF_PAGE_SIZE_COMM10, HPDF_PAGE_SIZE_EOF } HPDF_PageSizes; typedef enum _HPDF_PageDirection { HPDF_PAGE_PORTRAIT = 0, HPDF_PAGE_LANDSCAPE } HPDF_PageDirection; typedef enum _HPDF_EncoderType { HPDF_ENCODER_TYPE_SINGLE_BYTE, HPDF_ENCODER_TYPE_DOUBLE_BYTE, HPDF_ENCODER_TYPE_UNINITIALIZED, HPDF_ENCODER_UNKNOWN } HPDF_EncoderType; typedef enum _HPDF_ByteType { HPDF_BYTE_TYPE_SINGLE = 0, HPDF_BYTE_TYPE_LEAD, HPDF_BYTE_TYPE_TRIAL, HPDF_BYTE_TYPE_UNKNOWN } HPDF_ByteType; typedef enum _HPDF_TextAlignment { HPDF_TALIGN_LEFT = 0, HPDF_TALIGN_RIGHT, HPDF_TALIGN_CENTER, HPDF_TALIGN_JUSTIFY } HPDF_TextAlignment; #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* _HPDF_TYPES_H */