Programmatic way to detect the font issues for Metafile to Raster conversion

Hi Anup,

While looking at the output of font information, it looks like that Fonts “Symbol” and “System” is still missing on the system or somehow these fonts are skipped from recognition. Please, do me a favor by again making it sure that missing fonts have been copied on the server (by copying from working server and pasting on the problematic server). After words run the addFontsFolder() routine and share the output with us.

In the mean while we will discuss the issue with product team and further look deep into it.

Hi,
The steps what we did below:

Step 1 :
copy and paste below ttf file under our “/.fonts” from our working linux environment.
1. symbol.ttf
2. system.ttf
3. Times New Roman.ttf


Step 2 : ran below command
Command :- fc-cache -fv

Code :


File wmfFile = new File(filePath);

filePath = filePath.replaceAll(".wmf", “.png”);

File pngFile = new File(filePath);

FontSettings.addFontsFolder("/joyoflea/.fonts");


String[] allFont = asposeImageConverter.getAllFont();
String[] usedFont = asposeImageConverter.getUsedFontList(wmfFile);
String[] missFont = asposeImageConverter.getMissingFontList(wmfFile);

try{

WmfMetafileImage metafile = new WmfMetafileImage(wmfFile.getAbsolutePath());
metafile.save(pngFile.getAbsolutePath(), new PngOptions());

}catch(Exception exception){
exception.printStackTrace();
logger.error(" ConvertWMTOPNG : "+exception);
}

Out Put :
FATAL TP-Processor11 AsposeImageConverterServlet - com.aspose.imaging.BuildVersionInfo.ASSEMBLY_VERSION : 3.0.2.0
FATAL TP-Processor11 AsposeImageConverterServlet - Can Display + : : true
FATAL TP-Processor11 AsposeImageConverterServlet - Can Display - : : true
FATAL TP-Processor11 AsposeImageConverterServlet - Can Display = : : true
FATAL TP-Processor11 AsposeImageConverter - =========== Aspose Image license done ==========
FATAL TP-Processor11 AsposeImageConverter - ------------------ All Font ------------
FATAL TP-Processor11 AsposeImageConverter - Andale Mono
FATAL TP-Processor11 AsposeImageConverter - Arial
FATAL TP-Processor11 AsposeImageConverter - Arial Black
FATAL TP-Processor11 AsposeImageConverter - Bitstream Charter
FATAL TP-Processor11 AsposeImageConverter - Bitstream Vera Sans
FATAL TP-Processor11 AsposeImageConverter - Bitstream Vera Sans Mono
FATAL TP-Processor11 AsposeImageConverter - Bitstream Vera Serif
FATAL TP-Processor11 AsposeImageConverter - Century Schoolbook L
FATAL TP-Processor11 AsposeImageConverter - Comic Sans MS
FATAL TP-Processor11 AsposeImageConverter - Courier New
FATAL TP-Processor11 AsposeImageConverter - Dialog
FATAL TP-Processor11 AsposeImageConverter - DialogInput
FATAL TP-Processor11 AsposeImageConverter - Dingbats
FATAL TP-Processor11 AsposeImageConverter - Georgia
FATAL TP-Processor11 AsposeImageConverter - Hershey
FATAL TP-Processor11 AsposeImageConverter - Impact
FATAL TP-Processor11 AsposeImageConverter - Lucida Bright
FATAL TP-Processor11 AsposeImageConverter - Lucida Sans
FATAL TP-Processor11 AsposeImageConverter - Lucida Sans Typewriter
FATAL TP-Processor11 AsposeImageConverter - Monospaced
FATAL TP-Processor11 AsposeImageConverter - Nimbus Mono L
FATAL TP-Processor11 AsposeImageConverter - Nimbus Roman No9 L
FATAL TP-Processor11 AsposeImageConverter - Nimbus Sans L
FATAL TP-Processor11 AsposeImageConverter - Nimbus Sans L Condensed
FATAL TP-Processor11 AsposeImageConverter - SansSerif
FATAL TP-Processor11 AsposeImageConverter - Serif
FATAL TP-Processor11 AsposeImageConverter - Standard Symbols L
FATAL TP-Processor11 AsposeImageConverter - Tahoma
FATAL TP-Processor11 AsposeImageConverter - Times New Roman
FATAL TP-Processor11 AsposeImageConverter - Trebuchet MS
FATAL TP-Processor11 AsposeImageConverter - URW Bookman L
FATAL TP-Processor11 AsposeImageConverter - URW Chancery L
FATAL TP-Processor11 AsposeImageConverter - URW Gothic L
FATAL TP-Processor11 AsposeImageConverter - URW Palladio L
FATAL TP-Processor11 AsposeImageConverter - Utopia
FATAL TP-Processor11 AsposeImageConverter - Verdana
FATAL TP-Processor11 AsposeImageConverter - Webdings
FATAL TP-Processor11 AsposeImageConverter - ------------------ All Used Font ------------
FATAL TP-Processor11 AsposeImageConverter - Times New Roman
FATAL TP-Processor11 AsposeImageConverter - Symbol
FATAL TP-Processor11 AsposeImageConverter - System
FATAL TP-Processor11 AsposeImageConverter - ------------------ All Missed Font ------------
FATAL TP-Processor11 AsposeImageConverter - Symbol
FATAL TP-Processor11 AsposeImageConverter - System

