com.aspose.words
Class FontSettings

java.lang.Object
    extended by com.aspose.words.FontSettings

public class FontSettings 
extends java.lang.Object

This class provides static methods that allow to specify the location of TrueType fonts that Aspose.Words will use when rendering documents to PDF, XPS, printing, imaging or embedding fonts into EPUB and other document formats that support embedded fonts.

Aspose.Words loads fonts and caches them in a static cache (e.g. shared between rendering of different documents). While setting the new location for fonts is safe at any time from any thread, it is recommended that you do not change the location of fonts while some documents might be in in the process of rendering. It is recommended that you set the location of fonts during program startup before rendering any documents.

Example:

Demonstrates how to set the folder Aspose.Words uses to look for TrueType fonts during rendering or embedding of fonts.
Document doc = new Document(getMyDir() + "Rendering.doc");

// Note that this setting will override any default font sources that are being searched by default. Now only these folders will be searched for
// fonts when rendering or embedding fonts. To add an extra font source while keeping system font sources then use both FontSettings.GetFontSources and
// FontSettings.SetFontSources instead.
FontSettings.setFontsFolder("C:\\MyFonts\\", false);

doc.save(getMyDir() + "Rendering.SetFontsFolder Out.pdf");

Example:

Demonstrates how to set Aspose.Words to look in multiple folders for TrueType fonts when rendering or embedding fonts.
Document doc = new Document(getMyDir() + "Rendering.doc");

// Note that this setting will override any default font sources that are being searched by default. Now only these folders will be searched for
// fonts when rendering or embedding fonts. To add an extra font source while keeping system font sources then use both FontSettings.GetFontSources and
// FontSettings.SetFontSources instead.
FontSettings.setFontsFolders(new String[] {"C:\\MyFonts\\", "D:\\Misc\\Fonts\\"}, true);

doc.save(getMyDir() + "Rendering.SetFontsFolders Out.pdf");

Example:

Demonstrates how to set Aspose.Words to look for TrueType fonts in system folders as well as a custom defined folder when scanning for fonts.
Document doc = new Document(getMyDir() + "Rendering.doc");

// Retrieve the array of environment-dependent font sources that are searched by default. For example this will contain a "Windows\Fonts\" source on a Windows machines.
// We add this array to a new ArrayList to make adding or removing font entries much easier.
ArrayList fontSources = new ArrayList(Arrays.asList(FontSettings.getFontsSources()));

// Add a new folder source which will instruct Aspose.Words to search the following folder for fonts.
FolderFontSource folderFontSource = new FolderFontSource("C:\\MyFonts\\", true);

// Add the custom folder which contains our fonts to the list of existing font sources.
fontSources.add(folderFontSource);

// Convert the Arraylist of source back into a primitive array of FontSource objects.
FontSourceBase[] updatedFontSources = (FontSourceBase[])fontSources.toArray(new FontSourceBase[fontSources.size()]);

// Apply the new set of font sources to use.
FontSettings.setFontsSources(updatedFontSources);

doc.save(getMyDir() + "Rendering.SetFontsFolders Out.pdf");

Property Getters/Setters Summary
static java.lang.StringgetDefaultFontName()
static voidsetDefaultFontName(java.lang.String value)
           Gets or sets the default font name.
 
Method Summary
static voidaddFontSubstitutes(java.lang.String originalFontName, java.lang.String[] substituteFontNames)
           Adds substitute (alternative) font names for given original font name.
static Aspose.Words.Fonts.FontSourceBase[]getFontsSources()
           Gets a copy of the array that contains the list of sources where Aspose.Words looks for TrueType fonts.
static java.lang.String[]getFontSubstitutes(java.lang.String originalFontName)
           Returns array containing alternative font names to be used if original font is not presented in system.
static voidresetFontSources()
           Resets the fonts sources to the system default.
static voidsetFontsFolder(java.lang.String fontFolder, boolean recursive)
           Sets the folder where Aspose.Words looks for TrueType fonts when rendering documents or embedding fonts. This is a shortcut to setFontsFolders(java.lang.String[],boolean) for setting only one font directory.
static voidsetFontsFolders(java.lang.String[] fontsFolders, boolean recursive)
           Sets the folders where Aspose.Words looks for TrueType fonts when rendering documents or embedding fonts.
static voidsetFontSubstitutes(java.lang.String originalFontName, java.lang.String[] substituteFontNames)
           Override substitute (alternative) font names for given original font name.
 

Property Getters/Setters Detail

getDefaultFontName/setDefaultFontName

public static java.lang.String getDefaultFontName() / public static void setDefaultFontName(java.lang.String value)
Gets or sets the default font name.

The default font name is used when Aspose.Words can't find requested font in specified sources.

The default value is 'Times New Roman'.

Example:

Demonstrates how to specify what font to substitute for a missing font during rendering.
Document doc = new Document(getMyDir() + "Rendering.doc");

// If the default font defined here cannot be found during rendering then the closest font on the machine is used instead.
FontSettings.setDefaultFontName("Arial Unicode MS");

