We're sorry Aspose doesn't work properply without JavaScript enabled.

Free Support Forum - aspose.com

Font Substitution on Linux (CentOS) for Documents Converted Using Aspose APIs

Thanks for the reply.
I have read through the section for Word, Slides, but there is no information of how to manage the fonts without hampering the IP contracts.
We have developed a service for conversion using the ASPOSE APIs. This service is deployed on a container for cloud and its base OS is Linux (CentOS).
We cannot deploy fonts as mentioned in this article. It will be a breach of contract to use Microsoft Fonts. Timely audits are managed by competition to manage the adherence of the IP.
For our containers, we already have liberation fonts installed, but definitely miss out on a lot of basic fonts coming from Microsoft and Monotype.

Can you please help how to manage this ?

@vedjaipraful You can configure font fallback settings according to fonts available in your system. Or use a predefined fonts fallback settings, for example using free google Noto fonts.
Of course without original fonts used in the document, the result of rendering might differ from what you see in MS Word.

@alexey.noskov
Thanks for the revert.
Suppose we do not configure anything specific from our side - means no explicit fallback settings in our code to use what is available on the system, in such a case what happens ? Does the ASPOSE default logic of font fallback apply ?
Do we need to explicitly call " FontFallbackSettings.buildAutomatic()" before performing the conversion ? Or this will be implicit part of the ASPOSE logic ?
Should there be an explicit call to “fontSettings.getSubstitutionSettings().getFontConfigSubstitution().setEnabled(true);” to trigger any default mechanism ?

Or any other method call to make the best substitution based on the fonts available in the system ?

@vedjaipraful Aspose.Words tries to find the best replacement for an unavailable font by applying font substitution rules. You can adjust the rules to get better result based on the fonts available in your environment.
If Aspose.Words cannot find any fonts, it uses last resort font - Fanwood, which is embedded into Aspose.Words library.

@alexey.noskov - thanks for the last update.
I have been working with some of the ASPOSE.words APIs to print some basic traces and check how the substitution would work.
A few surprises to me in particular some default font name mechanism, I found out that the the API “fontSettings.getSubstitutionSettings().getDefaultFontSubstitution().getDefaultFontName()” on the default font settings instance returns Times New Roman. On the LINUX system that I am running my tests, does not have Times New Roman font. It only has Liberation, DejaVu fonts.
So I wonder how this hard-coded Times New Roman could really be coming into the picture with the font not really present.

Am I missing some trick ?

@vedjaipraful ‘Times New Roman’ is the default value because Aspose.Words mimics MS Word. But this value is configurable, so you can change it according to your needs.
In your case Aspose.Words simply do not pass this rule and will try other rules to find the suitable font.