xref: /aosp_15_r20/external/pdfium/public/fpdf_sysfontinfo.h (revision 3ac0a46f773bac49fa9476ec2b1cf3f8da5ec3a4)
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