1*3ac0a46fSAndroid Build Coastguard Worker // Copyright 2014 The PDFium Authors 2*3ac0a46fSAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*3ac0a46fSAndroid Build Coastguard Worker // found in the LICENSE file. 4*3ac0a46fSAndroid Build Coastguard Worker 5*3ac0a46fSAndroid Build Coastguard Worker // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6*3ac0a46fSAndroid Build Coastguard Worker 7*3ac0a46fSAndroid Build Coastguard Worker #ifndef PUBLIC_FPDF_EDIT_H_ 8*3ac0a46fSAndroid Build Coastguard Worker #define PUBLIC_FPDF_EDIT_H_ 9*3ac0a46fSAndroid Build Coastguard Worker 10*3ac0a46fSAndroid Build Coastguard Worker #include <stdint.h> 11*3ac0a46fSAndroid Build Coastguard Worker 12*3ac0a46fSAndroid Build Coastguard Worker // NOLINTNEXTLINE(build/include) 13*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfview.h" 14*3ac0a46fSAndroid Build Coastguard Worker 15*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_ARGB(a, r, g, b) \ 16*3ac0a46fSAndroid Build Coastguard Worker ((uint32_t)(((uint32_t)(b)&0xff) | (((uint32_t)(g)&0xff) << 8) | \ 17*3ac0a46fSAndroid Build Coastguard Worker (((uint32_t)(r)&0xff) << 16) | (((uint32_t)(a)&0xff) << 24))) 18*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_GetBValue(argb) ((uint8_t)(argb)) 19*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_GetGValue(argb) ((uint8_t)(((uint16_t)(argb)) >> 8)) 20*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_GetRValue(argb) ((uint8_t)((argb) >> 16)) 21*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_GetAValue(argb) ((uint8_t)((argb) >> 24)) 22*3ac0a46fSAndroid Build Coastguard Worker 23*3ac0a46fSAndroid Build Coastguard Worker // Refer to PDF Reference version 1.7 table 4.12 for all color space families. 24*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_UNKNOWN 0 25*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_DEVICEGRAY 1 26*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_DEVICERGB 2 27*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_DEVICECMYK 3 28*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_CALGRAY 4 29*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_CALRGB 5 30*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_LAB 6 31*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_ICCBASED 7 32*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_SEPARATION 8 33*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_DEVICEN 9 34*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_INDEXED 10 35*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_COLORSPACE_PATTERN 11 36*3ac0a46fSAndroid Build Coastguard Worker 37*3ac0a46fSAndroid Build Coastguard Worker // The page object constants. 38*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PAGEOBJ_UNKNOWN 0 39*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PAGEOBJ_TEXT 1 40*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PAGEOBJ_PATH 2 41*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PAGEOBJ_IMAGE 3 42*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PAGEOBJ_SHADING 4 43*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PAGEOBJ_FORM 5 44*3ac0a46fSAndroid Build Coastguard Worker 45*3ac0a46fSAndroid Build Coastguard Worker // The path segment constants. 46*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_SEGMENT_UNKNOWN -1 47*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_SEGMENT_LINETO 0 48*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_SEGMENT_BEZIERTO 1 49*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_SEGMENT_MOVETO 2 50*3ac0a46fSAndroid Build Coastguard Worker 51*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_FILLMODE_NONE 0 52*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_FILLMODE_ALTERNATE 1 53*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_FILLMODE_WINDING 2 54*3ac0a46fSAndroid Build Coastguard Worker 55*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_FONT_TYPE1 1 56*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_FONT_TRUETYPE 2 57*3ac0a46fSAndroid Build Coastguard Worker 58*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_LINECAP_BUTT 0 59*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_LINECAP_ROUND 1 60*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_LINECAP_PROJECTING_SQUARE 2 61*3ac0a46fSAndroid Build Coastguard Worker 62*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_LINEJOIN_MITER 0 63*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_LINEJOIN_ROUND 1 64*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_LINEJOIN_BEVEL 2 65*3ac0a46fSAndroid Build Coastguard Worker 66*3ac0a46fSAndroid Build Coastguard Worker // See FPDF_SetPrintMode() for descriptions. 67*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_EMF 0 68*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_TEXTONLY 1 69*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_POSTSCRIPT2 2 70*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_POSTSCRIPT3 3 71*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_POSTSCRIPT2_PASSTHROUGH 4 72*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_POSTSCRIPT3_PASSTHROUGH 5 73*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_EMF_IMAGE_MASKS 6 74*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_POSTSCRIPT3_TYPE42 7 75*3ac0a46fSAndroid Build Coastguard Worker #define FPDF_PRINTMODE_POSTSCRIPT3_TYPE42_PASSTHROUGH 8 76*3ac0a46fSAndroid Build Coastguard Worker 77*3ac0a46fSAndroid Build Coastguard Worker typedef struct FPDF_IMAGEOBJ_METADATA { 78*3ac0a46fSAndroid Build Coastguard Worker // The image width in pixels. 79*3ac0a46fSAndroid Build Coastguard Worker unsigned int width; 80*3ac0a46fSAndroid Build Coastguard Worker // The image height in pixels. 81*3ac0a46fSAndroid Build Coastguard Worker unsigned int height; 82*3ac0a46fSAndroid Build Coastguard Worker // The image's horizontal pixel-per-inch. 83*3ac0a46fSAndroid Build Coastguard Worker float horizontal_dpi; 84*3ac0a46fSAndroid Build Coastguard Worker // The image's vertical pixel-per-inch. 85*3ac0a46fSAndroid Build Coastguard Worker float vertical_dpi; 86*3ac0a46fSAndroid Build Coastguard Worker // The number of bits used to represent each pixel. 87*3ac0a46fSAndroid Build Coastguard Worker unsigned int bits_per_pixel; 88*3ac0a46fSAndroid Build Coastguard Worker // The image's colorspace. See above for the list of FPDF_COLORSPACE_*. 89*3ac0a46fSAndroid Build Coastguard Worker int colorspace; 90*3ac0a46fSAndroid Build Coastguard Worker // The image's marked content ID. Useful for pairing with associated alt-text. 91*3ac0a46fSAndroid Build Coastguard Worker // A value of -1 indicates no ID. 92*3ac0a46fSAndroid Build Coastguard Worker int marked_content_id; 93*3ac0a46fSAndroid Build Coastguard Worker } FPDF_IMAGEOBJ_METADATA; 94*3ac0a46fSAndroid Build Coastguard Worker 95*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 96*3ac0a46fSAndroid Build Coastguard Worker extern "C" { 97*3ac0a46fSAndroid Build Coastguard Worker #endif // __cplusplus 98*3ac0a46fSAndroid Build Coastguard Worker 99*3ac0a46fSAndroid Build Coastguard Worker // Create a new PDF document. 100*3ac0a46fSAndroid Build Coastguard Worker // 101*3ac0a46fSAndroid Build Coastguard Worker // Returns a handle to a new document, or NULL on failure. 102*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_DOCUMENT FPDF_CALLCONV FPDF_CreateNewDocument(); 103*3ac0a46fSAndroid Build Coastguard Worker 104*3ac0a46fSAndroid Build Coastguard Worker // Create a new PDF page. 105*3ac0a46fSAndroid Build Coastguard Worker // 106*3ac0a46fSAndroid Build Coastguard Worker // document - handle to document. 107*3ac0a46fSAndroid Build Coastguard Worker // page_index - suggested 0-based index of the page to create. If it is larger 108*3ac0a46fSAndroid Build Coastguard Worker // than document's current last index(L), the created page index 109*3ac0a46fSAndroid Build Coastguard Worker // is the next available index -- L+1. 110*3ac0a46fSAndroid Build Coastguard Worker // width - the page width in points. 111*3ac0a46fSAndroid Build Coastguard Worker // height - the page height in points. 112*3ac0a46fSAndroid Build Coastguard Worker // 113*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the new page or NULL on failure. 114*3ac0a46fSAndroid Build Coastguard Worker // 115*3ac0a46fSAndroid Build Coastguard Worker // The page should be closed with FPDF_ClosePage() when finished as 116*3ac0a46fSAndroid Build Coastguard Worker // with any other page in the document. 117*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGE FPDF_CALLCONV FPDFPage_New(FPDF_DOCUMENT document, 118*3ac0a46fSAndroid Build Coastguard Worker int page_index, 119*3ac0a46fSAndroid Build Coastguard Worker double width, 120*3ac0a46fSAndroid Build Coastguard Worker double height); 121*3ac0a46fSAndroid Build Coastguard Worker 122*3ac0a46fSAndroid Build Coastguard Worker // Delete the page at |page_index|. 123*3ac0a46fSAndroid Build Coastguard Worker // 124*3ac0a46fSAndroid Build Coastguard Worker // document - handle to document. 125*3ac0a46fSAndroid Build Coastguard Worker // page_index - the index of the page to delete. 126*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FPDFPage_Delete(FPDF_DOCUMENT document, 127*3ac0a46fSAndroid Build Coastguard Worker int page_index); 128*3ac0a46fSAndroid Build Coastguard Worker 129*3ac0a46fSAndroid Build Coastguard Worker // Get the rotation of |page|. 130*3ac0a46fSAndroid Build Coastguard Worker // 131*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page 132*3ac0a46fSAndroid Build Coastguard Worker // 133*3ac0a46fSAndroid Build Coastguard Worker // Returns one of the following indicating the page rotation: 134*3ac0a46fSAndroid Build Coastguard Worker // 0 - No rotation. 135*3ac0a46fSAndroid Build Coastguard Worker // 1 - Rotated 90 degrees clockwise. 136*3ac0a46fSAndroid Build Coastguard Worker // 2 - Rotated 180 degrees clockwise. 137*3ac0a46fSAndroid Build Coastguard Worker // 3 - Rotated 270 degrees clockwise. 138*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFPage_GetRotation(FPDF_PAGE page); 139*3ac0a46fSAndroid Build Coastguard Worker 140*3ac0a46fSAndroid Build Coastguard Worker // Set rotation for |page|. 141*3ac0a46fSAndroid Build Coastguard Worker // 142*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 143*3ac0a46fSAndroid Build Coastguard Worker // rotate - the rotation value, one of: 144*3ac0a46fSAndroid Build Coastguard Worker // 0 - No rotation. 145*3ac0a46fSAndroid Build Coastguard Worker // 1 - Rotated 90 degrees clockwise. 146*3ac0a46fSAndroid Build Coastguard Worker // 2 - Rotated 180 degrees clockwise. 147*3ac0a46fSAndroid Build Coastguard Worker // 3 - Rotated 270 degrees clockwise. 148*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FPDFPage_SetRotation(FPDF_PAGE page, int rotate); 149*3ac0a46fSAndroid Build Coastguard Worker 150*3ac0a46fSAndroid Build Coastguard Worker // Insert |page_obj| into |page|. 151*3ac0a46fSAndroid Build Coastguard Worker // 152*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page 153*3ac0a46fSAndroid Build Coastguard Worker // page_obj - handle to a page object. The |page_obj| will be automatically 154*3ac0a46fSAndroid Build Coastguard Worker // freed. 155*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FPDFPage_InsertObject(FPDF_PAGE page, 156*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT page_obj); 157*3ac0a46fSAndroid Build Coastguard Worker 158*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 159*3ac0a46fSAndroid Build Coastguard Worker // Remove |page_obj| from |page|. 160*3ac0a46fSAndroid Build Coastguard Worker // 161*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page 162*3ac0a46fSAndroid Build Coastguard Worker // page_obj - handle to a page object to be removed. 163*3ac0a46fSAndroid Build Coastguard Worker // 164*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 165*3ac0a46fSAndroid Build Coastguard Worker // 166*3ac0a46fSAndroid Build Coastguard Worker // Ownership is transferred to the caller. Call FPDFPageObj_Destroy() to free 167*3ac0a46fSAndroid Build Coastguard Worker // it. 168*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 169*3ac0a46fSAndroid Build Coastguard Worker FPDFPage_RemoveObject(FPDF_PAGE page, FPDF_PAGEOBJECT page_obj); 170*3ac0a46fSAndroid Build Coastguard Worker 171*3ac0a46fSAndroid Build Coastguard Worker // Get number of page objects inside |page|. 172*3ac0a46fSAndroid Build Coastguard Worker // 173*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 174*3ac0a46fSAndroid Build Coastguard Worker // 175*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of objects in |page|. 176*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFPage_CountObjects(FPDF_PAGE page); 177*3ac0a46fSAndroid Build Coastguard Worker 178*3ac0a46fSAndroid Build Coastguard Worker // Get object in |page| at |index|. 179*3ac0a46fSAndroid Build Coastguard Worker // 180*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 181*3ac0a46fSAndroid Build Coastguard Worker // index - the index of a page object. 182*3ac0a46fSAndroid Build Coastguard Worker // 183*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the page object, or NULL on failed. 184*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPage_GetObject(FPDF_PAGE page, 185*3ac0a46fSAndroid Build Coastguard Worker int index); 186*3ac0a46fSAndroid Build Coastguard Worker 187*3ac0a46fSAndroid Build Coastguard Worker // Checks if |page| contains transparency. 188*3ac0a46fSAndroid Build Coastguard Worker // 189*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 190*3ac0a46fSAndroid Build Coastguard Worker // 191*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if |page| contains transparency. 192*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_HasTransparency(FPDF_PAGE page); 193*3ac0a46fSAndroid Build Coastguard Worker 194*3ac0a46fSAndroid Build Coastguard Worker // Generate the content of |page|. 195*3ac0a46fSAndroid Build Coastguard Worker // 196*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 197*3ac0a46fSAndroid Build Coastguard Worker // 198*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 199*3ac0a46fSAndroid Build Coastguard Worker // 200*3ac0a46fSAndroid Build Coastguard Worker // Before you save the page to a file, or reload the page, you must call 201*3ac0a46fSAndroid Build Coastguard Worker // |FPDFPage_GenerateContent| or any changes to |page| will be lost. 202*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPage_GenerateContent(FPDF_PAGE page); 203*3ac0a46fSAndroid Build Coastguard Worker 204*3ac0a46fSAndroid Build Coastguard Worker // Destroy |page_obj| by releasing its resources. |page_obj| must have been 205*3ac0a46fSAndroid Build Coastguard Worker // created by FPDFPageObj_CreateNew{Path|Rect}() or 206*3ac0a46fSAndroid Build Coastguard Worker // FPDFPageObj_New{Text|Image}Obj(). This function must be called on 207*3ac0a46fSAndroid Build Coastguard Worker // newly-created objects if they are not added to a page through 208*3ac0a46fSAndroid Build Coastguard Worker // FPDFPage_InsertObject() or to an annotation through FPDFAnnot_AppendObject(). 209*3ac0a46fSAndroid Build Coastguard Worker // 210*3ac0a46fSAndroid Build Coastguard Worker // page_obj - handle to a page object. 211*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FPDFPageObj_Destroy(FPDF_PAGEOBJECT page_obj); 212*3ac0a46fSAndroid Build Coastguard Worker 213*3ac0a46fSAndroid Build Coastguard Worker // Checks if |page_object| contains transparency. 214*3ac0a46fSAndroid Build Coastguard Worker // 215*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 216*3ac0a46fSAndroid Build Coastguard Worker // 217*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if |page_object| contains transparency. 218*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 219*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_HasTransparency(FPDF_PAGEOBJECT page_object); 220*3ac0a46fSAndroid Build Coastguard Worker 221*3ac0a46fSAndroid Build Coastguard Worker // Get type of |page_object|. 222*3ac0a46fSAndroid Build Coastguard Worker // 223*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 224*3ac0a46fSAndroid Build Coastguard Worker // 225*3ac0a46fSAndroid Build Coastguard Worker // Returns one of the FPDF_PAGEOBJ_* values on success, FPDF_PAGEOBJ_UNKNOWN on 226*3ac0a46fSAndroid Build Coastguard Worker // error. 227*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFPageObj_GetType(FPDF_PAGEOBJECT page_object); 228*3ac0a46fSAndroid Build Coastguard Worker 229*3ac0a46fSAndroid Build Coastguard Worker // Transform |page_object| by the given matrix. 230*3ac0a46fSAndroid Build Coastguard Worker // 231*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 232*3ac0a46fSAndroid Build Coastguard Worker // a - matrix value. 233*3ac0a46fSAndroid Build Coastguard Worker // b - matrix value. 234*3ac0a46fSAndroid Build Coastguard Worker // c - matrix value. 235*3ac0a46fSAndroid Build Coastguard Worker // d - matrix value. 236*3ac0a46fSAndroid Build Coastguard Worker // e - matrix value. 237*3ac0a46fSAndroid Build Coastguard Worker // f - matrix value. 238*3ac0a46fSAndroid Build Coastguard Worker // 239*3ac0a46fSAndroid Build Coastguard Worker // The matrix is composed as: 240*3ac0a46fSAndroid Build Coastguard Worker // |a c e| 241*3ac0a46fSAndroid Build Coastguard Worker // |b d f| 242*3ac0a46fSAndroid Build Coastguard Worker // and can be used to scale, rotate, shear and translate the |page_object|. 243*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV 244*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_Transform(FPDF_PAGEOBJECT page_object, 245*3ac0a46fSAndroid Build Coastguard Worker double a, 246*3ac0a46fSAndroid Build Coastguard Worker double b, 247*3ac0a46fSAndroid Build Coastguard Worker double c, 248*3ac0a46fSAndroid Build Coastguard Worker double d, 249*3ac0a46fSAndroid Build Coastguard Worker double e, 250*3ac0a46fSAndroid Build Coastguard Worker double f); 251*3ac0a46fSAndroid Build Coastguard Worker 252*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 253*3ac0a46fSAndroid Build Coastguard Worker // Get the transform matrix of a page object. 254*3ac0a46fSAndroid Build Coastguard Worker // 255*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 256*3ac0a46fSAndroid Build Coastguard Worker // matrix - pointer to struct to receive the matrix value. 257*3ac0a46fSAndroid Build Coastguard Worker // 258*3ac0a46fSAndroid Build Coastguard Worker // The matrix is composed as: 259*3ac0a46fSAndroid Build Coastguard Worker // |a c e| 260*3ac0a46fSAndroid Build Coastguard Worker // |b d f| 261*3ac0a46fSAndroid Build Coastguard Worker // and used to scale, rotate, shear and translate the page object. 262*3ac0a46fSAndroid Build Coastguard Worker // 263*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 264*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 265*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetMatrix(FPDF_PAGEOBJECT page_object, FS_MATRIX* matrix); 266*3ac0a46fSAndroid Build Coastguard Worker 267*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 268*3ac0a46fSAndroid Build Coastguard Worker // Set the transform matrix of a page object. 269*3ac0a46fSAndroid Build Coastguard Worker // 270*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 271*3ac0a46fSAndroid Build Coastguard Worker // matrix - pointer to struct with the matrix value. 272*3ac0a46fSAndroid Build Coastguard Worker // 273*3ac0a46fSAndroid Build Coastguard Worker // The matrix is composed as: 274*3ac0a46fSAndroid Build Coastguard Worker // |a c e| 275*3ac0a46fSAndroid Build Coastguard Worker // |b d f| 276*3ac0a46fSAndroid Build Coastguard Worker // and can be used to scale, rotate, shear and translate the page object. 277*3ac0a46fSAndroid Build Coastguard Worker // 278*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 279*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 280*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetMatrix(FPDF_PAGEOBJECT path, const FS_MATRIX* matrix); 281*3ac0a46fSAndroid Build Coastguard Worker 282*3ac0a46fSAndroid Build Coastguard Worker // Transform all annotations in |page|. 283*3ac0a46fSAndroid Build Coastguard Worker // 284*3ac0a46fSAndroid Build Coastguard Worker // page - handle to a page. 285*3ac0a46fSAndroid Build Coastguard Worker // a - matrix value. 286*3ac0a46fSAndroid Build Coastguard Worker // b - matrix value. 287*3ac0a46fSAndroid Build Coastguard Worker // c - matrix value. 288*3ac0a46fSAndroid Build Coastguard Worker // d - matrix value. 289*3ac0a46fSAndroid Build Coastguard Worker // e - matrix value. 290*3ac0a46fSAndroid Build Coastguard Worker // f - matrix value. 291*3ac0a46fSAndroid Build Coastguard Worker // 292*3ac0a46fSAndroid Build Coastguard Worker // The matrix is composed as: 293*3ac0a46fSAndroid Build Coastguard Worker // |a c e| 294*3ac0a46fSAndroid Build Coastguard Worker // |b d f| 295*3ac0a46fSAndroid Build Coastguard Worker // and can be used to scale, rotate, shear and translate the |page| annotations. 296*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FPDFPage_TransformAnnots(FPDF_PAGE page, 297*3ac0a46fSAndroid Build Coastguard Worker double a, 298*3ac0a46fSAndroid Build Coastguard Worker double b, 299*3ac0a46fSAndroid Build Coastguard Worker double c, 300*3ac0a46fSAndroid Build Coastguard Worker double d, 301*3ac0a46fSAndroid Build Coastguard Worker double e, 302*3ac0a46fSAndroid Build Coastguard Worker double f); 303*3ac0a46fSAndroid Build Coastguard Worker 304*3ac0a46fSAndroid Build Coastguard Worker // Create a new image object. 305*3ac0a46fSAndroid Build Coastguard Worker // 306*3ac0a46fSAndroid Build Coastguard Worker // document - handle to a document. 307*3ac0a46fSAndroid Build Coastguard Worker // 308*3ac0a46fSAndroid Build Coastguard Worker // Returns a handle to a new image object. 309*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV 310*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_NewImageObj(FPDF_DOCUMENT document); 311*3ac0a46fSAndroid Build Coastguard Worker 312*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 313*3ac0a46fSAndroid Build Coastguard Worker // Get number of content marks in |page_object|. 314*3ac0a46fSAndroid Build Coastguard Worker // 315*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 316*3ac0a46fSAndroid Build Coastguard Worker // 317*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of content marks in |page_object|, or -1 in case of 318*3ac0a46fSAndroid Build Coastguard Worker // failure. 319*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 320*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_CountMarks(FPDF_PAGEOBJECT page_object); 321*3ac0a46fSAndroid Build Coastguard Worker 322*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 323*3ac0a46fSAndroid Build Coastguard Worker // Get content mark in |page_object| at |index|. 324*3ac0a46fSAndroid Build Coastguard Worker // 325*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 326*3ac0a46fSAndroid Build Coastguard Worker // index - the index of a page object. 327*3ac0a46fSAndroid Build Coastguard Worker // 328*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the content mark, or NULL on failure. The handle is 329*3ac0a46fSAndroid Build Coastguard Worker // still owned by the library, and it should not be freed directly. It becomes 330*3ac0a46fSAndroid Build Coastguard Worker // invalid if the page object is destroyed, either directly or indirectly by 331*3ac0a46fSAndroid Build Coastguard Worker // unloading the page. 332*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECTMARK FPDF_CALLCONV 333*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetMark(FPDF_PAGEOBJECT page_object, unsigned long index); 334*3ac0a46fSAndroid Build Coastguard Worker 335*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 336*3ac0a46fSAndroid Build Coastguard Worker // Add a new content mark to a |page_object|. 337*3ac0a46fSAndroid Build Coastguard Worker // 338*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 339*3ac0a46fSAndroid Build Coastguard Worker // name - the name (tag) of the mark. 340*3ac0a46fSAndroid Build Coastguard Worker // 341*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the content mark, or NULL on failure. The handle is 342*3ac0a46fSAndroid Build Coastguard Worker // still owned by the library, and it should not be freed directly. It becomes 343*3ac0a46fSAndroid Build Coastguard Worker // invalid if the page object is destroyed, either directly or indirectly by 344*3ac0a46fSAndroid Build Coastguard Worker // unloading the page. 345*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECTMARK FPDF_CALLCONV 346*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_AddMark(FPDF_PAGEOBJECT page_object, FPDF_BYTESTRING name); 347*3ac0a46fSAndroid Build Coastguard Worker 348*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 349*3ac0a46fSAndroid Build Coastguard Worker // Removes a content |mark| from a |page_object|. 350*3ac0a46fSAndroid Build Coastguard Worker // The mark handle will be invalid after the removal. 351*3ac0a46fSAndroid Build Coastguard Worker // 352*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 353*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark in that object to remove. 354*3ac0a46fSAndroid Build Coastguard Worker // 355*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the operation succeeded, FALSE if it failed. 356*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 357*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_RemoveMark(FPDF_PAGEOBJECT page_object, FPDF_PAGEOBJECTMARK mark); 358*3ac0a46fSAndroid Build Coastguard Worker 359*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 360*3ac0a46fSAndroid Build Coastguard Worker // Get the name of a content mark. 361*3ac0a46fSAndroid Build Coastguard Worker // 362*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 363*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the returned name in UTF-16LE. This is only 364*3ac0a46fSAndroid Build Coastguard Worker // modified if |buflen| is longer than the length of the name. 365*3ac0a46fSAndroid Build Coastguard Worker // Optional, pass null to just retrieve the size of the buffer 366*3ac0a46fSAndroid Build Coastguard Worker // needed. 367*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer. 368*3ac0a46fSAndroid Build Coastguard Worker // out_buflen - pointer to variable that will receive the minimum buffer size 369*3ac0a46fSAndroid Build Coastguard Worker // to contain the name. Not filled if FALSE is returned. 370*3ac0a46fSAndroid Build Coastguard Worker // 371*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the operation succeeded, FALSE if it failed. 372*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 373*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_GetName(FPDF_PAGEOBJECTMARK mark, 374*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 375*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen, 376*3ac0a46fSAndroid Build Coastguard Worker unsigned long* out_buflen); 377*3ac0a46fSAndroid Build Coastguard Worker 378*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 379*3ac0a46fSAndroid Build Coastguard Worker // Get the number of key/value pair parameters in |mark|. 380*3ac0a46fSAndroid Build Coastguard Worker // 381*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 382*3ac0a46fSAndroid Build Coastguard Worker // 383*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of key/value pair parameters |mark|, or -1 in case of 384*3ac0a46fSAndroid Build Coastguard Worker // failure. 385*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 386*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_CountParams(FPDF_PAGEOBJECTMARK mark); 387*3ac0a46fSAndroid Build Coastguard Worker 388*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 389*3ac0a46fSAndroid Build Coastguard Worker // Get the key of a property in a content mark. 390*3ac0a46fSAndroid Build Coastguard Worker // 391*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 392*3ac0a46fSAndroid Build Coastguard Worker // index - index of the property. 393*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the returned key in UTF-16LE. This is only 394*3ac0a46fSAndroid Build Coastguard Worker // modified if |buflen| is longer than the length of the key. 395*3ac0a46fSAndroid Build Coastguard Worker // Optional, pass null to just retrieve the size of the buffer 396*3ac0a46fSAndroid Build Coastguard Worker // needed. 397*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer. 398*3ac0a46fSAndroid Build Coastguard Worker // out_buflen - pointer to variable that will receive the minimum buffer size 399*3ac0a46fSAndroid Build Coastguard Worker // to contain the key. Not filled if FALSE is returned. 400*3ac0a46fSAndroid Build Coastguard Worker // 401*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the operation was successful, FALSE otherwise. 402*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 403*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_GetParamKey(FPDF_PAGEOBJECTMARK mark, 404*3ac0a46fSAndroid Build Coastguard Worker unsigned long index, 405*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 406*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen, 407*3ac0a46fSAndroid Build Coastguard Worker unsigned long* out_buflen); 408*3ac0a46fSAndroid Build Coastguard Worker 409*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 410*3ac0a46fSAndroid Build Coastguard Worker // Get the type of the value of a property in a content mark by key. 411*3ac0a46fSAndroid Build Coastguard Worker // 412*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 413*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 414*3ac0a46fSAndroid Build Coastguard Worker // 415*3ac0a46fSAndroid Build Coastguard Worker // Returns the type of the value, or FPDF_OBJECT_UNKNOWN in case of failure. 416*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_OBJECT_TYPE FPDF_CALLCONV 417*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_GetParamValueType(FPDF_PAGEOBJECTMARK mark, 418*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key); 419*3ac0a46fSAndroid Build Coastguard Worker 420*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 421*3ac0a46fSAndroid Build Coastguard Worker // Get the value of a number property in a content mark by key as int. 422*3ac0a46fSAndroid Build Coastguard Worker // FPDFPageObjMark_GetParamValueType() should have returned FPDF_OBJECT_NUMBER 423*3ac0a46fSAndroid Build Coastguard Worker // for this property. 424*3ac0a46fSAndroid Build Coastguard Worker // 425*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 426*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 427*3ac0a46fSAndroid Build Coastguard Worker // out_value - pointer to variable that will receive the value. Not filled if 428*3ac0a46fSAndroid Build Coastguard Worker // false is returned. 429*3ac0a46fSAndroid Build Coastguard Worker // 430*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the key maps to a number value, FALSE otherwise. 431*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 432*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_GetParamIntValue(FPDF_PAGEOBJECTMARK mark, 433*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key, 434*3ac0a46fSAndroid Build Coastguard Worker int* out_value); 435*3ac0a46fSAndroid Build Coastguard Worker 436*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 437*3ac0a46fSAndroid Build Coastguard Worker // Get the value of a string property in a content mark by key. 438*3ac0a46fSAndroid Build Coastguard Worker // 439*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 440*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 441*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the returned value in UTF-16LE. This is 442*3ac0a46fSAndroid Build Coastguard Worker // only modified if |buflen| is longer than the length of the 443*3ac0a46fSAndroid Build Coastguard Worker // value. 444*3ac0a46fSAndroid Build Coastguard Worker // Optional, pass null to just retrieve the size of the buffer 445*3ac0a46fSAndroid Build Coastguard Worker // needed. 446*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer. 447*3ac0a46fSAndroid Build Coastguard Worker // out_buflen - pointer to variable that will receive the minimum buffer size 448*3ac0a46fSAndroid Build Coastguard Worker // to contain the value. Not filled if FALSE is returned. 449*3ac0a46fSAndroid Build Coastguard Worker // 450*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the key maps to a string/blob value, FALSE otherwise. 451*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 452*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_GetParamStringValue(FPDF_PAGEOBJECTMARK mark, 453*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key, 454*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 455*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen, 456*3ac0a46fSAndroid Build Coastguard Worker unsigned long* out_buflen); 457*3ac0a46fSAndroid Build Coastguard Worker 458*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 459*3ac0a46fSAndroid Build Coastguard Worker // Get the value of a blob property in a content mark by key. 460*3ac0a46fSAndroid Build Coastguard Worker // 461*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 462*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 463*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the returned value. This is only modified 464*3ac0a46fSAndroid Build Coastguard Worker // if |buflen| is at least as long as the length of the value. 465*3ac0a46fSAndroid Build Coastguard Worker // Optional, pass null to just retrieve the size of the buffer 466*3ac0a46fSAndroid Build Coastguard Worker // needed. 467*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer. 468*3ac0a46fSAndroid Build Coastguard Worker // out_buflen - pointer to variable that will receive the minimum buffer size 469*3ac0a46fSAndroid Build Coastguard Worker // to contain the value. Not filled if FALSE is returned. 470*3ac0a46fSAndroid Build Coastguard Worker // 471*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the key maps to a string/blob value, FALSE otherwise. 472*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 473*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_GetParamBlobValue(FPDF_PAGEOBJECTMARK mark, 474*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key, 475*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 476*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen, 477*3ac0a46fSAndroid Build Coastguard Worker unsigned long* out_buflen); 478*3ac0a46fSAndroid Build Coastguard Worker 479*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 480*3ac0a46fSAndroid Build Coastguard Worker // Set the value of an int property in a content mark by key. If a parameter 481*3ac0a46fSAndroid Build Coastguard Worker // with key |key| exists, its value is set to |value|. Otherwise, it is added as 482*3ac0a46fSAndroid Build Coastguard Worker // a new parameter. 483*3ac0a46fSAndroid Build Coastguard Worker // 484*3ac0a46fSAndroid Build Coastguard Worker // document - handle to the document. 485*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to the page object with the mark. 486*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 487*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 488*3ac0a46fSAndroid Build Coastguard Worker // value - int value to set. 489*3ac0a46fSAndroid Build Coastguard Worker // 490*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the operation succeeded, FALSE otherwise. 491*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 492*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_SetIntParam(FPDF_DOCUMENT document, 493*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT page_object, 494*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECTMARK mark, 495*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key, 496*3ac0a46fSAndroid Build Coastguard Worker int value); 497*3ac0a46fSAndroid Build Coastguard Worker 498*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 499*3ac0a46fSAndroid Build Coastguard Worker // Set the value of a string property in a content mark by key. If a parameter 500*3ac0a46fSAndroid Build Coastguard Worker // with key |key| exists, its value is set to |value|. Otherwise, it is added as 501*3ac0a46fSAndroid Build Coastguard Worker // a new parameter. 502*3ac0a46fSAndroid Build Coastguard Worker // 503*3ac0a46fSAndroid Build Coastguard Worker // document - handle to the document. 504*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to the page object with the mark. 505*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 506*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 507*3ac0a46fSAndroid Build Coastguard Worker // value - string value to set. 508*3ac0a46fSAndroid Build Coastguard Worker // 509*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the operation succeeded, FALSE otherwise. 510*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 511*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_SetStringParam(FPDF_DOCUMENT document, 512*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT page_object, 513*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECTMARK mark, 514*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key, 515*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING value); 516*3ac0a46fSAndroid Build Coastguard Worker 517*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 518*3ac0a46fSAndroid Build Coastguard Worker // Set the value of a blob property in a content mark by key. If a parameter 519*3ac0a46fSAndroid Build Coastguard Worker // with key |key| exists, its value is set to |value|. Otherwise, it is added as 520*3ac0a46fSAndroid Build Coastguard Worker // a new parameter. 521*3ac0a46fSAndroid Build Coastguard Worker // 522*3ac0a46fSAndroid Build Coastguard Worker // document - handle to the document. 523*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to the page object with the mark. 524*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 525*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 526*3ac0a46fSAndroid Build Coastguard Worker // value - pointer to blob value to set. 527*3ac0a46fSAndroid Build Coastguard Worker // value_len - size in bytes of |value|. 528*3ac0a46fSAndroid Build Coastguard Worker // 529*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the operation succeeded, FALSE otherwise. 530*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 531*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_SetBlobParam(FPDF_DOCUMENT document, 532*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT page_object, 533*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECTMARK mark, 534*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key, 535*3ac0a46fSAndroid Build Coastguard Worker void* value, 536*3ac0a46fSAndroid Build Coastguard Worker unsigned long value_len); 537*3ac0a46fSAndroid Build Coastguard Worker 538*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 539*3ac0a46fSAndroid Build Coastguard Worker // Removes a property from a content mark by key. 540*3ac0a46fSAndroid Build Coastguard Worker // 541*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to the page object with the mark. 542*3ac0a46fSAndroid Build Coastguard Worker // mark - handle to a content mark. 543*3ac0a46fSAndroid Build Coastguard Worker // key - string key of the property. 544*3ac0a46fSAndroid Build Coastguard Worker // 545*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE if the operation succeeded, FALSE otherwise. 546*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 547*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObjMark_RemoveParam(FPDF_PAGEOBJECT page_object, 548*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECTMARK mark, 549*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING key); 550*3ac0a46fSAndroid Build Coastguard Worker 551*3ac0a46fSAndroid Build Coastguard Worker // Load an image from a JPEG image file and then set it into |image_object|. 552*3ac0a46fSAndroid Build Coastguard Worker // 553*3ac0a46fSAndroid Build Coastguard Worker // pages - pointer to the start of all loaded pages, may be NULL. 554*3ac0a46fSAndroid Build Coastguard Worker // count - number of |pages|, may be 0. 555*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 556*3ac0a46fSAndroid Build Coastguard Worker // file_access - file access handler which specifies the JPEG image file. 557*3ac0a46fSAndroid Build Coastguard Worker // 558*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 559*3ac0a46fSAndroid Build Coastguard Worker // 560*3ac0a46fSAndroid Build Coastguard Worker // The image object might already have an associated image, which is shared and 561*3ac0a46fSAndroid Build Coastguard Worker // cached by the loaded pages. In that case, we need to clear the cached image 562*3ac0a46fSAndroid Build Coastguard Worker // for all the loaded pages. Pass |pages| and page count (|count|) to this API 563*3ac0a46fSAndroid Build Coastguard Worker // to clear the image cache. If the image is not previously shared, or NULL is a 564*3ac0a46fSAndroid Build Coastguard Worker // valid |pages| value. 565*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 566*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_LoadJpegFile(FPDF_PAGE* pages, 567*3ac0a46fSAndroid Build Coastguard Worker int count, 568*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT image_object, 569*3ac0a46fSAndroid Build Coastguard Worker FPDF_FILEACCESS* file_access); 570*3ac0a46fSAndroid Build Coastguard Worker 571*3ac0a46fSAndroid Build Coastguard Worker // Load an image from a JPEG image file and then set it into |image_object|. 572*3ac0a46fSAndroid Build Coastguard Worker // 573*3ac0a46fSAndroid Build Coastguard Worker // pages - pointer to the start of all loaded pages, may be NULL. 574*3ac0a46fSAndroid Build Coastguard Worker // count - number of |pages|, may be 0. 575*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 576*3ac0a46fSAndroid Build Coastguard Worker // file_access - file access handler which specifies the JPEG image file. 577*3ac0a46fSAndroid Build Coastguard Worker // 578*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 579*3ac0a46fSAndroid Build Coastguard Worker // 580*3ac0a46fSAndroid Build Coastguard Worker // The image object might already have an associated image, which is shared and 581*3ac0a46fSAndroid Build Coastguard Worker // cached by the loaded pages. In that case, we need to clear the cached image 582*3ac0a46fSAndroid Build Coastguard Worker // for all the loaded pages. Pass |pages| and page count (|count|) to this API 583*3ac0a46fSAndroid Build Coastguard Worker // to clear the image cache. If the image is not previously shared, or NULL is a 584*3ac0a46fSAndroid Build Coastguard Worker // valid |pages| value. This function loads the JPEG image inline, so the image 585*3ac0a46fSAndroid Build Coastguard Worker // content is copied to the file. This allows |file_access| and its associated 586*3ac0a46fSAndroid Build Coastguard Worker // data to be deleted after this function returns. 587*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 588*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_LoadJpegFileInline(FPDF_PAGE* pages, 589*3ac0a46fSAndroid Build Coastguard Worker int count, 590*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT image_object, 591*3ac0a46fSAndroid Build Coastguard Worker FPDF_FILEACCESS* file_access); 592*3ac0a46fSAndroid Build Coastguard Worker 593*3ac0a46fSAndroid Build Coastguard Worker // TODO(thestig): Start deprecating this once FPDFPageObj_SetMatrix() is stable. 594*3ac0a46fSAndroid Build Coastguard Worker // 595*3ac0a46fSAndroid Build Coastguard Worker // Set the transform matrix of |image_object|. 596*3ac0a46fSAndroid Build Coastguard Worker // 597*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 598*3ac0a46fSAndroid Build Coastguard Worker // a - matrix value. 599*3ac0a46fSAndroid Build Coastguard Worker // b - matrix value. 600*3ac0a46fSAndroid Build Coastguard Worker // c - matrix value. 601*3ac0a46fSAndroid Build Coastguard Worker // d - matrix value. 602*3ac0a46fSAndroid Build Coastguard Worker // e - matrix value. 603*3ac0a46fSAndroid Build Coastguard Worker // f - matrix value. 604*3ac0a46fSAndroid Build Coastguard Worker // 605*3ac0a46fSAndroid Build Coastguard Worker // The matrix is composed as: 606*3ac0a46fSAndroid Build Coastguard Worker // |a c e| 607*3ac0a46fSAndroid Build Coastguard Worker // |b d f| 608*3ac0a46fSAndroid Build Coastguard Worker // and can be used to scale, rotate, shear and translate the |image_object|. 609*3ac0a46fSAndroid Build Coastguard Worker // 610*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 611*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 612*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_SetMatrix(FPDF_PAGEOBJECT image_object, 613*3ac0a46fSAndroid Build Coastguard Worker double a, 614*3ac0a46fSAndroid Build Coastguard Worker double b, 615*3ac0a46fSAndroid Build Coastguard Worker double c, 616*3ac0a46fSAndroid Build Coastguard Worker double d, 617*3ac0a46fSAndroid Build Coastguard Worker double e, 618*3ac0a46fSAndroid Build Coastguard Worker double f); 619*3ac0a46fSAndroid Build Coastguard Worker 620*3ac0a46fSAndroid Build Coastguard Worker // Set |bitmap| to |image_object|. 621*3ac0a46fSAndroid Build Coastguard Worker // 622*3ac0a46fSAndroid Build Coastguard Worker // pages - pointer to the start of all loaded pages, may be NULL. 623*3ac0a46fSAndroid Build Coastguard Worker // count - number of |pages|, may be 0. 624*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 625*3ac0a46fSAndroid Build Coastguard Worker // bitmap - handle of the bitmap. 626*3ac0a46fSAndroid Build Coastguard Worker // 627*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 628*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 629*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_SetBitmap(FPDF_PAGE* pages, 630*3ac0a46fSAndroid Build Coastguard Worker int count, 631*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT image_object, 632*3ac0a46fSAndroid Build Coastguard Worker FPDF_BITMAP bitmap); 633*3ac0a46fSAndroid Build Coastguard Worker 634*3ac0a46fSAndroid Build Coastguard Worker // Get a bitmap rasterization of |image_object|. FPDFImageObj_GetBitmap() only 635*3ac0a46fSAndroid Build Coastguard Worker // operates on |image_object| and does not take the associated image mask into 636*3ac0a46fSAndroid Build Coastguard Worker // account. It also ignores the matrix for |image_object|. 637*3ac0a46fSAndroid Build Coastguard Worker // The returned bitmap will be owned by the caller, and FPDFBitmap_Destroy() 638*3ac0a46fSAndroid Build Coastguard Worker // must be called on the returned bitmap when it is no longer needed. 639*3ac0a46fSAndroid Build Coastguard Worker // 640*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 641*3ac0a46fSAndroid Build Coastguard Worker // 642*3ac0a46fSAndroid Build Coastguard Worker // Returns the bitmap. 643*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV 644*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetBitmap(FPDF_PAGEOBJECT image_object); 645*3ac0a46fSAndroid Build Coastguard Worker 646*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 647*3ac0a46fSAndroid Build Coastguard Worker // Get a bitmap rasterization of |image_object| that takes the image mask and 648*3ac0a46fSAndroid Build Coastguard Worker // image matrix into account. To render correctly, the caller must provide the 649*3ac0a46fSAndroid Build Coastguard Worker // |document| associated with |image_object|. If there is a |page| associated 650*3ac0a46fSAndroid Build Coastguard Worker // with |image_object|, the caller should provide that as well. 651*3ac0a46fSAndroid Build Coastguard Worker // The returned bitmap will be owned by the caller, and FPDFBitmap_Destroy() 652*3ac0a46fSAndroid Build Coastguard Worker // must be called on the returned bitmap when it is no longer needed. 653*3ac0a46fSAndroid Build Coastguard Worker // 654*3ac0a46fSAndroid Build Coastguard Worker // document - handle to a document associated with |image_object|. 655*3ac0a46fSAndroid Build Coastguard Worker // page - handle to an optional page associated with |image_object|. 656*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 657*3ac0a46fSAndroid Build Coastguard Worker // 658*3ac0a46fSAndroid Build Coastguard Worker // Returns the bitmap or NULL on failure. 659*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV 660*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetRenderedBitmap(FPDF_DOCUMENT document, 661*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGE page, 662*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT image_object); 663*3ac0a46fSAndroid Build Coastguard Worker 664*3ac0a46fSAndroid Build Coastguard Worker // Get the decoded image data of |image_object|. The decoded data is the 665*3ac0a46fSAndroid Build Coastguard Worker // uncompressed image data, i.e. the raw image data after having all filters 666*3ac0a46fSAndroid Build Coastguard Worker // applied. |buffer| is only modified if |buflen| is longer than the length of 667*3ac0a46fSAndroid Build Coastguard Worker // the decoded image data. 668*3ac0a46fSAndroid Build Coastguard Worker // 669*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 670*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the decoded image data. 671*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer in bytes. 672*3ac0a46fSAndroid Build Coastguard Worker // 673*3ac0a46fSAndroid Build Coastguard Worker // Returns the length of the decoded image data. 674*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT unsigned long FPDF_CALLCONV 675*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetImageDataDecoded(FPDF_PAGEOBJECT image_object, 676*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 677*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen); 678*3ac0a46fSAndroid Build Coastguard Worker 679*3ac0a46fSAndroid Build Coastguard Worker // Get the raw image data of |image_object|. The raw data is the image data as 680*3ac0a46fSAndroid Build Coastguard Worker // stored in the PDF without applying any filters. |buffer| is only modified if 681*3ac0a46fSAndroid Build Coastguard Worker // |buflen| is longer than the length of the raw image data. 682*3ac0a46fSAndroid Build Coastguard Worker // 683*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 684*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding the raw image data. 685*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer in bytes. 686*3ac0a46fSAndroid Build Coastguard Worker // 687*3ac0a46fSAndroid Build Coastguard Worker // Returns the length of the raw image data. 688*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT unsigned long FPDF_CALLCONV 689*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetImageDataRaw(FPDF_PAGEOBJECT image_object, 690*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 691*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen); 692*3ac0a46fSAndroid Build Coastguard Worker 693*3ac0a46fSAndroid Build Coastguard Worker // Get the number of filters (i.e. decoders) of the image in |image_object|. 694*3ac0a46fSAndroid Build Coastguard Worker // 695*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 696*3ac0a46fSAndroid Build Coastguard Worker // 697*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of |image_object|'s filters. 698*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 699*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetImageFilterCount(FPDF_PAGEOBJECT image_object); 700*3ac0a46fSAndroid Build Coastguard Worker 701*3ac0a46fSAndroid Build Coastguard Worker // Get the filter at |index| of |image_object|'s list of filters. Note that the 702*3ac0a46fSAndroid Build Coastguard Worker // filters need to be applied in order, i.e. the first filter should be applied 703*3ac0a46fSAndroid Build Coastguard Worker // first, then the second, etc. |buffer| is only modified if |buflen| is longer 704*3ac0a46fSAndroid Build Coastguard Worker // than the length of the filter string. 705*3ac0a46fSAndroid Build Coastguard Worker // 706*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 707*3ac0a46fSAndroid Build Coastguard Worker // index - the index of the filter requested. 708*3ac0a46fSAndroid Build Coastguard Worker // buffer - buffer for holding filter string, encoded in UTF-8. 709*3ac0a46fSAndroid Build Coastguard Worker // buflen - length of the buffer. 710*3ac0a46fSAndroid Build Coastguard Worker // 711*3ac0a46fSAndroid Build Coastguard Worker // Returns the length of the filter string. 712*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT unsigned long FPDF_CALLCONV 713*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetImageFilter(FPDF_PAGEOBJECT image_object, 714*3ac0a46fSAndroid Build Coastguard Worker int index, 715*3ac0a46fSAndroid Build Coastguard Worker void* buffer, 716*3ac0a46fSAndroid Build Coastguard Worker unsigned long buflen); 717*3ac0a46fSAndroid Build Coastguard Worker 718*3ac0a46fSAndroid Build Coastguard Worker // Get the image metadata of |image_object|, including dimension, DPI, bits per 719*3ac0a46fSAndroid Build Coastguard Worker // pixel, and colorspace. If the |image_object| is not an image object or if it 720*3ac0a46fSAndroid Build Coastguard Worker // does not have an image, then the return value will be false. Otherwise, 721*3ac0a46fSAndroid Build Coastguard Worker // failure to retrieve any specific parameter would result in its value being 0. 722*3ac0a46fSAndroid Build Coastguard Worker // 723*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 724*3ac0a46fSAndroid Build Coastguard Worker // page - handle to the page that |image_object| is on. Required for 725*3ac0a46fSAndroid Build Coastguard Worker // retrieving the image's bits per pixel and colorspace. 726*3ac0a46fSAndroid Build Coastguard Worker // metadata - receives the image metadata; must not be NULL. 727*3ac0a46fSAndroid Build Coastguard Worker // 728*3ac0a46fSAndroid Build Coastguard Worker // Returns true if successful. 729*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 730*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetImageMetadata(FPDF_PAGEOBJECT image_object, 731*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGE page, 732*3ac0a46fSAndroid Build Coastguard Worker FPDF_IMAGEOBJ_METADATA* metadata); 733*3ac0a46fSAndroid Build Coastguard Worker 734*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 735*3ac0a46fSAndroid Build Coastguard Worker // Get the image size in pixels. Faster method to get only image size. 736*3ac0a46fSAndroid Build Coastguard Worker // 737*3ac0a46fSAndroid Build Coastguard Worker // image_object - handle to an image object. 738*3ac0a46fSAndroid Build Coastguard Worker // width - receives the image width in pixels; must not be NULL. 739*3ac0a46fSAndroid Build Coastguard Worker // height - receives the image height in pixels; must not be NULL. 740*3ac0a46fSAndroid Build Coastguard Worker // 741*3ac0a46fSAndroid Build Coastguard Worker // Returns true if successful. 742*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 743*3ac0a46fSAndroid Build Coastguard Worker FPDFImageObj_GetImagePixelSize(FPDF_PAGEOBJECT image_object, 744*3ac0a46fSAndroid Build Coastguard Worker unsigned int* width, 745*3ac0a46fSAndroid Build Coastguard Worker unsigned int* height); 746*3ac0a46fSAndroid Build Coastguard Worker 747*3ac0a46fSAndroid Build Coastguard Worker // Create a new path object at an initial position. 748*3ac0a46fSAndroid Build Coastguard Worker // 749*3ac0a46fSAndroid Build Coastguard Worker // x - initial horizontal position. 750*3ac0a46fSAndroid Build Coastguard Worker // y - initial vertical position. 751*3ac0a46fSAndroid Build Coastguard Worker // 752*3ac0a46fSAndroid Build Coastguard Worker // Returns a handle to a new path object. 753*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPageObj_CreateNewPath(float x, 754*3ac0a46fSAndroid Build Coastguard Worker float y); 755*3ac0a46fSAndroid Build Coastguard Worker 756*3ac0a46fSAndroid Build Coastguard Worker // Create a closed path consisting of a rectangle. 757*3ac0a46fSAndroid Build Coastguard Worker // 758*3ac0a46fSAndroid Build Coastguard Worker // x - horizontal position for the left boundary of the rectangle. 759*3ac0a46fSAndroid Build Coastguard Worker // y - vertical position for the bottom boundary of the rectangle. 760*3ac0a46fSAndroid Build Coastguard Worker // w - width of the rectangle. 761*3ac0a46fSAndroid Build Coastguard Worker // h - height of the rectangle. 762*3ac0a46fSAndroid Build Coastguard Worker // 763*3ac0a46fSAndroid Build Coastguard Worker // Returns a handle to the new path object. 764*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV FPDFPageObj_CreateNewRect(float x, 765*3ac0a46fSAndroid Build Coastguard Worker float y, 766*3ac0a46fSAndroid Build Coastguard Worker float w, 767*3ac0a46fSAndroid Build Coastguard Worker float h); 768*3ac0a46fSAndroid Build Coastguard Worker 769*3ac0a46fSAndroid Build Coastguard Worker // Get the bounding box of |page_object|. 770*3ac0a46fSAndroid Build Coastguard Worker // 771*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 772*3ac0a46fSAndroid Build Coastguard Worker // left - pointer where the left coordinate will be stored 773*3ac0a46fSAndroid Build Coastguard Worker // bottom - pointer where the bottom coordinate will be stored 774*3ac0a46fSAndroid Build Coastguard Worker // right - pointer where the right coordinate will be stored 775*3ac0a46fSAndroid Build Coastguard Worker // top - pointer where the top coordinate will be stored 776*3ac0a46fSAndroid Build Coastguard Worker // 777*3ac0a46fSAndroid Build Coastguard Worker // On success, returns TRUE and fills in the 4 coordinates. 778*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 779*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetBounds(FPDF_PAGEOBJECT page_object, 780*3ac0a46fSAndroid Build Coastguard Worker float* left, 781*3ac0a46fSAndroid Build Coastguard Worker float* bottom, 782*3ac0a46fSAndroid Build Coastguard Worker float* right, 783*3ac0a46fSAndroid Build Coastguard Worker float* top); 784*3ac0a46fSAndroid Build Coastguard Worker 785*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 786*3ac0a46fSAndroid Build Coastguard Worker // Get the quad points that bounds |page_object|. 787*3ac0a46fSAndroid Build Coastguard Worker // 788*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 789*3ac0a46fSAndroid Build Coastguard Worker // quad_points - pointer where the quadrilateral points will be stored. 790*3ac0a46fSAndroid Build Coastguard Worker // 791*3ac0a46fSAndroid Build Coastguard Worker // On success, returns TRUE and fills in |quad_points|. 792*3ac0a46fSAndroid Build Coastguard Worker // 793*3ac0a46fSAndroid Build Coastguard Worker // Similar to FPDFPageObj_GetBounds(), this returns the bounds of a page 794*3ac0a46fSAndroid Build Coastguard Worker // object. When the object is rotated by a non-multiple of 90 degrees, this API 795*3ac0a46fSAndroid Build Coastguard Worker // returns a tighter bound that cannot be represented with just the 4 sides of 796*3ac0a46fSAndroid Build Coastguard Worker // a rectangle. 797*3ac0a46fSAndroid Build Coastguard Worker // 798*3ac0a46fSAndroid Build Coastguard Worker // Currently only works the following |page_object| types: FPDF_PAGEOBJ_TEXT and 799*3ac0a46fSAndroid Build Coastguard Worker // FPDF_PAGEOBJ_IMAGE. 800*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 801*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetRotatedBounds(FPDF_PAGEOBJECT page_object, 802*3ac0a46fSAndroid Build Coastguard Worker FS_QUADPOINTSF* quad_points); 803*3ac0a46fSAndroid Build Coastguard Worker 804*3ac0a46fSAndroid Build Coastguard Worker // Set the blend mode of |page_object|. 805*3ac0a46fSAndroid Build Coastguard Worker // 806*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 807*3ac0a46fSAndroid Build Coastguard Worker // blend_mode - string containing the blend mode. 808*3ac0a46fSAndroid Build Coastguard Worker // 809*3ac0a46fSAndroid Build Coastguard Worker // Blend mode can be one of following: Color, ColorBurn, ColorDodge, Darken, 810*3ac0a46fSAndroid Build Coastguard Worker // Difference, Exclusion, HardLight, Hue, Lighten, Luminosity, Multiply, Normal, 811*3ac0a46fSAndroid Build Coastguard Worker // Overlay, Saturation, Screen, SoftLight 812*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV 813*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetBlendMode(FPDF_PAGEOBJECT page_object, 814*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING blend_mode); 815*3ac0a46fSAndroid Build Coastguard Worker 816*3ac0a46fSAndroid Build Coastguard Worker // Set the stroke RGBA of a page object. Range of values: 0 - 255. 817*3ac0a46fSAndroid Build Coastguard Worker // 818*3ac0a46fSAndroid Build Coastguard Worker // page_object - the handle to the page object. 819*3ac0a46fSAndroid Build Coastguard Worker // R - the red component for the object's stroke color. 820*3ac0a46fSAndroid Build Coastguard Worker // G - the green component for the object's stroke color. 821*3ac0a46fSAndroid Build Coastguard Worker // B - the blue component for the object's stroke color. 822*3ac0a46fSAndroid Build Coastguard Worker // A - the stroke alpha for the object. 823*3ac0a46fSAndroid Build Coastguard Worker // 824*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 825*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 826*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetStrokeColor(FPDF_PAGEOBJECT page_object, 827*3ac0a46fSAndroid Build Coastguard Worker unsigned int R, 828*3ac0a46fSAndroid Build Coastguard Worker unsigned int G, 829*3ac0a46fSAndroid Build Coastguard Worker unsigned int B, 830*3ac0a46fSAndroid Build Coastguard Worker unsigned int A); 831*3ac0a46fSAndroid Build Coastguard Worker 832*3ac0a46fSAndroid Build Coastguard Worker // Get the stroke RGBA of a page object. Range of values: 0 - 255. 833*3ac0a46fSAndroid Build Coastguard Worker // 834*3ac0a46fSAndroid Build Coastguard Worker // page_object - the handle to the page object. 835*3ac0a46fSAndroid Build Coastguard Worker // R - the red component of the path stroke color. 836*3ac0a46fSAndroid Build Coastguard Worker // G - the green component of the object's stroke color. 837*3ac0a46fSAndroid Build Coastguard Worker // B - the blue component of the object's stroke color. 838*3ac0a46fSAndroid Build Coastguard Worker // A - the stroke alpha of the object. 839*3ac0a46fSAndroid Build Coastguard Worker // 840*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 841*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 842*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetStrokeColor(FPDF_PAGEOBJECT page_object, 843*3ac0a46fSAndroid Build Coastguard Worker unsigned int* R, 844*3ac0a46fSAndroid Build Coastguard Worker unsigned int* G, 845*3ac0a46fSAndroid Build Coastguard Worker unsigned int* B, 846*3ac0a46fSAndroid Build Coastguard Worker unsigned int* A); 847*3ac0a46fSAndroid Build Coastguard Worker 848*3ac0a46fSAndroid Build Coastguard Worker // Set the stroke width of a page object. 849*3ac0a46fSAndroid Build Coastguard Worker // 850*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the page object. 851*3ac0a46fSAndroid Build Coastguard Worker // width - the width of the stroke. 852*3ac0a46fSAndroid Build Coastguard Worker // 853*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 854*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 855*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetStrokeWidth(FPDF_PAGEOBJECT page_object, float width); 856*3ac0a46fSAndroid Build Coastguard Worker 857*3ac0a46fSAndroid Build Coastguard Worker // Get the stroke width of a page object. 858*3ac0a46fSAndroid Build Coastguard Worker // 859*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the page object. 860*3ac0a46fSAndroid Build Coastguard Worker // width - the width of the stroke. 861*3ac0a46fSAndroid Build Coastguard Worker // 862*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 863*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 864*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetStrokeWidth(FPDF_PAGEOBJECT page_object, float* width); 865*3ac0a46fSAndroid Build Coastguard Worker 866*3ac0a46fSAndroid Build Coastguard Worker // Get the line join of |page_object|. 867*3ac0a46fSAndroid Build Coastguard Worker // 868*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 869*3ac0a46fSAndroid Build Coastguard Worker // 870*3ac0a46fSAndroid Build Coastguard Worker // Returns the line join, or -1 on failure. 871*3ac0a46fSAndroid Build Coastguard Worker // Line join can be one of following: FPDF_LINEJOIN_MITER, FPDF_LINEJOIN_ROUND, 872*3ac0a46fSAndroid Build Coastguard Worker // FPDF_LINEJOIN_BEVEL 873*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 874*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetLineJoin(FPDF_PAGEOBJECT page_object); 875*3ac0a46fSAndroid Build Coastguard Worker 876*3ac0a46fSAndroid Build Coastguard Worker // Set the line join of |page_object|. 877*3ac0a46fSAndroid Build Coastguard Worker // 878*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 879*3ac0a46fSAndroid Build Coastguard Worker // line_join - line join 880*3ac0a46fSAndroid Build Coastguard Worker // 881*3ac0a46fSAndroid Build Coastguard Worker // Line join can be one of following: FPDF_LINEJOIN_MITER, FPDF_LINEJOIN_ROUND, 882*3ac0a46fSAndroid Build Coastguard Worker // FPDF_LINEJOIN_BEVEL 883*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 884*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetLineJoin(FPDF_PAGEOBJECT page_object, int line_join); 885*3ac0a46fSAndroid Build Coastguard Worker 886*3ac0a46fSAndroid Build Coastguard Worker // Get the line cap of |page_object|. 887*3ac0a46fSAndroid Build Coastguard Worker // 888*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 889*3ac0a46fSAndroid Build Coastguard Worker // 890*3ac0a46fSAndroid Build Coastguard Worker // Returns the line cap, or -1 on failure. 891*3ac0a46fSAndroid Build Coastguard Worker // Line cap can be one of following: FPDF_LINECAP_BUTT, FPDF_LINECAP_ROUND, 892*3ac0a46fSAndroid Build Coastguard Worker // FPDF_LINECAP_PROJECTING_SQUARE 893*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 894*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetLineCap(FPDF_PAGEOBJECT page_object); 895*3ac0a46fSAndroid Build Coastguard Worker 896*3ac0a46fSAndroid Build Coastguard Worker // Set the line cap of |page_object|. 897*3ac0a46fSAndroid Build Coastguard Worker // 898*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 899*3ac0a46fSAndroid Build Coastguard Worker // line_cap - line cap 900*3ac0a46fSAndroid Build Coastguard Worker // 901*3ac0a46fSAndroid Build Coastguard Worker // Line cap can be one of following: FPDF_LINECAP_BUTT, FPDF_LINECAP_ROUND, 902*3ac0a46fSAndroid Build Coastguard Worker // FPDF_LINECAP_PROJECTING_SQUARE 903*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 904*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetLineCap(FPDF_PAGEOBJECT page_object, int line_cap); 905*3ac0a46fSAndroid Build Coastguard Worker 906*3ac0a46fSAndroid Build Coastguard Worker // Set the fill RGBA of a page object. Range of values: 0 - 255. 907*3ac0a46fSAndroid Build Coastguard Worker // 908*3ac0a46fSAndroid Build Coastguard Worker // page_object - the handle to the page object. 909*3ac0a46fSAndroid Build Coastguard Worker // R - the red component for the object's fill color. 910*3ac0a46fSAndroid Build Coastguard Worker // G - the green component for the object's fill color. 911*3ac0a46fSAndroid Build Coastguard Worker // B - the blue component for the object's fill color. 912*3ac0a46fSAndroid Build Coastguard Worker // A - the fill alpha for the object. 913*3ac0a46fSAndroid Build Coastguard Worker // 914*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 915*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 916*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetFillColor(FPDF_PAGEOBJECT page_object, 917*3ac0a46fSAndroid Build Coastguard Worker unsigned int R, 918*3ac0a46fSAndroid Build Coastguard Worker unsigned int G, 919*3ac0a46fSAndroid Build Coastguard Worker unsigned int B, 920*3ac0a46fSAndroid Build Coastguard Worker unsigned int A); 921*3ac0a46fSAndroid Build Coastguard Worker 922*3ac0a46fSAndroid Build Coastguard Worker // Get the fill RGBA of a page object. Range of values: 0 - 255. 923*3ac0a46fSAndroid Build Coastguard Worker // 924*3ac0a46fSAndroid Build Coastguard Worker // page_object - the handle to the page object. 925*3ac0a46fSAndroid Build Coastguard Worker // R - the red component of the object's fill color. 926*3ac0a46fSAndroid Build Coastguard Worker // G - the green component of the object's fill color. 927*3ac0a46fSAndroid Build Coastguard Worker // B - the blue component of the object's fill color. 928*3ac0a46fSAndroid Build Coastguard Worker // A - the fill alpha of the object. 929*3ac0a46fSAndroid Build Coastguard Worker // 930*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 931*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 932*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetFillColor(FPDF_PAGEOBJECT page_object, 933*3ac0a46fSAndroid Build Coastguard Worker unsigned int* R, 934*3ac0a46fSAndroid Build Coastguard Worker unsigned int* G, 935*3ac0a46fSAndroid Build Coastguard Worker unsigned int* B, 936*3ac0a46fSAndroid Build Coastguard Worker unsigned int* A); 937*3ac0a46fSAndroid Build Coastguard Worker 938*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 939*3ac0a46fSAndroid Build Coastguard Worker // Get the line dash |phase| of |page_object|. 940*3ac0a46fSAndroid Build Coastguard Worker // 941*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 942*3ac0a46fSAndroid Build Coastguard Worker // phase - pointer where the dashing phase will be stored. 943*3ac0a46fSAndroid Build Coastguard Worker // 944*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 945*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 946*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetDashPhase(FPDF_PAGEOBJECT page_object, float* phase); 947*3ac0a46fSAndroid Build Coastguard Worker 948*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 949*3ac0a46fSAndroid Build Coastguard Worker // Set the line dash phase of |page_object|. 950*3ac0a46fSAndroid Build Coastguard Worker // 951*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 952*3ac0a46fSAndroid Build Coastguard Worker // phase - line dash phase. 953*3ac0a46fSAndroid Build Coastguard Worker // 954*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 955*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 956*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetDashPhase(FPDF_PAGEOBJECT page_object, float phase); 957*3ac0a46fSAndroid Build Coastguard Worker 958*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 959*3ac0a46fSAndroid Build Coastguard Worker // Get the line dash array of |page_object|. 960*3ac0a46fSAndroid Build Coastguard Worker // 961*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 962*3ac0a46fSAndroid Build Coastguard Worker // 963*3ac0a46fSAndroid Build Coastguard Worker // Returns the line dash array size or -1 on failure. 964*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 965*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetDashCount(FPDF_PAGEOBJECT page_object); 966*3ac0a46fSAndroid Build Coastguard Worker 967*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 968*3ac0a46fSAndroid Build Coastguard Worker // Get the line dash array of |page_object|. 969*3ac0a46fSAndroid Build Coastguard Worker // 970*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 971*3ac0a46fSAndroid Build Coastguard Worker // dash_array - pointer where the dashing array will be stored. 972*3ac0a46fSAndroid Build Coastguard Worker // dash_count - number of elements in |dash_array|. 973*3ac0a46fSAndroid Build Coastguard Worker // 974*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 975*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 976*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_GetDashArray(FPDF_PAGEOBJECT page_object, 977*3ac0a46fSAndroid Build Coastguard Worker float* dash_array, 978*3ac0a46fSAndroid Build Coastguard Worker size_t dash_count); 979*3ac0a46fSAndroid Build Coastguard Worker 980*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 981*3ac0a46fSAndroid Build Coastguard Worker // Set the line dash array of |page_object|. 982*3ac0a46fSAndroid Build Coastguard Worker // 983*3ac0a46fSAndroid Build Coastguard Worker // page_object - handle to a page object. 984*3ac0a46fSAndroid Build Coastguard Worker // dash_array - the dash array. 985*3ac0a46fSAndroid Build Coastguard Worker // dash_count - number of elements in |dash_array|. 986*3ac0a46fSAndroid Build Coastguard Worker // phase - the line dash phase. 987*3ac0a46fSAndroid Build Coastguard Worker // 988*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 989*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 990*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_SetDashArray(FPDF_PAGEOBJECT page_object, 991*3ac0a46fSAndroid Build Coastguard Worker const float* dash_array, 992*3ac0a46fSAndroid Build Coastguard Worker size_t dash_count, 993*3ac0a46fSAndroid Build Coastguard Worker float phase); 994*3ac0a46fSAndroid Build Coastguard Worker 995*3ac0a46fSAndroid Build Coastguard Worker // Get number of segments inside |path|. 996*3ac0a46fSAndroid Build Coastguard Worker // 997*3ac0a46fSAndroid Build Coastguard Worker // path - handle to a path. 998*3ac0a46fSAndroid Build Coastguard Worker // 999*3ac0a46fSAndroid Build Coastguard Worker // A segment is a command, created by e.g. FPDFPath_MoveTo(), 1000*3ac0a46fSAndroid Build Coastguard Worker // FPDFPath_LineTo() or FPDFPath_BezierTo(). 1001*3ac0a46fSAndroid Build Coastguard Worker // 1002*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of objects in |path| or -1 on failure. 1003*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFPath_CountSegments(FPDF_PAGEOBJECT path); 1004*3ac0a46fSAndroid Build Coastguard Worker 1005*3ac0a46fSAndroid Build Coastguard Worker // Get segment in |path| at |index|. 1006*3ac0a46fSAndroid Build Coastguard Worker // 1007*3ac0a46fSAndroid Build Coastguard Worker // path - handle to a path. 1008*3ac0a46fSAndroid Build Coastguard Worker // index - the index of a segment. 1009*3ac0a46fSAndroid Build Coastguard Worker // 1010*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the segment, or NULL on faiure. 1011*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PATHSEGMENT FPDF_CALLCONV 1012*3ac0a46fSAndroid Build Coastguard Worker FPDFPath_GetPathSegment(FPDF_PAGEOBJECT path, int index); 1013*3ac0a46fSAndroid Build Coastguard Worker 1014*3ac0a46fSAndroid Build Coastguard Worker // Get coordinates of |segment|. 1015*3ac0a46fSAndroid Build Coastguard Worker // 1016*3ac0a46fSAndroid Build Coastguard Worker // segment - handle to a segment. 1017*3ac0a46fSAndroid Build Coastguard Worker // x - the horizontal position of the segment. 1018*3ac0a46fSAndroid Build Coastguard Worker // y - the vertical position of the segment. 1019*3ac0a46fSAndroid Build Coastguard Worker // 1020*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success, otherwise |x| and |y| is not set. 1021*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 1022*3ac0a46fSAndroid Build Coastguard Worker FPDFPathSegment_GetPoint(FPDF_PATHSEGMENT segment, float* x, float* y); 1023*3ac0a46fSAndroid Build Coastguard Worker 1024*3ac0a46fSAndroid Build Coastguard Worker // Get type of |segment|. 1025*3ac0a46fSAndroid Build Coastguard Worker // 1026*3ac0a46fSAndroid Build Coastguard Worker // segment - handle to a segment. 1027*3ac0a46fSAndroid Build Coastguard Worker // 1028*3ac0a46fSAndroid Build Coastguard Worker // Returns one of the FPDF_SEGMENT_* values on success, 1029*3ac0a46fSAndroid Build Coastguard Worker // FPDF_SEGMENT_UNKNOWN on error. 1030*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFPathSegment_GetType(FPDF_PATHSEGMENT segment); 1031*3ac0a46fSAndroid Build Coastguard Worker 1032*3ac0a46fSAndroid Build Coastguard Worker // Gets if the |segment| closes the current subpath of a given path. 1033*3ac0a46fSAndroid Build Coastguard Worker // 1034*3ac0a46fSAndroid Build Coastguard Worker // segment - handle to a segment. 1035*3ac0a46fSAndroid Build Coastguard Worker // 1036*3ac0a46fSAndroid Build Coastguard Worker // Returns close flag for non-NULL segment, FALSE otherwise. 1037*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 1038*3ac0a46fSAndroid Build Coastguard Worker FPDFPathSegment_GetClose(FPDF_PATHSEGMENT segment); 1039*3ac0a46fSAndroid Build Coastguard Worker 1040*3ac0a46fSAndroid Build Coastguard Worker // Move a path's current point. 1041*3ac0a46fSAndroid Build Coastguard Worker // 1042*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the path object. 1043*3ac0a46fSAndroid Build Coastguard Worker // x - the horizontal position of the new current point. 1044*3ac0a46fSAndroid Build Coastguard Worker // y - the vertical position of the new current point. 1045*3ac0a46fSAndroid Build Coastguard Worker // 1046*3ac0a46fSAndroid Build Coastguard Worker // Note that no line will be created between the previous current point and the 1047*3ac0a46fSAndroid Build Coastguard Worker // new one. 1048*3ac0a46fSAndroid Build Coastguard Worker // 1049*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1050*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_MoveTo(FPDF_PAGEOBJECT path, 1051*3ac0a46fSAndroid Build Coastguard Worker float x, 1052*3ac0a46fSAndroid Build Coastguard Worker float y); 1053*3ac0a46fSAndroid Build Coastguard Worker 1054*3ac0a46fSAndroid Build Coastguard Worker // Add a line between the current point and a new point in the path. 1055*3ac0a46fSAndroid Build Coastguard Worker // 1056*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the path object. 1057*3ac0a46fSAndroid Build Coastguard Worker // x - the horizontal position of the new point. 1058*3ac0a46fSAndroid Build Coastguard Worker // y - the vertical position of the new point. 1059*3ac0a46fSAndroid Build Coastguard Worker // 1060*3ac0a46fSAndroid Build Coastguard Worker // The path's current point is changed to (x, y). 1061*3ac0a46fSAndroid Build Coastguard Worker // 1062*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1063*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_LineTo(FPDF_PAGEOBJECT path, 1064*3ac0a46fSAndroid Build Coastguard Worker float x, 1065*3ac0a46fSAndroid Build Coastguard Worker float y); 1066*3ac0a46fSAndroid Build Coastguard Worker 1067*3ac0a46fSAndroid Build Coastguard Worker // Add a cubic Bezier curve to the given path, starting at the current point. 1068*3ac0a46fSAndroid Build Coastguard Worker // 1069*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the path object. 1070*3ac0a46fSAndroid Build Coastguard Worker // x1 - the horizontal position of the first Bezier control point. 1071*3ac0a46fSAndroid Build Coastguard Worker // y1 - the vertical position of the first Bezier control point. 1072*3ac0a46fSAndroid Build Coastguard Worker // x2 - the horizontal position of the second Bezier control point. 1073*3ac0a46fSAndroid Build Coastguard Worker // y2 - the vertical position of the second Bezier control point. 1074*3ac0a46fSAndroid Build Coastguard Worker // x3 - the horizontal position of the ending point of the Bezier curve. 1075*3ac0a46fSAndroid Build Coastguard Worker // y3 - the vertical position of the ending point of the Bezier curve. 1076*3ac0a46fSAndroid Build Coastguard Worker // 1077*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1078*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_BezierTo(FPDF_PAGEOBJECT path, 1079*3ac0a46fSAndroid Build Coastguard Worker float x1, 1080*3ac0a46fSAndroid Build Coastguard Worker float y1, 1081*3ac0a46fSAndroid Build Coastguard Worker float x2, 1082*3ac0a46fSAndroid Build Coastguard Worker float y2, 1083*3ac0a46fSAndroid Build Coastguard Worker float x3, 1084*3ac0a46fSAndroid Build Coastguard Worker float y3); 1085*3ac0a46fSAndroid Build Coastguard Worker 1086*3ac0a46fSAndroid Build Coastguard Worker // Close the current subpath of a given path. 1087*3ac0a46fSAndroid Build Coastguard Worker // 1088*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the path object. 1089*3ac0a46fSAndroid Build Coastguard Worker // 1090*3ac0a46fSAndroid Build Coastguard Worker // This will add a line between the current point and the initial point of the 1091*3ac0a46fSAndroid Build Coastguard Worker // subpath, thus terminating the current subpath. 1092*3ac0a46fSAndroid Build Coastguard Worker // 1093*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1094*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_Close(FPDF_PAGEOBJECT path); 1095*3ac0a46fSAndroid Build Coastguard Worker 1096*3ac0a46fSAndroid Build Coastguard Worker // Set the drawing mode of a path. 1097*3ac0a46fSAndroid Build Coastguard Worker // 1098*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the path object. 1099*3ac0a46fSAndroid Build Coastguard Worker // fillmode - the filling mode to be set: one of the FPDF_FILLMODE_* flags. 1100*3ac0a46fSAndroid Build Coastguard Worker // stroke - a boolean specifying if the path should be stroked or not. 1101*3ac0a46fSAndroid Build Coastguard Worker // 1102*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1103*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_SetDrawMode(FPDF_PAGEOBJECT path, 1104*3ac0a46fSAndroid Build Coastguard Worker int fillmode, 1105*3ac0a46fSAndroid Build Coastguard Worker FPDF_BOOL stroke); 1106*3ac0a46fSAndroid Build Coastguard Worker 1107*3ac0a46fSAndroid Build Coastguard Worker // Get the drawing mode of a path. 1108*3ac0a46fSAndroid Build Coastguard Worker // 1109*3ac0a46fSAndroid Build Coastguard Worker // path - the handle to the path object. 1110*3ac0a46fSAndroid Build Coastguard Worker // fillmode - the filling mode of the path: one of the FPDF_FILLMODE_* flags. 1111*3ac0a46fSAndroid Build Coastguard Worker // stroke - a boolean specifying if the path is stroked or not. 1112*3ac0a46fSAndroid Build Coastguard Worker // 1113*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1114*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFPath_GetDrawMode(FPDF_PAGEOBJECT path, 1115*3ac0a46fSAndroid Build Coastguard Worker int* fillmode, 1116*3ac0a46fSAndroid Build Coastguard Worker FPDF_BOOL* stroke); 1117*3ac0a46fSAndroid Build Coastguard Worker 1118*3ac0a46fSAndroid Build Coastguard Worker // Create a new text object using one of the standard PDF fonts. 1119*3ac0a46fSAndroid Build Coastguard Worker // 1120*3ac0a46fSAndroid Build Coastguard Worker // document - handle to the document. 1121*3ac0a46fSAndroid Build Coastguard Worker // font - string containing the font name, without spaces. 1122*3ac0a46fSAndroid Build Coastguard Worker // font_size - the font size for the new text object. 1123*3ac0a46fSAndroid Build Coastguard Worker // 1124*3ac0a46fSAndroid Build Coastguard Worker // Returns a handle to a new text object, or NULL on failure 1125*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV 1126*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_NewTextObj(FPDF_DOCUMENT document, 1127*3ac0a46fSAndroid Build Coastguard Worker FPDF_BYTESTRING font, 1128*3ac0a46fSAndroid Build Coastguard Worker float font_size); 1129*3ac0a46fSAndroid Build Coastguard Worker 1130*3ac0a46fSAndroid Build Coastguard Worker // Set the text for a text object. If it had text, it will be replaced. 1131*3ac0a46fSAndroid Build Coastguard Worker // 1132*3ac0a46fSAndroid Build Coastguard Worker // text_object - handle to the text object. 1133*3ac0a46fSAndroid Build Coastguard Worker // text - the UTF-16LE encoded string containing the text to be added. 1134*3ac0a46fSAndroid Build Coastguard Worker // 1135*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1136*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 1137*3ac0a46fSAndroid Build Coastguard Worker FPDFText_SetText(FPDF_PAGEOBJECT text_object, FPDF_WIDESTRING text); 1138*3ac0a46fSAndroid Build Coastguard Worker 1139*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1140*3ac0a46fSAndroid Build Coastguard Worker // Set the text using charcodes for a text object. If it had text, it will be 1141*3ac0a46fSAndroid Build Coastguard Worker // replaced. 1142*3ac0a46fSAndroid Build Coastguard Worker // 1143*3ac0a46fSAndroid Build Coastguard Worker // text_object - handle to the text object. 1144*3ac0a46fSAndroid Build Coastguard Worker // charcodes - pointer to an array of charcodes to be added. 1145*3ac0a46fSAndroid Build Coastguard Worker // count - number of elements in |charcodes|. 1146*3ac0a46fSAndroid Build Coastguard Worker // 1147*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success 1148*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 1149*3ac0a46fSAndroid Build Coastguard Worker FPDFText_SetCharcodes(FPDF_PAGEOBJECT text_object, 1150*3ac0a46fSAndroid Build Coastguard Worker const uint32_t* charcodes, 1151*3ac0a46fSAndroid Build Coastguard Worker size_t count); 1152*3ac0a46fSAndroid Build Coastguard Worker 1153*3ac0a46fSAndroid Build Coastguard Worker // Returns a font object loaded from a stream of data. The font is loaded 1154*3ac0a46fSAndroid Build Coastguard Worker // into the document. 1155*3ac0a46fSAndroid Build Coastguard Worker // 1156*3ac0a46fSAndroid Build Coastguard Worker // document - handle to the document. 1157*3ac0a46fSAndroid Build Coastguard Worker // data - the stream of data, which will be copied by the font object. 1158*3ac0a46fSAndroid Build Coastguard Worker // size - size of the stream, in bytes. 1159*3ac0a46fSAndroid Build Coastguard Worker // font_type - FPDF_FONT_TYPE1 or FPDF_FONT_TRUETYPE depending on the font 1160*3ac0a46fSAndroid Build Coastguard Worker // type. 1161*3ac0a46fSAndroid Build Coastguard Worker // cid - a boolean specifying if the font is a CID font or not. 1162*3ac0a46fSAndroid Build Coastguard Worker // 1163*3ac0a46fSAndroid Build Coastguard Worker // The loaded font can be closed using FPDFFont_Close. 1164*3ac0a46fSAndroid Build Coastguard Worker // 1165*3ac0a46fSAndroid Build Coastguard Worker // Returns NULL on failure 1166*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_FONT FPDF_CALLCONV FPDFText_LoadFont(FPDF_DOCUMENT document, 1167*3ac0a46fSAndroid Build Coastguard Worker const uint8_t* data, 1168*3ac0a46fSAndroid Build Coastguard Worker uint32_t size, 1169*3ac0a46fSAndroid Build Coastguard Worker int font_type, 1170*3ac0a46fSAndroid Build Coastguard Worker FPDF_BOOL cid); 1171*3ac0a46fSAndroid Build Coastguard Worker 1172*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1173*3ac0a46fSAndroid Build Coastguard Worker // Loads one of the standard 14 fonts per PDF spec 1.7 page 416. The preferred 1174*3ac0a46fSAndroid Build Coastguard Worker // way of using font style is using a dash to separate the name from the style, 1175*3ac0a46fSAndroid Build Coastguard Worker // for example 'Helvetica-BoldItalic'. 1176*3ac0a46fSAndroid Build Coastguard Worker // 1177*3ac0a46fSAndroid Build Coastguard Worker // document - handle to the document. 1178*3ac0a46fSAndroid Build Coastguard Worker // font - string containing the font name, without spaces. 1179*3ac0a46fSAndroid Build Coastguard Worker // 1180*3ac0a46fSAndroid Build Coastguard Worker // The loaded font can be closed using FPDFFont_Close. 1181*3ac0a46fSAndroid Build Coastguard Worker // 1182*3ac0a46fSAndroid Build Coastguard Worker // Returns NULL on failure. 1183*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_FONT FPDF_CALLCONV 1184*3ac0a46fSAndroid Build Coastguard Worker FPDFText_LoadStandardFont(FPDF_DOCUMENT document, FPDF_BYTESTRING font); 1185*3ac0a46fSAndroid Build Coastguard Worker 1186*3ac0a46fSAndroid Build Coastguard Worker // Get the font size of a text object. 1187*3ac0a46fSAndroid Build Coastguard Worker // 1188*3ac0a46fSAndroid Build Coastguard Worker // text - handle to a text. 1189*3ac0a46fSAndroid Build Coastguard Worker // size - pointer to the font size of the text object, measured in points 1190*3ac0a46fSAndroid Build Coastguard Worker // (about 1/72 inch) 1191*3ac0a46fSAndroid Build Coastguard Worker // 1192*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 1193*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 1194*3ac0a46fSAndroid Build Coastguard Worker FPDFTextObj_GetFontSize(FPDF_PAGEOBJECT text, float* size); 1195*3ac0a46fSAndroid Build Coastguard Worker 1196*3ac0a46fSAndroid Build Coastguard Worker // Close a loaded PDF font. 1197*3ac0a46fSAndroid Build Coastguard Worker // 1198*3ac0a46fSAndroid Build Coastguard Worker // font - Handle to the loaded font. 1199*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FPDFFont_Close(FPDF_FONT font); 1200*3ac0a46fSAndroid Build Coastguard Worker 1201*3ac0a46fSAndroid Build Coastguard Worker // Create a new text object using a loaded font. 1202*3ac0a46fSAndroid Build Coastguard Worker // 1203*3ac0a46fSAndroid Build Coastguard Worker // document - handle to the document. 1204*3ac0a46fSAndroid Build Coastguard Worker // font - handle to the font object. 1205*3ac0a46fSAndroid Build Coastguard Worker // font_size - the font size for the new text object. 1206*3ac0a46fSAndroid Build Coastguard Worker // 1207*3ac0a46fSAndroid Build Coastguard Worker // Returns a handle to a new text object, or NULL on failure 1208*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV 1209*3ac0a46fSAndroid Build Coastguard Worker FPDFPageObj_CreateTextObj(FPDF_DOCUMENT document, 1210*3ac0a46fSAndroid Build Coastguard Worker FPDF_FONT font, 1211*3ac0a46fSAndroid Build Coastguard Worker float font_size); 1212*3ac0a46fSAndroid Build Coastguard Worker 1213*3ac0a46fSAndroid Build Coastguard Worker // Get the text rendering mode of a text object. 1214*3ac0a46fSAndroid Build Coastguard Worker // 1215*3ac0a46fSAndroid Build Coastguard Worker // text - the handle to the text object. 1216*3ac0a46fSAndroid Build Coastguard Worker // 1217*3ac0a46fSAndroid Build Coastguard Worker // Returns one of the known FPDF_TEXT_RENDERMODE enum values on success, 1218*3ac0a46fSAndroid Build Coastguard Worker // FPDF_TEXTRENDERMODE_UNKNOWN on error. 1219*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_TEXT_RENDERMODE FPDF_CALLCONV 1220*3ac0a46fSAndroid Build Coastguard Worker FPDFTextObj_GetTextRenderMode(FPDF_PAGEOBJECT text); 1221*3ac0a46fSAndroid Build Coastguard Worker 1222*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1223*3ac0a46fSAndroid Build Coastguard Worker // Set the text rendering mode of a text object. 1224*3ac0a46fSAndroid Build Coastguard Worker // 1225*3ac0a46fSAndroid Build Coastguard Worker // text - the handle to the text object. 1226*3ac0a46fSAndroid Build Coastguard Worker // render_mode - the FPDF_TEXT_RENDERMODE enum value to be set (cannot set to 1227*3ac0a46fSAndroid Build Coastguard Worker // FPDF_TEXTRENDERMODE_UNKNOWN). 1228*3ac0a46fSAndroid Build Coastguard Worker // 1229*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. 1230*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV 1231*3ac0a46fSAndroid Build Coastguard Worker FPDFTextObj_SetTextRenderMode(FPDF_PAGEOBJECT text, 1232*3ac0a46fSAndroid Build Coastguard Worker FPDF_TEXT_RENDERMODE render_mode); 1233*3ac0a46fSAndroid Build Coastguard Worker 1234*3ac0a46fSAndroid Build Coastguard Worker // Get the text of a text object. 1235*3ac0a46fSAndroid Build Coastguard Worker // 1236*3ac0a46fSAndroid Build Coastguard Worker // text_object - the handle to the text object. 1237*3ac0a46fSAndroid Build Coastguard Worker // text_page - the handle to the text page. 1238*3ac0a46fSAndroid Build Coastguard Worker // buffer - the address of a buffer that receives the text. 1239*3ac0a46fSAndroid Build Coastguard Worker // length - the size, in bytes, of |buffer|. 1240*3ac0a46fSAndroid Build Coastguard Worker // 1241*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of bytes in the text (including the trailing NUL 1242*3ac0a46fSAndroid Build Coastguard Worker // character) on success, 0 on error. 1243*3ac0a46fSAndroid Build Coastguard Worker // 1244*3ac0a46fSAndroid Build Coastguard Worker // Regardless of the platform, the |buffer| is always in UTF-16LE encoding. 1245*3ac0a46fSAndroid Build Coastguard Worker // If |length| is less than the returned length, or |buffer| is NULL, |buffer| 1246*3ac0a46fSAndroid Build Coastguard Worker // will not be modified. 1247*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT unsigned long FPDF_CALLCONV 1248*3ac0a46fSAndroid Build Coastguard Worker FPDFTextObj_GetText(FPDF_PAGEOBJECT text_object, 1249*3ac0a46fSAndroid Build Coastguard Worker FPDF_TEXTPAGE text_page, 1250*3ac0a46fSAndroid Build Coastguard Worker FPDF_WCHAR* buffer, 1251*3ac0a46fSAndroid Build Coastguard Worker unsigned long length); 1252*3ac0a46fSAndroid Build Coastguard Worker 1253*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1254*3ac0a46fSAndroid Build Coastguard Worker // Get a bitmap rasterization of |text_object|. To render correctly, the caller 1255*3ac0a46fSAndroid Build Coastguard Worker // must provide the |document| associated with |text_object|. If there is a 1256*3ac0a46fSAndroid Build Coastguard Worker // |page| associated with |text_object|, the caller should provide that as well. 1257*3ac0a46fSAndroid Build Coastguard Worker // The returned bitmap will be owned by the caller, and FPDFBitmap_Destroy() 1258*3ac0a46fSAndroid Build Coastguard Worker // must be called on the returned bitmap when it is no longer needed. 1259*3ac0a46fSAndroid Build Coastguard Worker // 1260*3ac0a46fSAndroid Build Coastguard Worker // document - handle to a document associated with |text_object|. 1261*3ac0a46fSAndroid Build Coastguard Worker // page - handle to an optional page associated with |text_object|. 1262*3ac0a46fSAndroid Build Coastguard Worker // text_object - handle to a text object. 1263*3ac0a46fSAndroid Build Coastguard Worker // scale - the scaling factor, which must be greater than 0. 1264*3ac0a46fSAndroid Build Coastguard Worker // 1265*3ac0a46fSAndroid Build Coastguard Worker // Returns the bitmap or NULL on failure. 1266*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BITMAP FPDF_CALLCONV 1267*3ac0a46fSAndroid Build Coastguard Worker FPDFTextObj_GetRenderedBitmap(FPDF_DOCUMENT document, 1268*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGE page, 1269*3ac0a46fSAndroid Build Coastguard Worker FPDF_PAGEOBJECT text_object, 1270*3ac0a46fSAndroid Build Coastguard Worker float scale); 1271*3ac0a46fSAndroid Build Coastguard Worker 1272*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1273*3ac0a46fSAndroid Build Coastguard Worker // Get the font of a text object. 1274*3ac0a46fSAndroid Build Coastguard Worker // 1275*3ac0a46fSAndroid Build Coastguard Worker // text - the handle to the text object. 1276*3ac0a46fSAndroid Build Coastguard Worker // 1277*3ac0a46fSAndroid Build Coastguard Worker // Returns a handle to the font object held by |text| which retains ownership. 1278*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_FONT FPDF_CALLCONV FPDFTextObj_GetFont(FPDF_PAGEOBJECT text); 1279*3ac0a46fSAndroid Build Coastguard Worker 1280*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1281*3ac0a46fSAndroid Build Coastguard Worker // Get the font name of a font. 1282*3ac0a46fSAndroid Build Coastguard Worker // 1283*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1284*3ac0a46fSAndroid Build Coastguard Worker // buffer - the address of a buffer that receives the font name. 1285*3ac0a46fSAndroid Build Coastguard Worker // length - the size, in bytes, of |buffer|. 1286*3ac0a46fSAndroid Build Coastguard Worker // 1287*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of bytes in the font name (including the trailing NUL 1288*3ac0a46fSAndroid Build Coastguard Worker // character) on success, 0 on error. 1289*3ac0a46fSAndroid Build Coastguard Worker // 1290*3ac0a46fSAndroid Build Coastguard Worker // Regardless of the platform, the |buffer| is always in UTF-8 encoding. 1291*3ac0a46fSAndroid Build Coastguard Worker // If |length| is less than the returned length, or |buffer| is NULL, |buffer| 1292*3ac0a46fSAndroid Build Coastguard Worker // will not be modified. 1293*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT unsigned long FPDF_CALLCONV 1294*3ac0a46fSAndroid Build Coastguard Worker FPDFFont_GetFontName(FPDF_FONT font, char* buffer, unsigned long length); 1295*3ac0a46fSAndroid Build Coastguard Worker 1296*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1297*3ac0a46fSAndroid Build Coastguard Worker // Get the decoded data from the |font| object. 1298*3ac0a46fSAndroid Build Coastguard Worker // 1299*3ac0a46fSAndroid Build Coastguard Worker // font - The handle to the font object. (Required) 1300*3ac0a46fSAndroid Build Coastguard Worker // buffer - The address of a buffer that receives the font data. 1301*3ac0a46fSAndroid Build Coastguard Worker // buflen - Length of the buffer. 1302*3ac0a46fSAndroid Build Coastguard Worker // out_buflen - Pointer to variable that will receive the minimum buffer size 1303*3ac0a46fSAndroid Build Coastguard Worker // to contain the font data. Not filled if the return value is 1304*3ac0a46fSAndroid Build Coastguard Worker // FALSE. (Required) 1305*3ac0a46fSAndroid Build Coastguard Worker // 1306*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success. In which case, |out_buflen| will be filled, and 1307*3ac0a46fSAndroid Build Coastguard Worker // |buffer| will be filled if it is large enough. Returns FALSE if any of the 1308*3ac0a46fSAndroid Build Coastguard Worker // required parameters are null. 1309*3ac0a46fSAndroid Build Coastguard Worker // 1310*3ac0a46fSAndroid Build Coastguard Worker // The decoded data is the uncompressed font data. i.e. the raw font data after 1311*3ac0a46fSAndroid Build Coastguard Worker // having all stream filters applied, when the data is embedded. 1312*3ac0a46fSAndroid Build Coastguard Worker // 1313*3ac0a46fSAndroid Build Coastguard Worker // If the font is not embedded, then this API will instead return the data for 1314*3ac0a46fSAndroid Build Coastguard Worker // the substitution font it is using. 1315*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFFont_GetFontData(FPDF_FONT font, 1316*3ac0a46fSAndroid Build Coastguard Worker uint8_t* buffer, 1317*3ac0a46fSAndroid Build Coastguard Worker size_t buflen, 1318*3ac0a46fSAndroid Build Coastguard Worker size_t* out_buflen); 1319*3ac0a46fSAndroid Build Coastguard Worker 1320*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1321*3ac0a46fSAndroid Build Coastguard Worker // Get whether |font| is embedded or not. 1322*3ac0a46fSAndroid Build Coastguard Worker // 1323*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1324*3ac0a46fSAndroid Build Coastguard Worker // 1325*3ac0a46fSAndroid Build Coastguard Worker // Returns 1 if the font is embedded, 0 if it not, and -1 on failure. 1326*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFFont_GetIsEmbedded(FPDF_FONT font); 1327*3ac0a46fSAndroid Build Coastguard Worker 1328*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1329*3ac0a46fSAndroid Build Coastguard Worker // Get the descriptor flags of a font. 1330*3ac0a46fSAndroid Build Coastguard Worker // 1331*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1332*3ac0a46fSAndroid Build Coastguard Worker // 1333*3ac0a46fSAndroid Build Coastguard Worker // Returns the bit flags specifying various characteristics of the font as 1334*3ac0a46fSAndroid Build Coastguard Worker // defined in ISO 32000-1:2008, table 123, -1 on failure. 1335*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFFont_GetFlags(FPDF_FONT font); 1336*3ac0a46fSAndroid Build Coastguard Worker 1337*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1338*3ac0a46fSAndroid Build Coastguard Worker // Get the font weight of a font. 1339*3ac0a46fSAndroid Build Coastguard Worker // 1340*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1341*3ac0a46fSAndroid Build Coastguard Worker // 1342*3ac0a46fSAndroid Build Coastguard Worker // Returns the font weight, -1 on failure. 1343*3ac0a46fSAndroid Build Coastguard Worker // Typical values are 400 (normal) and 700 (bold). 1344*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV FPDFFont_GetWeight(FPDF_FONT font); 1345*3ac0a46fSAndroid Build Coastguard Worker 1346*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1347*3ac0a46fSAndroid Build Coastguard Worker // Get the italic angle of a font. 1348*3ac0a46fSAndroid Build Coastguard Worker // 1349*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1350*3ac0a46fSAndroid Build Coastguard Worker // angle - pointer where the italic angle will be stored 1351*3ac0a46fSAndroid Build Coastguard Worker // 1352*3ac0a46fSAndroid Build Coastguard Worker // The italic angle of a |font| is defined as degrees counterclockwise 1353*3ac0a46fSAndroid Build Coastguard Worker // from vertical. For a font that slopes to the right, this will be negative. 1354*3ac0a46fSAndroid Build Coastguard Worker // 1355*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success; |angle| unmodified on failure. 1356*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFFont_GetItalicAngle(FPDF_FONT font, 1357*3ac0a46fSAndroid Build Coastguard Worker int* angle); 1358*3ac0a46fSAndroid Build Coastguard Worker 1359*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1360*3ac0a46fSAndroid Build Coastguard Worker // Get ascent distance of a font. 1361*3ac0a46fSAndroid Build Coastguard Worker // 1362*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1363*3ac0a46fSAndroid Build Coastguard Worker // font_size - the size of the |font|. 1364*3ac0a46fSAndroid Build Coastguard Worker // ascent - pointer where the font ascent will be stored 1365*3ac0a46fSAndroid Build Coastguard Worker // 1366*3ac0a46fSAndroid Build Coastguard Worker // Ascent is the maximum distance in points above the baseline reached by the 1367*3ac0a46fSAndroid Build Coastguard Worker // glyphs of the |font|. One point is 1/72 inch (around 0.3528 mm). 1368*3ac0a46fSAndroid Build Coastguard Worker // 1369*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success; |ascent| unmodified on failure. 1370*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFFont_GetAscent(FPDF_FONT font, 1371*3ac0a46fSAndroid Build Coastguard Worker float font_size, 1372*3ac0a46fSAndroid Build Coastguard Worker float* ascent); 1373*3ac0a46fSAndroid Build Coastguard Worker 1374*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1375*3ac0a46fSAndroid Build Coastguard Worker // Get descent distance of a font. 1376*3ac0a46fSAndroid Build Coastguard Worker // 1377*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1378*3ac0a46fSAndroid Build Coastguard Worker // font_size - the size of the |font|. 1379*3ac0a46fSAndroid Build Coastguard Worker // descent - pointer where the font descent will be stored 1380*3ac0a46fSAndroid Build Coastguard Worker // 1381*3ac0a46fSAndroid Build Coastguard Worker // Descent is the maximum distance in points below the baseline reached by the 1382*3ac0a46fSAndroid Build Coastguard Worker // glyphs of the |font|. One point is 1/72 inch (around 0.3528 mm). 1383*3ac0a46fSAndroid Build Coastguard Worker // 1384*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success; |descent| unmodified on failure. 1385*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFFont_GetDescent(FPDF_FONT font, 1386*3ac0a46fSAndroid Build Coastguard Worker float font_size, 1387*3ac0a46fSAndroid Build Coastguard Worker float* descent); 1388*3ac0a46fSAndroid Build Coastguard Worker 1389*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1390*3ac0a46fSAndroid Build Coastguard Worker // Get the width of a glyph in a font. 1391*3ac0a46fSAndroid Build Coastguard Worker // 1392*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1393*3ac0a46fSAndroid Build Coastguard Worker // glyph - the glyph. 1394*3ac0a46fSAndroid Build Coastguard Worker // font_size - the size of the font. 1395*3ac0a46fSAndroid Build Coastguard Worker // width - pointer where the glyph width will be stored 1396*3ac0a46fSAndroid Build Coastguard Worker // 1397*3ac0a46fSAndroid Build Coastguard Worker // Glyph width is the distance from the end of the prior glyph to the next 1398*3ac0a46fSAndroid Build Coastguard Worker // glyph. This will be the vertical distance for vertical writing. 1399*3ac0a46fSAndroid Build Coastguard Worker // 1400*3ac0a46fSAndroid Build Coastguard Worker // Returns TRUE on success; |width| unmodified on failure. 1401*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_BOOL FPDF_CALLCONV FPDFFont_GetGlyphWidth(FPDF_FONT font, 1402*3ac0a46fSAndroid Build Coastguard Worker uint32_t glyph, 1403*3ac0a46fSAndroid Build Coastguard Worker float font_size, 1404*3ac0a46fSAndroid Build Coastguard Worker float* width); 1405*3ac0a46fSAndroid Build Coastguard Worker 1406*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1407*3ac0a46fSAndroid Build Coastguard Worker // Get the glyphpath describing how to draw a font glyph. 1408*3ac0a46fSAndroid Build Coastguard Worker // 1409*3ac0a46fSAndroid Build Coastguard Worker // font - the handle to the font object. 1410*3ac0a46fSAndroid Build Coastguard Worker // glyph - the glyph being drawn. 1411*3ac0a46fSAndroid Build Coastguard Worker // font_size - the size of the font. 1412*3ac0a46fSAndroid Build Coastguard Worker // 1413*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the segment, or NULL on faiure. 1414*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_GLYPHPATH FPDF_CALLCONV FPDFFont_GetGlyphPath(FPDF_FONT font, 1415*3ac0a46fSAndroid Build Coastguard Worker uint32_t glyph, 1416*3ac0a46fSAndroid Build Coastguard Worker float font_size); 1417*3ac0a46fSAndroid Build Coastguard Worker 1418*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1419*3ac0a46fSAndroid Build Coastguard Worker // Get number of segments inside glyphpath. 1420*3ac0a46fSAndroid Build Coastguard Worker // 1421*3ac0a46fSAndroid Build Coastguard Worker // glyphpath - handle to a glyph path. 1422*3ac0a46fSAndroid Build Coastguard Worker // 1423*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of objects in |glyphpath| or -1 on failure. 1424*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 1425*3ac0a46fSAndroid Build Coastguard Worker FPDFGlyphPath_CountGlyphSegments(FPDF_GLYPHPATH glyphpath); 1426*3ac0a46fSAndroid Build Coastguard Worker 1427*3ac0a46fSAndroid Build Coastguard Worker // Experimental API. 1428*3ac0a46fSAndroid Build Coastguard Worker // Get segment in glyphpath at index. 1429*3ac0a46fSAndroid Build Coastguard Worker // 1430*3ac0a46fSAndroid Build Coastguard Worker // glyphpath - handle to a glyph path. 1431*3ac0a46fSAndroid Build Coastguard Worker // index - the index of a segment. 1432*3ac0a46fSAndroid Build Coastguard Worker // 1433*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the segment, or NULL on faiure. 1434*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PATHSEGMENT FPDF_CALLCONV 1435*3ac0a46fSAndroid Build Coastguard Worker FPDFGlyphPath_GetGlyphPathSegment(FPDF_GLYPHPATH glyphpath, int index); 1436*3ac0a46fSAndroid Build Coastguard Worker 1437*3ac0a46fSAndroid Build Coastguard Worker // Get number of page objects inside |form_object|. 1438*3ac0a46fSAndroid Build Coastguard Worker // 1439*3ac0a46fSAndroid Build Coastguard Worker // form_object - handle to a form object. 1440*3ac0a46fSAndroid Build Coastguard Worker // 1441*3ac0a46fSAndroid Build Coastguard Worker // Returns the number of objects in |form_object| on success, -1 on error. 1442*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT int FPDF_CALLCONV 1443*3ac0a46fSAndroid Build Coastguard Worker FPDFFormObj_CountObjects(FPDF_PAGEOBJECT form_object); 1444*3ac0a46fSAndroid Build Coastguard Worker 1445*3ac0a46fSAndroid Build Coastguard Worker // Get page object in |form_object| at |index|. 1446*3ac0a46fSAndroid Build Coastguard Worker // 1447*3ac0a46fSAndroid Build Coastguard Worker // form_object - handle to a form object. 1448*3ac0a46fSAndroid Build Coastguard Worker // index - the 0-based index of a page object. 1449*3ac0a46fSAndroid Build Coastguard Worker // 1450*3ac0a46fSAndroid Build Coastguard Worker // Returns the handle to the page object, or NULL on error. 1451*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_PAGEOBJECT FPDF_CALLCONV 1452*3ac0a46fSAndroid Build Coastguard Worker FPDFFormObj_GetObject(FPDF_PAGEOBJECT form_object, unsigned long index); 1453*3ac0a46fSAndroid Build Coastguard Worker 1454*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 1455*3ac0a46fSAndroid Build Coastguard Worker } // extern "C" 1456*3ac0a46fSAndroid Build Coastguard Worker #endif // __cplusplus 1457*3ac0a46fSAndroid Build Coastguard Worker 1458*3ac0a46fSAndroid Build Coastguard Worker #endif // PUBLIC_FPDF_EDIT_H_ 1459