Load a font from CFF file | Java

Get a closer look on how to load font in particulary CenturyGothic placed in the file CenturyGothic.cff.


If you did not read the Aspose.Font loading fundamentals, go to How to load fonts? page.

First let’s notify the statements you will need to use:

 1    package com.aspose.font;
 2
 3    import java.io.File;
 4    import java.io.IOException;
 5    import java.nio.file.Files;
 6    import java.nio.file.Paths;
 7
 8    import com.aspose.font.ByteContentStreamSource;
 9    import com.aspose.font.FileSystemStreamSource;
10    import com.aspose.font.Font;
11    import com.aspose.font.FontDefinition;
12    import com.aspose.font.FontFileDefinition;
13    import com.aspose.font.FontType;

Loading from the file using java.io.File object

Follow the algorithm to fulfill the font loading:

  1. Construct path to the file.
  2. Initiate FontDefiniton object passing CFF as FontType value.
  3. Get automatically calculated value fileExtension.
  4. Load the font.
 1    // Construct path to the file.
 2    String fontPath = Paths.get(getDataDir(), "CenturyGothic.cff").toString();
 3	
 4    // Initialize FontDefinition object passing CFF as FontType value and using FontFileDefinition
 5    FontFileDefinition fileDef = new FontFileDefinition(new File(fontPath));
 6
 7    // Based on FileInfo object, fileExtension value is calculated automatically from FileInfo fields.
 8    FontDefinition fontDef = new FontDefinition(FontType.CFF, fileDef);
 9
10    // Load the font
11    Font font = Font.open(fontDef);

Font loading with the byte[] type variable and with using ByteContentStreamSource type object

To load font this way, you need to take the following steps:

  1. Construct path to the file.
  2. Initialize FontDefiniton object passing CFF as FontType value, cff as fileExtension value, and ByteContentStreamSource object based on fontBytes array.
  3. Load the font.
 1    // Construct path to the file
 2    String fontPath = Paths.get(getDataDir(), "CenturyGothic.cff").toString();
 3
 4    // Load font binary data into byte array
 5    byte[] fontBytes = Files.readAllBytes(Paths.get(fontPath));
 6
 7    // Initialize FontDefinition object  passing CFF as FontType value, "cff" as fileExtension value, 
 8    // and ByteContentStreamSource object based on fontBytes array
 9    FontDefinition fontDef = new FontDefinition(FontType.CFF, "ttf", new ByteContentStreamSource(fontBytes));
10
11    // Load the font
12    Font font = Font.open(fontDef);

More examples on how to use Aspose.Font are in Aspose.Font.Examples.sln solution, in the java-examples of the Aspose.Font Documentation.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.