Hi,
I’m having an issue converting a docx document to pdf using Aspose.Words (java).
The document Example01.docx was created with MS Word and then opened online with Google Docs and saved again (as Example02.docx).
The document contains a bulleted list with many levels, each with a different character as list sign.
My main interest is about the use of Bullet (font Symbol) and Check Mark (font Wingdings).
As you can see, in Example02.docx these characters has been replaced from font Symbol / Wingdings to font Noto Sans Symbols.
When I use aspose.word to convert Example01.docx to Example01.pdf everything works.
When I convert Example02.docx, in the resulting Example02.pdf the list characters are wrong and I can’t see neither bullet nor check mark.
In my system I haven’t installed Noto Sans Symbols font, so when I ran the program for the first time I used Aspose table substitution to convert it to OpenSymbol:
FontSettings fs = FontSettings.getDefaultInstance();
fs.getSubstitutionSettings().getTableSubstitution().setSubstitutes("Noto Sans Symbols", "OpenSymbol");
It didn’t work.
Then I tried to add Noto Sans Symbols to the font directory of my application (set with FontSettings.setFontsSources()).
It didn’t work either.
I also tried to use Aspose predefined fallback table for Noto fonts:
FontSettings fs = FontSettings.getDefaultInstance();
fs.getFallbackSettings().loadNotoFallbackSettings();
as someone suggested me, but with no result either.
I noticed that Google Docs put the Noto Sans Symbols font in Example02.docx as an embedded font, and it puzzled me, since I expected Aspose could use it without searching any other font (as I read in Manipulate and Substitute TrueType Fonts|Aspose.Words for Java).
The other things I can’t explain is that if I open Example02.docx with MS Word (or LibreOffice), even without Noto Sans Symbols installed, I can see either bullet and check mark. I guess word processors can find an alternative font to solve those characters.
I used Aspose functions to check the Unicode value of list characters in Example02.docx (copied the code from an Aspose example somewhere):
for (com.aspose.words.List lst : w_document.getLists())
{
System.out.println(" -- LIST --");
for (com.aspose.words.ListLevel level : lst.getListLevels())
{
System.out.println(" font name: " + level.getFont().getName() + " number format: " + "\\u" + Integer.toHexString((level.getNumberFormat().charAt(0)) | 0x10000).substring(1));
}
I got:
-- LIST --
font name: Noto Sans Symbols number format: \u25cf <--- Black Circle
font name: Courier New number format: \u006f
font name: Noto Sans Symbols number format: \u25aa
font name: Calibri number format: \u00d7
font name: Noto Sans Symbols number format: \u2714 <--- Heavy Check Mark
font name: Noto Sans Symbols number format: \u2b9a
font name: Noto Sans Symbols number format: \u2756
font name: Courier New number format: \u006f
font name: Noto Sans Symbols number format: \u25aa
The last “mistery” I found is that if I open the character map of Noto Sans Symbols font I can’t see neither Black Circle nor Heavy Check Mark. Actually there is no character with Unicode 25CF or 2714.
I’m new to Aspose and maybe it’s just a “newbie” error, but if anyone could help me I’d greatly appreciate.
Thank you very much.
Valentina
Example01.docx (18,4 KB)
Example01.pdf (33,9 KB)
Example02.docx (193,0 KB)
Example02.pdf (27,8 KB)