// Now the set default font is used in place of any missing fonts during any rendering calls.
doc.save(getMyDir() + "Rendering.SetDefaultFont Out.pdf");
doc.save(getMyDir() + "Rendering.SetDefaultFont Out.xps");

Method Detail

addFontSubstitutes

public static void addFontSubstitutes(java.lang.String originalFontName, java.lang.String[] substituteFontNames)
Adds substitute (alternative) font names for given original font name.
Parameters:
originalFontName - Original font name.
substituteFontNames - List of alternative font names to be used if original font is not presented in system.

getFontsSources

public static Aspose.Words.Fonts.FontSourceBase[] getFontsSources()
Gets a copy of the array that contains the list of sources where Aspose.Words looks for TrueType fonts.

The returned value is a copy of the data that Aspose.Words uses. If you change the entries in the returned array, it will have no effect on document rendering. To specify new font sources use the #Error Cref: M:Aspose.Words.Fonts.FontSettings.SetFontsSources(Aspose.Words.Fonts.FontSourceBase[]) method.

Returns:
A copy of the current font sources.

Example:

Demonstrates how to set Aspose.Words to look for TrueType fonts in system folders as well as a custom defined folder when scanning for fonts.
Document doc = new Document(getMyDir() + "Rendering.doc");

// Retrieve the array of environment-dependent font sources that are searched by default. For example this will contain a "Windows\Fonts\" source on a Windows machines.
// We add this array to a new ArrayList to make adding or removing font entries much easier.
ArrayList fontSources = new ArrayList(Arrays.asList(FontSettings.getFontsSources()));

// Add a new folder source which will instruct Aspose.Words to search the following folder for fonts.
FolderFontSource folderFontSource = new FolderFontSource("C:\\MyFonts\\", true);

// Add the custom folder which contains our fonts to the list of existing font sources.
fontSources.add(folderFontSource);

// Convert the Arraylist of source back into a primitive array of FontSource objects.
FontSourceBase[] updatedFontSources = (FontSourceBase[])fontSources.toArray(new FontSourceBase[fontSources.size()]);

// Apply the new set of font sources to use.
FontSettings.setFontsSources(updatedFontSources);

doc.save(getMyDir() + "Rendering.SetFontsFolders Out.pdf");

getFontSubstitutes

public static java.lang.String[] getFontSubstitutes(java.lang.String originalFontName)
Returns array containing alternative font names to be used if original font is not presented in system.
Parameters:
originalFontName - Original font name.
Returns:

resetFontSources

public static void resetFontSources()
Resets the fonts sources to the system default.

setFontsFolder

public static void setFontsFolder(java.lang.String fontFolder, boolean recursive)
Sets the folder where Aspose.Words looks for TrueType fonts when rendering documents or embedding fonts. This is a shortcut to setFontsFolders(java.lang.String[],boolean) for setting only one font directory.
Parameters:
fontFolder - The folder that contains TrueType fonts.
recursive - True to scan the specified folders for fonts recursively.

Example:

Demonstrates how to set the folder Aspose.Words uses to look for TrueType fonts during rendering or embedding of fonts.
Document doc = new Document(getMyDir() + "Rendering.doc");

// Note that this setting will override any default font sources that are being searched by default. Now only these folders will be searched for
// fonts when rendering or embedding fonts. To add an extra font source while keeping system font sources then use both FontSettings.GetFontSources and
// FontSettings.SetFontSources instead.
FontSettings.setFontsFolder("C:\\MyFonts\\", false);

doc.save(getMyDir() + "Rendering.SetFontsFolder Out.pdf");

setFontsFolders

public static void setFontsFolders(java.lang.String[] fontsFolders, boolean recursive)
Sets the folders where Aspose.Words looks for TrueType fonts when rendering documents or embedding fonts.

By default, Aspose.Words looks for fonts installed to the system.

Setting this property resets the cache of all previously loaded fonts.

Parameters:
fontsFolders - An array of folders that contain TrueType fonts.
recursive - True to scan the specified folders for fonts recursively.

Example:

Demonstrates how to set Aspose.Words to look in multiple folders for TrueType fonts when rendering or embedding fonts.
Document doc = new Document(getMyDir() + "Rendering.doc");

// Note that this setting will override any default font sources that are being searched by default. Now only these folders will be searched for
// fonts when rendering or embedding fonts. To add an extra font source while keeping system font sources then use both FontSettings.GetFontSources and
// FontSettings.SetFontSources instead.
FontSettings.setFontsFolders(new String[] {"C:\\MyFonts\\", "D:\\Misc\\Fonts\\"}, true);

doc.save(getMyDir() + "Rendering.SetFontsFolders Out.pdf");

setFontSubstitutes

public static void setFontSubstitutes(java.lang.String originalFontName, java.lang.String[] substituteFontNames)
Override substitute (alternative) font names for given original font name.
Parameters:
originalFontName - Original font name.
substituteFontNames - List of alternative font names to be used if original font is not presented in system.

See Also:
          Aspose.Words Documentation - the home page for the Aspose.Words Product Documentation.
          Aspose.Words Support Forum - our preferred method of support.