@@ -36,6 +36,7 @@ internal class PdfFontResource : PdfResource
3636 internal int fontWidthObjectNumber = - 1 ;
3737 internal int cidSetObjectNumber = - 1 ;
3838 internal OpenTypeFont fontData ;
39+ private OpenTypeFontEngine _fontEngine ;
3940 private int firstChar = 32 ;
4041 private int lastChar = 255 ;
4142 private CIDSystemInfo cidSystemInfo = null ;
@@ -55,13 +56,14 @@ public PdfFontResource(string fontName, FontSubFamily subFamily, int labelNumber
5556 : base ( "F" , labelNumber )
5657 {
5758 this . fontName = fontName ;
58- fontData = OpenTypeFonts . LoadFont ( fontName , subFamily , pageSettings . FontDirectories , pageSettings . SearchSystemDirectories ) ;
59- fontSubsetManager = new FontSubsetManager ( fontData ) ;
59+ _fontEngine = pageSettings . FontEngine ;
60+ fontData = _fontEngine . LoadFont ( fontName , subFamily ) ;
61+ fontSubsetManager = new FontSubsetManager ( pageSettings . FontEngine , fontData ) ;
6062 }
6163
6264 internal static OpenTypeFont GetFontData ( PdfPageSettings pageSettings , string fontName , FontSubFamily subFamily )
6365 {
64- return OpenTypeFonts . LoadFont ( fontName , subFamily , pageSettings . FontDirectories , pageSettings . SearchSystemDirectories ) ;
66+ return pageSettings . FontEngine . LoadFont ( fontName , subFamily ) ;
6567 }
6668
6769 //Get font data from fontResources. If font does not exsist, add it to fontResources.
@@ -81,12 +83,6 @@ internal static OpenTypeFont GetFontResourceData(Dictionary<string, PdfFontResou
8183 return fontResources [ FontData . FullFontName ] . fontData ;
8284 }
8385
84- internal void CreateSubset ( )
85- {
86- fontData = fontData . CreateSubset ( Subset ) ;
87- Shaper = new TextShaper ( fontData ) ;
88- }
89-
9086 //Get the Font Descriptor object to write in PDF.
9187 internal PdfFontDescriptor GetFontDescriptorObject ( int objectNumber , int version = 0 )
9288 {
0 commit comments