fpdf_pageobjects_r.h
Go to the documentation of this file.
1 
30 #ifndef _FSPDF_PAGEOBJECTS_R_H_
31 #define _FSPDF_PAGEOBJECTS_R_H_
32 
85 #ifdef __cplusplus
86 extern "C" {
87 #endif
88 
89 /*******************************************************************************/
90 /* Definitions for page objects */
91 /*******************************************************************************/
92 #ifndef _FSPDF_DEF_HANDLE_PAGEOBJECT_
93 #define _FSPDF_DEF_HANDLE_PAGEOBJECT_
94 
96 FSCRT_DEFINEHANDLE(FSPDF_PAGEOBJECT);
97 
98 #endif /* _FSPDF_DEF_HANDLE_PAGEOBJECT_ */
99 
100 #ifndef _FSPDF_DEF_HANDLE_PAGEOBJECTS_
101 #define _FSPDF_DEF_HANDLE_PAGEOBJECTS_
102 
104 FSCRT_DEFINEHANDLE(FSPDF_PAGEOBJECTS);
105 
106 #endif /* _FSPDF_DEF_HANDLE_PAGEOBJECTS_ */
107 
108 #ifndef _FSPDF_DEF_MACRO_PAGEOBJECT_
109 #define _FSPDF_DEF_MACRO_PAGEOBJECT_
110 
116 #define FSPDF_PAGEOBJECT_ALL 0
117 
118 #define FSPDF_PAGEOBJECT_TEXT 1
119 
120 #define FSPDF_PAGEOBJECT_PATH 2
121 
122 #define FSPDF_PAGEOBJECT_IMAGE 3
123 
124 #define FSPDF_PAGEOBJECT_SHADING 4
125 
126 #define FSPDF_PAGEOBJECT_FORMXOBJECT 5
127 
129 #endif /* _FSPDF_DEF_MACRO_PAGEOBJECT_ */
130 
131 #ifndef _FSPDF_DEF_MACRO_TEXTMODE_
132 #define _FSPDF_DEF_MACRO_TEXTMODE_
133 
139 #define FSPDF_TEXTMODE_FILL 0
140 
141 #define FSPDF_TEXTMODE_STROKE 1
142 
143 #define FSPDF_TEXTMODE_FILLSTROKE 2
144 
145 #define FSPDF_TEXTMODE_INVISIBLE 3
146 
147 #define FSPDF_TEXTMODE_FILLCLIP 4
148 
149 #define FSPDF_TEXTMODE_STROKECLIP 5
150 
151 #define FSPDF_TEXTMODE_FILLSTROKECLIP 6
152 
153 #define FSPDF_TEXTMODE_CLIP 7
154 
156 #endif /* _FSPDF_DEF_MACRO_TEXTMODE_ */
157 
158 #ifndef _FSPDF_DEF_MACRO_IMAGEOBJECTCS_
159 #define _FSPDF_DEF_MACRO_IMAGEOBJECTCS_
160 
165 #define FSPDF_IMAGECS_INVALID 0
166 
167 #define FSPDF_IMAGECS_DEVICEGRAY 1
168 
169 #define FSPDF_IMAGECS_DEVICERGB 2
170 
171 #define FSPDF_IMAGECS_DEVICECMYK 3
172 
173 #define FSPDF_IMAGECS_CALGRAY 4
174 
175 #define FSPDF_IMAGECS_CALRGB 5
176 
177 #define FSPDF_IMAGECS_LAB 6
178 
179 #define FSPDF_IMAGECS_SEPARATION 8
180 
181 #define FSPDF_IMAGECS_DEVICEN 9
182 
183 #define FSPDF_IMAGECS_PATTERN 11
184 
185 #define FSPDF_IMAGECS_ICCBASED_DEVICEGRAY 12
186 
187 #define FSPDF_IMAGECS_ICCBASED_DEVICERGB 13
188 
189 #define FSPDF_IMAGECS_ICCBASED_DEVICECMYK 14
190 
192 #endif /* _FSPDF_DEF_MACRO_IMAGEOBJECTCS_ */
193 
194 #ifndef _FSPDF_DEF_STRUCTURE_GRAPHSTATE_
195 #define _FSPDF_DEF_STRUCTURE_GRAPHSTATE_
196 
199 typedef struct _FSPDF_GRAPHSTATE
200 {
228  FS_FLOAT dashArray[16];
230 
231 #endif /* _FSPDF_DEF_STRUCTURE_GRAPHSTATE_ */
232 
233 #ifndef _FSPDF_DEF_STRUCTURE_TEXTSTATE_
234 #define _FSPDF_DEF_STRUCTURE_TEXTSTATE_
235 
239 typedef struct _FSPDF_TEXTSTATE
240 {
242  FSCRT_FONT font;
275  FS_FLOAT textMatrix[4];
279 
280 #endif /* _FSPDF_DEF_STRUCTURE_TEXTSTATE_ */
281 
282 /*******************************************************************************/
283 /* Page objects */
284 /*******************************************************************************/
313 FS_RESULT FSPDF_Page_GetPageObjects(FSCRT_PAGE page, FSPDF_PAGEOBJECTS* pageObjs);
314 
345 FS_RESULT FSPDF_PageObjects_CountObjects(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter, FS_INT32* count);
346 
380 FS_RESULT FSPDF_PageObjects_GetObject(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter, FS_INT32 index, FSPDF_PAGEOBJECT* pageObj);
381 
418 FS_RESULT FSPDF_PageObjects_EnumerateObject(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter, FSCRT_POSITION* position, FSPDF_PAGEOBJECT* pageObj);
419 
454 FS_RESULT FSPDF_PageObjects_GetObjectIndex(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FSPDF_PAGEOBJECT pageObj, FS_INT32 typeFilter, FS_INT32* index);
455 
491 FS_RESULT FSPDF_PageObjects_GetObjectAtPos(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter,
492  FS_FLOAT x, FS_FLOAT y, FS_FLOAT tolerance,
493  FSPDF_PAGEOBJECT *pageObj);
494 
529 FS_RESULT FSPDF_PageObjects_GetObjectListAtPos(FSCRT_PAGE page, FS_INT32 typeFilter, FS_FLOAT x, FS_FLOAT y, FS_FLOAT tolerance, FSCRT_ARRAY* pageObjList);
530 
531 /*******************************************************************************/
532 /* Page object */
533 /*******************************************************************************/
560 FS_RESULT FSPDF_PageObject_GetType(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32* type);
561 
587 FS_RESULT FSPDF_PageObject_GetRect(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_RECTF* rect);
588 
614 FS_RESULT FSPDF_PageObject_GetMatrix(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_MATRIX* matrix);
615 
640 FS_RESULT FSPDF_PageObject_GetGraphState(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSPDF_GRAPHSTATE* graphState);
641 
668 FS_RESULT FSPDF_PageObject_GetColor(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_BOOL isStroke, FS_ARGB* color);
669 
696 FS_RESULT FSPDF_PageObject_GetClipRect(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_RECTF* clipRect);
697 
727 FS_RESULT FSPDF_PageObject_HasTransparency(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_BOOL* hasTransparency);
728 
756 FS_RESULT FSPDF_PageObject_GetLayers(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_ARRAY* layerArray);
757 
758 /********************************************************************************/
759 /* Text object */
760 /********************************************************************************/
787 FS_RESULT FSPDF_TextObject_GetTextState(FSCRT_PAGE page, FSPDF_PAGEOBJECT textObj, FSPDF_TEXTSTATE* textState);
788 
821 FS_RESULT FSPDF_TextObject_GetUnicodeString(FSCRT_PAGE page, FSPDF_PAGEOBJECT textObj, FSCRT_BSTR* unicodeStr);
822 
823 /*******************************************************************************/
824 /* Path object */
825 /*******************************************************************************/
853 FS_RESULT FSPDF_PathObject_GetPathData(FSCRT_PAGE page, FSPDF_PAGEOBJECT pathObj, FSCRT_PATHDATA* pathData);
854 
881 FS_RESULT FSPDF_PathObject_GetFillMode(FSCRT_PAGE page, FSPDF_PAGEOBJECT pathObj, FS_INT32* fillMode);
882 
912 FS_RESULT FSPDF_PathObject_GetStrokeState(FSCRT_PAGE page, FSPDF_PAGEOBJECT pathObj, FS_BOOL* isStroke);
913 
914 /*******************************************************************************/
915 /* Image object */
916 /*******************************************************************************/
949 FS_RESULT FSPDF_ImageObject_CloneBitmap(FSCRT_PAGE page, FSPDF_PAGEOBJECT imageObj, FSCRT_BITMAP* bitmap);
950 
977 FS_RESULT FSPDF_ImageObject_GetColorSpace(FSCRT_PAGE page,FSPDF_PAGEOBJECT imageObj, FS_INT32* colorspace);
978 
1004 FS_RESULT FSPDF_ImageObject_GetStream(FSCRT_PAGE page,FSPDF_PAGEOBJECT imageObj, FSPDF_OBJECT* stream);
1005 
1006 /*******************************************************************************/
1007 /* Form XObject object */
1008 /*******************************************************************************/
1035 FS_RESULT FSPDF_FormXObject_GetObjects(FSCRT_PAGE page, FSPDF_PAGEOBJECT formXObj, FSPDF_PAGEOBJECTS* pageObjs);
1036 
1064 FS_RESULT FSPDF_FormXObject_GetStream(FSCRT_PAGE page,FSPDF_PAGEOBJECT formXObj, FSPDF_OBJECT* stream);
1065 
1093 FS_RESULT FSPDF_ShadingObject_GetShading(FSCRT_PAGE page, FSPDF_PAGEOBJECT shadingObj, FSPDF_OBJECT* shadingPDFObj);
1094 
1095 /*******************************************************************************/
1096 /* Clipping */
1097 /*******************************************************************************/
1123 FS_RESULT FSPDF_PageObject_CountClipPath(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32* count);
1124 
1156 FS_RESULT FSPDF_PageObject_GetClipPath(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32 index, FSCRT_PATHDATA* pathData, FS_INT32* fillMode);
1157 
1183 FS_RESULT FSPDF_PageObject_CountClipText(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32* count);
1184 
1213 FS_RESULT FSPDF_PageObject_GetClipText(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32 index, FSPDF_PAGEOBJECT* textObj);
1214 
1215 #ifdef __cplusplus
1216 };
1217 #endif
1218  /* group FPDFPAGEOBJECTS */
1220 
1221 #endif /* _FSPDF_PAGEOBJECTS_R_H_ */
FS_RESULT FSPDF_PageObjects_GetObject(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter, FS_INT32 index, FSPDF_PAGEOBJECT *pageObj)
Get a page object from page objects.
Structure for rectangle, in float.
Definition: fs_base_r.h:2078
FS_RESULT FSPDF_PageObject_GetRect(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_RECTF *rect)
Get rectangle of a page object.
float FS_FLOAT
32-bit floating-point number, single precision.
Definition: fs_base_r.h:148
FS_RESULT FSPDF_TextObject_GetTextState(FSCRT_PAGE page, FSPDF_PAGEOBJECT textObj, FSPDF_TEXTSTATE *textState)
Get text states of a text object.
FS_RESULT FSPDF_PageObjects_GetObjectListAtPos(FSCRT_PAGE page, FS_INT32 typeFilter, FS_FLOAT x, FS_FLOAT y, FS_FLOAT tolerance, FSCRT_ARRAY *pageObjList)
Get an array of all page objects at a specific point, in PDF page coordinate system.
FS_RESULT FSPDF_FormXObject_GetObjects(FSCRT_PAGE page, FSPDF_PAGEOBJECT formXObj, FSPDF_PAGEOBJECTS *pageObjs)
Get page objects from a Form XObject object.
FS_RESULT FSPDF_ImageObject_CloneBitmap(FSCRT_PAGE page, FSPDF_PAGEOBJECT imageObj, FSCRT_BITMAP *bitmap)
Clone a bitmap from an image object.
FS_RESULT FSPDF_PageObject_CountClipText(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32 *count)
Get count of text clip in a page object.
FS_INT32 lineJoin
Line join style.
Definition: fpdf_pageobjects_r.h:214
FS_RESULT FSPDF_PageObjects_GetObjectIndex(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FSPDF_PAGEOBJECT pageObj, FS_INT32 typeFilter, FS_INT32 *index)
Get index of a page object.
FS_FLOAT dashPhase
Dash phase for line dash pattern.
Definition: fpdf_pageobjects_r.h:224
FS_FLOAT lineWidth
Line width.
Definition: fpdf_pageobjects_r.h:208
FS_RESULT FSPDF_PageObject_GetMatrix(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_MATRIX *matrix)
Get matrix of a page object.
FS_INT32 textMode
Text mode.
Definition: fpdf_pageobjects_r.h:269
FS_RESULT FSPDF_PageObject_GetColor(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_BOOL isStroke, FS_ARGB *color)
Get color of a page object.
FS_RESULT FSPDF_PageObject_GetLayers(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_ARRAY *layerArray)
Get all the layers which associate with specific page object.
FSCRT_FONT font
Font object.
Definition: fpdf_pageobjects_r.h:242
FS_FLOAT wordSpace
Word spacing. It applies only to the space character, code 32.
Definition: fpdf_pageobjects_r.h:260
FS_FLOAT fontSize
Font size.
Definition: fpdf_pageobjects_r.h:244
FS_FLOAT charSpace
Character spacing.
Definition: fpdf_pageobjects_r.h:251
FS_RESULT FSPDF_Page_GetPageObjects(FSCRT_PAGE page, FSPDF_PAGEOBJECTS *pageObjs)
Get page objects in a PDF page.
FS_RESULT FSPDF_PageObject_GetClipRect(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSCRT_RECTF *clipRect)
Get clip rectangle of a page object .
Structure for PDF text states.
Definition: fpdf_pageobjects_r.h:239
int FS_INT32
32-bit signed integer.
Definition: fs_base_r.h:175
FS_RESULT FSPDF_PathObject_GetPathData(FSCRT_PAGE page, FSPDF_PAGEOBJECT pathObj, FSCRT_PATHDATA *pathData)
Get of path data of a path object .
FS_INT32 dashCount
Length of the dash array.
Definition: fpdf_pageobjects_r.h:226
FS_FLOAT y
Y-coordinate of origin in PDF "user space".
Definition: fpdf_pageobjects_r.h:273
FS_RESULT FSPDF_PageObjects_GetObjectAtPos(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter, FS_FLOAT x, FS_FLOAT y, FS_FLOAT tolerance, FSPDF_PAGEOBJECT *pageObj)
Get a page object at a specific point, in PDF page coordinate system.
FS_RESULT FSPDF_ShadingObject_GetShading(FSCRT_PAGE page, FSPDF_PAGEOBJECT shadingObj, FSPDF_OBJECT *shadingPDFObj)
Get the PDF shading dictionary or stream object of a shading page object.
FS_RESULT FSPDF_PageObject_GetGraphState(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FSPDF_GRAPHSTATE *graphState)
Get graph states of a page object .
FS_INT32 blendMode
Blend mode for transparent imaging model.
Definition: fpdf_pageobjects_r.h:206
FS_FLOAT miterLimit
The miter limit for line join.
Definition: fpdf_pageobjects_r.h:216
int FS_BOOL
Boolean type (This should be TRUE or FALSE).
Definition: fs_base_r.h:133
FS_RESULT FSPDF_ImageObject_GetStream(FSCRT_PAGE page, FSPDF_PAGEOBJECT imageObj, FSPDF_OBJECT *stream)
Get the image stream of an image object.
FS_RESULT FSPDF_PageObject_CountClipPath(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32 *count)
Get count of path clip in a page object.
FS_RESULT FSPDF_PageObjects_CountObjects(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter, FS_INT32 *count)
Get the count of page objects with specific type.
FS_INT32 lineCap
Line cap style.
Definition: fpdf_pageobjects_r.h:222
FS_RESULT FSPDF_PageObject_GetType(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32 *type)
Get type of a page object.
FS_RESULT FSPDF_PageObject_GetClipText(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32 index, FSPDF_PAGEOBJECT *textObj)
Get a text clip from a page object.
Structure for PDF graph states.
Definition: fpdf_pageobjects_r.h:199
unsigned int FS_ARGB
ARGB color type, 32 bits, ((b) | ((g) << 8) | ((r) << 16)) | ((a) << 24)
Definition: fs_base_r.h:145
Structure for 2D matrix.
Definition: fs_base_r.h:2130
FS_FLOAT x
X-coordinate of origin in PDF "user space".
Definition: fpdf_pageobjects_r.h:271
FS_FLOAT textLeading
Text leading. Not support yet, and it should be 0.
Definition: fpdf_pageobjects_r.h:277
Structure for byte string.
Definition: fs_base_r.h:611
FS_RESULT FSPDF_TextObject_GetUnicodeString(FSCRT_PAGE page, FSPDF_PAGEOBJECT textObj, FSCRT_BSTR *unicodeStr)
Get unicode string of a text object.
Structure for array.
Definition: fs_base_r.h:813
FS_RESULT FSPDF_PathObject_GetStrokeState(FSCRT_PAGE page, FSPDF_PAGEOBJECT pathObj, FS_BOOL *isStroke)
Get stroke state of a path object.
FS_RESULT FSPDF_PathObject_GetFillMode(FSCRT_PAGE page, FSPDF_PAGEOBJECT pathObj, FS_INT32 *fillMode)
Get fill mode of a path object.
FS_RESULT FSPDF_PageObject_GetClipPath(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_INT32 index, FSCRT_PATHDATA *pathData, FS_INT32 *fillMode)
Get a path clip from a page object.
FS_RESULT FSPDF_ImageObject_GetColorSpace(FSCRT_PAGE page, FSPDF_PAGEOBJECT imageObj, FS_INT32 *colorspace)
Get the color space for an image object.
FS_RESULT FSPDF_PageObjects_EnumerateObject(FSCRT_PAGE page, FSPDF_PAGEOBJECTS pageObjs, FS_INT32 typeFilter, FSCRT_POSITION *position, FSPDF_PAGEOBJECT *pageObj)
Enumerate page objects and retrieve a page object at a given position from page objects.
int FS_RESULT
Result code for functions in Foxit PDF SDK.
Definition: fs_base_r.h:160
FS_RESULT FSPDF_FormXObject_GetStream(FSCRT_PAGE page, FSPDF_PAGEOBJECT formXObj, FSPDF_OBJECT *stream)
Get the stream of a form XObject.
FS_RESULT FSPDF_PageObject_HasTransparency(FSCRT_PAGE page, FSPDF_PAGEOBJECT pageObj, FS_BOOL *hasTransparency)
Check whether a page object has transparency.

Foxit Corporation