Aspose::Words::Fonts::FontConfigSubstitutionRule class

FontConfigSubstitutionRule class

Font config substitution rule. To learn more, visit the Working with Fonts documentation article.

class FontConfigSubstitutionRule : public Aspose::Words::Fonts::FontSubstitutionRule

Methods

MethodDescription
virtual get_Enabled()Specifies whether the rule is enabled or not.
GetType() const override
Is(const System::TypeInfo&) const override
IsFontConfigAvailable()Check if fontconfig utility is available or not.
ResetCache()Resets the cache of fontconfig calling results.
set_Enabled(bool) overrideSpecifies whether the rule is enabled or not.
static Type()

Remarks

This rule uses fontconfig utility on Linux (and other Unix-like) platforms to get the substitution if the original font is not available.

If fontconfig utility is not available then this rule will be ignored.

Examples

Shows operating system-dependent font config substitution.

auto fontSettings = MakeObject<FontSettings>();
SharedPtr<FontConfigSubstitutionRule> fontConfigSubstitution = fontSettings->get_SubstitutionSettings()->get_FontConfigSubstitution();

System::PlatformID pid = System::Environment::get_OSVersion().get_Platform();
bool isWindows = (pid == System::PlatformID::Win32NT) || (pid == System::PlatformID::Win32S) || (pid == System::PlatformID::Win32Windows) ||
                 (pid == System::PlatformID::WinCE);

// The FontConfigSubstitutionRule object works differently on Windows/non-Windows platforms.
// On Windows, it is unavailable.
if (isWindows)
{
    ASSERT_FALSE(fontConfigSubstitution->get_Enabled());
    ASSERT_FALSE(fontConfigSubstitution->IsFontConfigAvailable());
}

bool isLinuxOrMac = (pid == System::PlatformID::Unix) || (pid == System::PlatformID::MacOSX);

// On Linux/Mac, we will have access to it, and will be able to perform operations.
if (isLinuxOrMac)
{
    ASSERT_TRUE(fontConfigSubstitution->get_Enabled());
    ASSERT_TRUE(fontConfigSubstitution->IsFontConfigAvailable());

    fontConfigSubstitution->ResetCache();
}

See Also