Let us know if you required more information related that issues.

From
Nitin Chopkar

Please update us regarding our previous post

Hi Nitin,

We are working on the issue. This will take time. Please, allow us some time so that we could look deep into this issue. Please, do share the sample file with us that you are using and trying to convert to PNG format.

We will update you accordingly.

Hi,
Please update us regarding that issues.

From
Nitin Chopkar

Hi Nitin,

We are working on this issue. Please, allow us a bit more time. We will update you soon.

We are sorry for the inconvenience.
Hi Nitin,

Please, note that we have carried out testing at our end. We have used Ubuntu 14.0.4 and executed the following code snippet:

String[] allFontList = com.aspose.imaging.fileformats.metafile.FontSettings.getAllFonts();


Output:

------------------------
Abyssinica SIL
Bitstream Charter
Century Schoolbook L
Courier 10 Pitch
DejaVu Sans
DejaVu Sans Mono
DejaVu Serif
Dialog
DialogInput
Dingbats
Droid Arabic Naskh
Droid Sans
Droid Sans Armenian
Droid Sans Ethiopic
Droid Sans Fallback
Droid Sans Georgian
Droid Sans Hebrew
Droid Sans Japanese
Droid Sans Mono
Droid Sans Thai
Droid Serif
FreeMono
FreeSans
FreeSerif
gargi
Garuda
KacstArt
KacstBook
KacstDecorative
KacstDigital
KacstFarsi
KacstLetter
KacstNaskh
KacstOffice
KacstOne
KacstPen
KacstPoster
KacstQurn
KacstScreen
KacstTitle
KacstTitleL
Kedage
Khmer OS
Khmer OS System
Kinnari
Liberation Mono
Liberation Sans
Liberation Sans Narrow
Liberation Serif
LKLUG
Lohit Bengali
Lohit Devanagari
Lohit Gujarati
Lohit Punjabi
Lohit Tamil
Loma
Lucida Bright
Lucida Sans
Lucida Sans Typewriter
Mallige
Meera
Monospaced
mry_KacstQurn
Mukti Narrow
NanumBarunGothic
NanumGothic
NanumMyeongjo
Nimbus Mono L
Nimbus Roman No9 L
Nimbus Sans L
Norasi
OpenSymbol
Padauk
Padauk Book
Phetsarath OT
Pothana2000
Purisa
Rachana
Rekha
Saab
SansSerif
Sawasdee
Serif
Standard Symbols L
Symbol
TakaoPGothic
Tibetan Machine Uni
Tlwg Typist
Tlwg Typo
TlwgMono
TlwgTypewriter
Ubuntu
Ubuntu Condensed
Ubuntu Light
Ubuntu Medium
Ubuntu Mono
Umpush
URW Bookman L
URW Chancery L
URW Gothic L
URW Palladio L
utkal
Vemana2000
Waree

