* src/cff/cffobjs.c (cff_face_init): Better handling of Type0 fonts.

This issue relates to the PDF specification and its usage of CFF-based
embedded Type0 fonts.  For Type0 fonts containing CID-keyed descendant
CFF-based fonts, the glyph index is the CID present in the content stream.
As a result, there is no requirement for a 'cmap' table to be present in the
font since the glyph indices are derived directly from the CIDs.  FreeType
throws an error when it doesn’t find a 'cmap' table for such an Open Type
font containing CFF outlines.  This commit relaxes this requirement for a
'cmap' table for such fonts.
This commit is contained in:
Honnesh Ramachandra 2024-11-06 06:28:41 +01:00 committed by Werner Lemberg
parent 0ae7e60737
commit 3f3e3de34e
1 changed files with 7 additions and 7 deletions

View File

@ -550,13 +550,13 @@
if ( error )
goto Exit;
}
else
{
/* load the `cmap' table explicitly */
error = sfnt->load_cmap( face, stream );
if ( error )
goto Exit;
}
/* load the `cmap' table explicitly */
error = sfnt->load_cmap( face, stream );
/* this may fail because CID-keyed fonts don't have a cmap */
if ( FT_ERR_NEQ( error, Table_Missing ) && FT_ERR_NEQ( error, Ok ) )
goto Exit;
/* now load the CFF part of the file; */
/* give priority to CFF2 */