Top | ![]() |
![]() |
![]() |
![]() |
Subsetting reduces the codepoint coverage of font files and removes all data that is no longer needed. A subset input describes the desired subset. The input is provided along with a font to the subsetting operation. Output is a new font file containing only the data specified in the input.
Currently most outline and bitmap tables are supported: glyf, CFF, CFF2, sbix, COLR, and CBDT/CBLC. This also includes fonts with variable outlines via OpenType variations. Notably EBDT/EBLC and SVG are not supported. Layout subsetting is supported only for OpenType Layout tables (GSUB, GPOS, GDEF). Notably subsetting of graphite or AAT tables is not yet supported.
Fonts with graphite or AAT tables may still be subsetted but will likely need to use the retain glyph ids option and configure the subset to pass through the layout tables untouched.
hb_subset_input_t *
hb_subset_input_create_or_fail (void
);
Creates a new subset input object.
New subset input, or NULL
if failed. Destroy
with hb_subset_input_destroy()
.
[transfer full]
Since: 1.8.0
hb_subset_input_t *
hb_subset_input_reference (hb_subset_input_t *input
);
Increases the reference count on input
.
[skip]
Since: 1.8.0
void
hb_subset_input_destroy (hb_subset_input_t *input
);
Decreases the reference count on input
, and if it reaches zero, destroys
input
, freeing all memory.
Since: 1.8.0
hb_bool_t hb_subset_input_set_user_data (hb_subset_input_t *input
,hb_user_data_key_t *key
,void *data
,hb_destroy_func_t destroy
,hb_bool_t replace
);
Attaches a user-data key/data pair to the given subset input object.
[skip]
input |
a hb_subset_input_t object. |
|
key |
The user-data key to set |
|
data |
A pointer to the user data |
|
destroy |
A callback to call when |
[nullable] |
replace |
Whether to replace an existing data with the same key |
Since: 2.9.0
void * hb_subset_input_get_user_data (const hb_subset_input_t *input
,hb_user_data_key_t *key
);
Fetches the user data associated with the specified key, attached to the specified subset input object.
[skip]
Since: 2.9.0
hb_set_t *
hb_subset_input_unicode_set (hb_subset_input_t *input
);
Gets the set of Unicode code points to retain, the caller should modify the set as needed.
Since: 1.8.0
hb_set_t *
hb_subset_input_glyph_set (hb_subset_input_t *input
);
Gets the set of glyph IDs to retain, the caller should modify the set as needed.
Since: 1.8.0
hb_set_t *
hb_subset_input_nameid_set (hb_subset_input_t *input
);
Gets the set of name table name IDs to retain, the caller should modify the set as needed.
Since: 2.9.0
hb_set_t *
hb_subset_input_namelangid_set (hb_subset_input_t *input
);
Gets the set of name table language IDs to retain, the caller should modify the set as needed.
Since: 2.9.0
hb_set_t *
hb_subset_input_layout_features_set (hb_subset_input_t *input
);
Gets the set of layout feature tags to retain, the caller should modify the set as needed.
Since: 2.9.0
hb_set_t *
hb_subset_input_no_subset_tables_set (hb_subset_input_t *input
);
Gets the set of table tags which specifies tables that should not be subsetted, the caller should modify the set as needed.
Since: 2.9.0
hb_set_t *
hb_subset_input_drop_tables_set (hb_subset_input_t *input
);
Gets the set of table tags to drop, the caller should modify the set as needed.
Since: 2.9.0
hb_subset_flags_t
hb_subset_input_get_flags (hb_subset_input_t *input
);
Gets all of the subsetting flags in the input object.
Since: 2.9.0
void hb_subset_input_set_flags (hb_subset_input_t *input
,unsigned value
);
Sets all of the flags in the input object to the values specified by the bit field.
Since: 2.9.0
hb_face_t * hb_subset_or_fail (hb_face_t *source
,const hb_subset_input_t *input
);
Subsets a font according to provided input. Returns nullptr if the subset operation fails.
Since: 2.9.0
List of boolean properties that can be configured on the subset input.
all flags at their default value of false. |
||
If set hinting instructions will be dropped in the produced subset. Otherwise hinting instructions will be retained. |
||
If set glyph indices will not be modified in the produced subset. If glyphs are dropped their indices will be retained as an empty glyph. |
||
If set and subsetting a CFF font the subsetter will attempt to remove subroutines from the CFF glyphs. |
||
If set non-unicode name records will be retained in the subset. |
||
If set the subsetter will set the OVERLAP_SIMPLE flag on each simple glyph. |
||
If set the subsetter will not drop unrecognized tables and instead pass them through untouched. |
||
If set the notdef glyph outline will be retained in the final subset. |
||
If set the PS glyph names will be retained in the final subset. |
||
If set then the unicode ranges in OS/2 will not be recalculated. |
Since: 2.9.0