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_SYSFONTINFO_H_ 8*3ac0a46fSAndroid Build Coastguard Worker #define PUBLIC_FPDF_SYSFONTINFO_H_ 9*3ac0a46fSAndroid Build Coastguard Worker 10*3ac0a46fSAndroid Build Coastguard Worker // clang-format off 11*3ac0a46fSAndroid Build Coastguard Worker // NOLINTNEXTLINE(build/include) 12*3ac0a46fSAndroid Build Coastguard Worker #include "fpdfview.h" 13*3ac0a46fSAndroid Build Coastguard Worker 14*3ac0a46fSAndroid Build Coastguard Worker /* Character sets for the font */ 15*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_ANSI_CHARSET 0 16*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_DEFAULT_CHARSET 1 17*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_SYMBOL_CHARSET 2 18*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_SHIFTJIS_CHARSET 128 19*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_HANGEUL_CHARSET 129 20*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_GB2312_CHARSET 134 21*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_CHINESEBIG5_CHARSET 136 22*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_GREEK_CHARSET 161 23*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_VIETNAMESE_CHARSET 163 24*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_HEBREW_CHARSET 177 25*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_ARABIC_CHARSET 178 26*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_CYRILLIC_CHARSET 204 27*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_THAI_CHARSET 222 28*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_EASTERNEUROPEAN_CHARSET 238 29*3ac0a46fSAndroid Build Coastguard Worker 30*3ac0a46fSAndroid Build Coastguard Worker /* Font pitch and family flags */ 31*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_FF_FIXEDPITCH (1 << 0) 32*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_FF_ROMAN (1 << 4) 33*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_FF_SCRIPT (4 << 4) 34*3ac0a46fSAndroid Build Coastguard Worker 35*3ac0a46fSAndroid Build Coastguard Worker /* Typical weight values */ 36*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_FW_NORMAL 400 37*3ac0a46fSAndroid Build Coastguard Worker #define FXFONT_FW_BOLD 700 38*3ac0a46fSAndroid Build Coastguard Worker 39*3ac0a46fSAndroid Build Coastguard Worker // Exported Functions 40*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 41*3ac0a46fSAndroid Build Coastguard Worker extern "C" { 42*3ac0a46fSAndroid Build Coastguard Worker #endif 43*3ac0a46fSAndroid Build Coastguard Worker 44*3ac0a46fSAndroid Build Coastguard Worker /* 45*3ac0a46fSAndroid Build Coastguard Worker * Interface: FPDF_SYSFONTINFO 46*3ac0a46fSAndroid Build Coastguard Worker * Interface for getting system font information and font mapping 47*3ac0a46fSAndroid Build Coastguard Worker */ 48*3ac0a46fSAndroid Build Coastguard Worker typedef struct _FPDF_SYSFONTINFO { 49*3ac0a46fSAndroid Build Coastguard Worker /* 50*3ac0a46fSAndroid Build Coastguard Worker * Version number of the interface. Currently must be 1. 51*3ac0a46fSAndroid Build Coastguard Worker */ 52*3ac0a46fSAndroid Build Coastguard Worker int version; 53*3ac0a46fSAndroid Build Coastguard Worker 54*3ac0a46fSAndroid Build Coastguard Worker /* 55*3ac0a46fSAndroid Build Coastguard Worker * Method: Release 56*3ac0a46fSAndroid Build Coastguard Worker * Give implementation a chance to release any data after the 57*3ac0a46fSAndroid Build Coastguard Worker * interface is no longer used. 58*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 59*3ac0a46fSAndroid Build Coastguard Worker * 1 60*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 61*3ac0a46fSAndroid Build Coastguard Worker * No 62*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 63*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 64*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 65*3ac0a46fSAndroid Build Coastguard Worker * None 66*3ac0a46fSAndroid Build Coastguard Worker * Comments: 67*3ac0a46fSAndroid Build Coastguard Worker * Called by PDFium during the final cleanup process. 68*3ac0a46fSAndroid Build Coastguard Worker */ 69*3ac0a46fSAndroid Build Coastguard Worker void (*Release)(struct _FPDF_SYSFONTINFO* pThis); 70*3ac0a46fSAndroid Build Coastguard Worker 71*3ac0a46fSAndroid Build Coastguard Worker /* 72*3ac0a46fSAndroid Build Coastguard Worker * Method: EnumFonts 73*3ac0a46fSAndroid Build Coastguard Worker * Enumerate all fonts installed on the system 74*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 75*3ac0a46fSAndroid Build Coastguard Worker * 1 76*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 77*3ac0a46fSAndroid Build Coastguard Worker * No 78*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 79*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 80*3ac0a46fSAndroid Build Coastguard Worker * pMapper - An opaque pointer to internal font mapper, used 81*3ac0a46fSAndroid Build Coastguard Worker * when calling FPDF_AddInstalledFont(). 82*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 83*3ac0a46fSAndroid Build Coastguard Worker * None 84*3ac0a46fSAndroid Build Coastguard Worker * Comments: 85*3ac0a46fSAndroid Build Coastguard Worker * Implementations should call FPDF_AddIntalledFont() function for 86*3ac0a46fSAndroid Build Coastguard Worker * each font found. Only TrueType/OpenType and Type1 fonts are accepted 87*3ac0a46fSAndroid Build Coastguard Worker * by PDFium. 88*3ac0a46fSAndroid Build Coastguard Worker */ 89*3ac0a46fSAndroid Build Coastguard Worker void (*EnumFonts)(struct _FPDF_SYSFONTINFO* pThis, void* pMapper); 90*3ac0a46fSAndroid Build Coastguard Worker 91*3ac0a46fSAndroid Build Coastguard Worker /* 92*3ac0a46fSAndroid Build Coastguard Worker * Method: MapFont 93*3ac0a46fSAndroid Build Coastguard Worker * Use the system font mapper to get a font handle from requested 94*3ac0a46fSAndroid Build Coastguard Worker * parameters. 95*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 96*3ac0a46fSAndroid Build Coastguard Worker * 1 97*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 98*3ac0a46fSAndroid Build Coastguard Worker * Required if GetFont method is not implemented. 99*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 100*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 101*3ac0a46fSAndroid Build Coastguard Worker * weight - Weight of the requested font. 400 is normal and 102*3ac0a46fSAndroid Build Coastguard Worker * 700 is bold. 103*3ac0a46fSAndroid Build Coastguard Worker * bItalic - Italic option of the requested font, TRUE or 104*3ac0a46fSAndroid Build Coastguard Worker * FALSE. 105*3ac0a46fSAndroid Build Coastguard Worker * charset - Character set identifier for the requested font. 106*3ac0a46fSAndroid Build Coastguard Worker * See above defined constants. 107*3ac0a46fSAndroid Build Coastguard Worker * pitch_family - A combination of flags. See above defined 108*3ac0a46fSAndroid Build Coastguard Worker * constants. 109*3ac0a46fSAndroid Build Coastguard Worker * face - Typeface name. Currently use system local encoding 110*3ac0a46fSAndroid Build Coastguard Worker * only. 111*3ac0a46fSAndroid Build Coastguard Worker * bExact - Obsolete: this parameter is now ignored. 112*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 113*3ac0a46fSAndroid Build Coastguard Worker * An opaque pointer for font handle, or NULL if system mapping is 114*3ac0a46fSAndroid Build Coastguard Worker * not supported. 115*3ac0a46fSAndroid Build Coastguard Worker * Comments: 116*3ac0a46fSAndroid Build Coastguard Worker * If the system supports native font mapper (like Windows), 117*3ac0a46fSAndroid Build Coastguard Worker * implementation can implement this method to get a font handle. 118*3ac0a46fSAndroid Build Coastguard Worker * Otherwise, PDFium will do the mapping and then call GetFont 119*3ac0a46fSAndroid Build Coastguard Worker * method. Only TrueType/OpenType and Type1 fonts are accepted 120*3ac0a46fSAndroid Build Coastguard Worker * by PDFium. 121*3ac0a46fSAndroid Build Coastguard Worker */ 122*3ac0a46fSAndroid Build Coastguard Worker void* (*MapFont)(struct _FPDF_SYSFONTINFO* pThis, 123*3ac0a46fSAndroid Build Coastguard Worker int weight, 124*3ac0a46fSAndroid Build Coastguard Worker FPDF_BOOL bItalic, 125*3ac0a46fSAndroid Build Coastguard Worker int charset, 126*3ac0a46fSAndroid Build Coastguard Worker int pitch_family, 127*3ac0a46fSAndroid Build Coastguard Worker const char* face, 128*3ac0a46fSAndroid Build Coastguard Worker FPDF_BOOL* bExact); 129*3ac0a46fSAndroid Build Coastguard Worker 130*3ac0a46fSAndroid Build Coastguard Worker /* 131*3ac0a46fSAndroid Build Coastguard Worker * Method: GetFont 132*3ac0a46fSAndroid Build Coastguard Worker * Get a handle to a particular font by its internal ID 133*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 134*3ac0a46fSAndroid Build Coastguard Worker * 1 135*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 136*3ac0a46fSAndroid Build Coastguard Worker * Required if MapFont method is not implemented. 137*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 138*3ac0a46fSAndroid Build Coastguard Worker * An opaque pointer for font handle. 139*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 140*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 141*3ac0a46fSAndroid Build Coastguard Worker * face - Typeface name in system local encoding. 142*3ac0a46fSAndroid Build Coastguard Worker * Comments: 143*3ac0a46fSAndroid Build Coastguard Worker * If the system mapping not supported, PDFium will do the font 144*3ac0a46fSAndroid Build Coastguard Worker * mapping and use this method to get a font handle. 145*3ac0a46fSAndroid Build Coastguard Worker */ 146*3ac0a46fSAndroid Build Coastguard Worker void* (*GetFont)(struct _FPDF_SYSFONTINFO* pThis, const char* face); 147*3ac0a46fSAndroid Build Coastguard Worker 148*3ac0a46fSAndroid Build Coastguard Worker /* 149*3ac0a46fSAndroid Build Coastguard Worker * Method: GetFontData 150*3ac0a46fSAndroid Build Coastguard Worker * Get font data from a font 151*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 152*3ac0a46fSAndroid Build Coastguard Worker * 1 153*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 154*3ac0a46fSAndroid Build Coastguard Worker * Yes 155*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 156*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 157*3ac0a46fSAndroid Build Coastguard Worker * hFont - Font handle returned by MapFont or GetFont method 158*3ac0a46fSAndroid Build Coastguard Worker * table - TrueType/OpenType table identifier (refer to 159*3ac0a46fSAndroid Build Coastguard Worker * TrueType specification), or 0 for the whole file. 160*3ac0a46fSAndroid Build Coastguard Worker * buffer - The buffer receiving the font data. Can be NULL if 161*3ac0a46fSAndroid Build Coastguard Worker * not provided. 162*3ac0a46fSAndroid Build Coastguard Worker * buf_size - Buffer size, can be zero if not provided. 163*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 164*3ac0a46fSAndroid Build Coastguard Worker * Number of bytes needed, if buffer not provided or not large 165*3ac0a46fSAndroid Build Coastguard Worker * enough, or number of bytes written into buffer otherwise. 166*3ac0a46fSAndroid Build Coastguard Worker * Comments: 167*3ac0a46fSAndroid Build Coastguard Worker * Can read either the full font file, or a particular 168*3ac0a46fSAndroid Build Coastguard Worker * TrueType/OpenType table. 169*3ac0a46fSAndroid Build Coastguard Worker */ 170*3ac0a46fSAndroid Build Coastguard Worker unsigned long (*GetFontData)(struct _FPDF_SYSFONTINFO* pThis, 171*3ac0a46fSAndroid Build Coastguard Worker void* hFont, 172*3ac0a46fSAndroid Build Coastguard Worker unsigned int table, 173*3ac0a46fSAndroid Build Coastguard Worker unsigned char* buffer, 174*3ac0a46fSAndroid Build Coastguard Worker unsigned long buf_size); 175*3ac0a46fSAndroid Build Coastguard Worker 176*3ac0a46fSAndroid Build Coastguard Worker /* 177*3ac0a46fSAndroid Build Coastguard Worker * Method: GetFaceName 178*3ac0a46fSAndroid Build Coastguard Worker * Get face name from a font handle 179*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 180*3ac0a46fSAndroid Build Coastguard Worker * 1 181*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 182*3ac0a46fSAndroid Build Coastguard Worker * No 183*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 184*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 185*3ac0a46fSAndroid Build Coastguard Worker * hFont - Font handle returned by MapFont or GetFont method 186*3ac0a46fSAndroid Build Coastguard Worker * buffer - The buffer receiving the face name. Can be NULL if 187*3ac0a46fSAndroid Build Coastguard Worker * not provided 188*3ac0a46fSAndroid Build Coastguard Worker * buf_size - Buffer size, can be zero if not provided 189*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 190*3ac0a46fSAndroid Build Coastguard Worker * Number of bytes needed, if buffer not provided or not large 191*3ac0a46fSAndroid Build Coastguard Worker * enough, or number of bytes written into buffer otherwise. 192*3ac0a46fSAndroid Build Coastguard Worker */ 193*3ac0a46fSAndroid Build Coastguard Worker unsigned long (*GetFaceName)(struct _FPDF_SYSFONTINFO* pThis, 194*3ac0a46fSAndroid Build Coastguard Worker void* hFont, 195*3ac0a46fSAndroid Build Coastguard Worker char* buffer, 196*3ac0a46fSAndroid Build Coastguard Worker unsigned long buf_size); 197*3ac0a46fSAndroid Build Coastguard Worker 198*3ac0a46fSAndroid Build Coastguard Worker /* 199*3ac0a46fSAndroid Build Coastguard Worker * Method: GetFontCharset 200*3ac0a46fSAndroid Build Coastguard Worker * Get character set information for a font handle 201*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 202*3ac0a46fSAndroid Build Coastguard Worker * 1 203*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 204*3ac0a46fSAndroid Build Coastguard Worker * No 205*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 206*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 207*3ac0a46fSAndroid Build Coastguard Worker * hFont - Font handle returned by MapFont or GetFont method 208*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 209*3ac0a46fSAndroid Build Coastguard Worker * Character set identifier. See defined constants above. 210*3ac0a46fSAndroid Build Coastguard Worker */ 211*3ac0a46fSAndroid Build Coastguard Worker int (*GetFontCharset)(struct _FPDF_SYSFONTINFO* pThis, void* hFont); 212*3ac0a46fSAndroid Build Coastguard Worker 213*3ac0a46fSAndroid Build Coastguard Worker /* 214*3ac0a46fSAndroid Build Coastguard Worker * Method: DeleteFont 215*3ac0a46fSAndroid Build Coastguard Worker * Delete a font handle 216*3ac0a46fSAndroid Build Coastguard Worker * Interface Version: 217*3ac0a46fSAndroid Build Coastguard Worker * 1 218*3ac0a46fSAndroid Build Coastguard Worker * Implementation Required: 219*3ac0a46fSAndroid Build Coastguard Worker * Yes 220*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 221*3ac0a46fSAndroid Build Coastguard Worker * pThis - Pointer to the interface structure itself 222*3ac0a46fSAndroid Build Coastguard Worker * hFont - Font handle returned by MapFont or GetFont method 223*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 224*3ac0a46fSAndroid Build Coastguard Worker * None 225*3ac0a46fSAndroid Build Coastguard Worker */ 226*3ac0a46fSAndroid Build Coastguard Worker void (*DeleteFont)(struct _FPDF_SYSFONTINFO* pThis, void* hFont); 227*3ac0a46fSAndroid Build Coastguard Worker } FPDF_SYSFONTINFO; 228*3ac0a46fSAndroid Build Coastguard Worker 229*3ac0a46fSAndroid Build Coastguard Worker /* 230*3ac0a46fSAndroid Build Coastguard Worker * Struct: FPDF_CharsetFontMap 231*3ac0a46fSAndroid Build Coastguard Worker * Provides the name of a font to use for a given charset value. 232*3ac0a46fSAndroid Build Coastguard Worker */ 233*3ac0a46fSAndroid Build Coastguard Worker typedef struct FPDF_CharsetFontMap_ { 234*3ac0a46fSAndroid Build Coastguard Worker int charset; // Character Set Enum value, see FXFONT_*_CHARSET above. 235*3ac0a46fSAndroid Build Coastguard Worker const char* fontname; // Name of default font to use with that charset. 236*3ac0a46fSAndroid Build Coastguard Worker } FPDF_CharsetFontMap; 237*3ac0a46fSAndroid Build Coastguard Worker 238*3ac0a46fSAndroid Build Coastguard Worker /* 239*3ac0a46fSAndroid Build Coastguard Worker * Function: FPDF_GetDefaultTTFMap 240*3ac0a46fSAndroid Build Coastguard Worker * Returns a pointer to the default character set to TT Font name map. The 241*3ac0a46fSAndroid Build Coastguard Worker * map is an array of FPDF_CharsetFontMap structs, with its end indicated 242*3ac0a46fSAndroid Build Coastguard Worker * by a { -1, NULL } entry. 243*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 244*3ac0a46fSAndroid Build Coastguard Worker * None. 245*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 246*3ac0a46fSAndroid Build Coastguard Worker * Pointer to the Charset Font Map. 247*3ac0a46fSAndroid Build Coastguard Worker */ 248*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT const FPDF_CharsetFontMap* FPDF_CALLCONV FPDF_GetDefaultTTFMap(); 249*3ac0a46fSAndroid Build Coastguard Worker 250*3ac0a46fSAndroid Build Coastguard Worker /* 251*3ac0a46fSAndroid Build Coastguard Worker * Function: FPDF_AddInstalledFont 252*3ac0a46fSAndroid Build Coastguard Worker * Add a system font to the list in PDFium. 253*3ac0a46fSAndroid Build Coastguard Worker * Comments: 254*3ac0a46fSAndroid Build Coastguard Worker * This function is only called during the system font list building 255*3ac0a46fSAndroid Build Coastguard Worker * process. 256*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 257*3ac0a46fSAndroid Build Coastguard Worker * mapper - Opaque pointer to Foxit font mapper 258*3ac0a46fSAndroid Build Coastguard Worker * face - The font face name 259*3ac0a46fSAndroid Build Coastguard Worker * charset - Font character set. See above defined constants. 260*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 261*3ac0a46fSAndroid Build Coastguard Worker * None. 262*3ac0a46fSAndroid Build Coastguard Worker */ 263*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV FPDF_AddInstalledFont(void* mapper, 264*3ac0a46fSAndroid Build Coastguard Worker const char* face, 265*3ac0a46fSAndroid Build Coastguard Worker int charset); 266*3ac0a46fSAndroid Build Coastguard Worker 267*3ac0a46fSAndroid Build Coastguard Worker /* 268*3ac0a46fSAndroid Build Coastguard Worker * Function: FPDF_SetSystemFontInfo 269*3ac0a46fSAndroid Build Coastguard Worker * Set the system font info interface into PDFium 270*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 271*3ac0a46fSAndroid Build Coastguard Worker * pFontInfo - Pointer to a FPDF_SYSFONTINFO structure 272*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 273*3ac0a46fSAndroid Build Coastguard Worker * None 274*3ac0a46fSAndroid Build Coastguard Worker * Comments: 275*3ac0a46fSAndroid Build Coastguard Worker * Platform support implementation should implement required methods of 276*3ac0a46fSAndroid Build Coastguard Worker * FFDF_SYSFONTINFO interface, then call this function during PDFium 277*3ac0a46fSAndroid Build Coastguard Worker * initialization process. 278*3ac0a46fSAndroid Build Coastguard Worker */ 279*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV 280*3ac0a46fSAndroid Build Coastguard Worker FPDF_SetSystemFontInfo(FPDF_SYSFONTINFO* pFontInfo); 281*3ac0a46fSAndroid Build Coastguard Worker 282*3ac0a46fSAndroid Build Coastguard Worker /* 283*3ac0a46fSAndroid Build Coastguard Worker * Function: FPDF_GetDefaultSystemFontInfo 284*3ac0a46fSAndroid Build Coastguard Worker * Get default system font info interface for current platform 285*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 286*3ac0a46fSAndroid Build Coastguard Worker * None 287*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 288*3ac0a46fSAndroid Build Coastguard Worker * Pointer to a FPDF_SYSFONTINFO structure describing the default 289*3ac0a46fSAndroid Build Coastguard Worker * interface, or NULL if the platform doesn't have a default interface. 290*3ac0a46fSAndroid Build Coastguard Worker * Application should call FPDF_FreeDefaultSystemFontInfo to free the 291*3ac0a46fSAndroid Build Coastguard Worker * returned pointer. 292*3ac0a46fSAndroid Build Coastguard Worker * Comments: 293*3ac0a46fSAndroid Build Coastguard Worker * For some platforms, PDFium implements a default version of system 294*3ac0a46fSAndroid Build Coastguard Worker * font info interface. The default implementation can be passed to 295*3ac0a46fSAndroid Build Coastguard Worker * FPDF_SetSystemFontInfo(). 296*3ac0a46fSAndroid Build Coastguard Worker */ 297*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT FPDF_SYSFONTINFO* FPDF_CALLCONV FPDF_GetDefaultSystemFontInfo(); 298*3ac0a46fSAndroid Build Coastguard Worker 299*3ac0a46fSAndroid Build Coastguard Worker /* 300*3ac0a46fSAndroid Build Coastguard Worker * Function: FPDF_FreeDefaultSystemFontInfo 301*3ac0a46fSAndroid Build Coastguard Worker * Free a default system font info interface 302*3ac0a46fSAndroid Build Coastguard Worker * Parameters: 303*3ac0a46fSAndroid Build Coastguard Worker * pFontInfo - Pointer to a FPDF_SYSFONTINFO structure 304*3ac0a46fSAndroid Build Coastguard Worker * Return Value: 305*3ac0a46fSAndroid Build Coastguard Worker * None 306*3ac0a46fSAndroid Build Coastguard Worker * Comments: 307*3ac0a46fSAndroid Build Coastguard Worker * This function should be called on the output from 308*3ac0a46fSAndroid Build Coastguard Worker * FPDF_SetSystemFontInfo() once it is no longer needed. 309*3ac0a46fSAndroid Build Coastguard Worker */ 310*3ac0a46fSAndroid Build Coastguard Worker FPDF_EXPORT void FPDF_CALLCONV 311*3ac0a46fSAndroid Build Coastguard Worker FPDF_FreeDefaultSystemFontInfo(FPDF_SYSFONTINFO* pFontInfo); 312*3ac0a46fSAndroid Build Coastguard Worker 313*3ac0a46fSAndroid Build Coastguard Worker #ifdef __cplusplus 314*3ac0a46fSAndroid Build Coastguard Worker } 315*3ac0a46fSAndroid Build Coastguard Worker #endif 316*3ac0a46fSAndroid Build Coastguard Worker 317*3ac0a46fSAndroid Build Coastguard Worker #endif // PUBLIC_FPDF_SYSFONTINFO_H_ 318