Then we used the sample WMF file provided by you and executed the following lines of code respectively:
String[] usedFont = asposeImageConverter.getUsedFontList(wmfFile);
Output:
---------------- Times New Roman Symbol System ---------------

String[] missFont = asposeImageConverter.getMissingFontList(wmfFile);
Output:
---------------- Times New Roman System ---------------

It was clearly shown that following fonts were missing:

  1. Times New Roman
  2. System

There are two ways to install the missing fonts

  1. Using Software Update Center
  2. Download the TTF font file and then use install option by opening the file and accessing the “install” button on the upper right end.

We tried both ways and executed the code snippet:

String[] missFont = asposeImageConverter.getMissingFontList(wmfFile);
Output:
---------------- Times New Roman System ---------------

The output shown that issue was still there and was not resolved. We accessed the FONT directory on Windows operating system i.e. C:\Windows\Fonts, copied the required font file(s) and pasted on the problematic operating system. We carried out the above mentioned process to install the missing fonts. We again executed the following lines of code respectively:

String[] missFont = asposeImageConverter.getMissingFontList(wmfFile);
Output:
----------------

String[] allFontList = com.aspose.imaging.fileformats.metafile.FontSettings.getAllFonts();
Output:
---------------- Abyssinica SIL Bitstream Charter Century Schoolbook L Courier 10 Pitch DejaVu Sans DejaVu Sans Mono DejaVu Serif Dialog DialogInput Dingbats Droid Arabic Naskh Droid Sans Droid Sans Armenian Droid Sans Ethiopic Droid Sans Fallback Droid Sans Georgian Droid Sans Hebrew Droid Sans Japanese Droid Sans Mono Droid Sans Thai Droid Serif FreeMono FreeSans FreeSerif gargi Garuda KacstArt KacstBook KacstDecorative KacstDigital KacstFarsi KacstLetter KacstNaskh KacstOffice KacstOne KacstPen KacstPoster KacstQurn KacstScreen KacstTitle KacstTitleL Kedage Khmer OS Khmer OS System Kinnari Liberation Mono Liberation Sans Liberation Sans Narrow Liberation Serif LKLUG Lohit Bengali Lohit Devanagari Lohit Gujarati Lohit Punjabi Lohit Tamil Loma Lucida Bright Lucida Sans Lucida Sans Typewriter Mallige Meera Monospaced mry_KacstQurn Mukti Narrow NanumBarunGothic NanumGothic NanumMyeongjo Nimbus Mono L Nimbus Roman No9 L Nimbus Sans L Norasi OpenSymbol Padauk Padauk Book Phetsarath OT Pothana2000 Purisa Rachana Rekha Saab SansSerif Sawasdee Serif Standard Symbols L Symbol System TakaoPGothic Tibetan Machine Uni Times New Roman Tlwg Typist Tlwg Typo TlwgMono TlwgTypewriter Ubuntu Ubuntu Condensed Ubuntu Light Ubuntu Medium Ubuntu Mono Umpush URW Bookman L URW Chancery L URW Gothic L URW Palladio L utkal Vemana2000 Waree ---------------

From the output it is now clear that there are no more missing fonts and getAllFont method returns complete list of fonts including the missing ones. That said, we have witnessed the font’s presence in the LiberOffice as well. Screen shots have been attached for your reference.

Hope the above information helps. Try the above solution at your end and feel free to contact us in case you have further comments or queries.

Hi,

Its working now by installing system font at our problematic server.

Thanks for your co-operation to resolving that issues.

From
NItin Chopkar
(Techior Solutions Pvt. Ltd.)

Hi Nitin,

Thank you for updating us about the status.

It’s good to know that the issue has now been resolved. We are always here to help you.

The issues you have found earlier (filed as ) have been fixed in this Aspose.Words for JasperReports 18.3 update.