Round bullet from Word converts to squared bullet PDF - Java

I’m trying to convert a bulleted list (round symbol, unicode 183, from MS Word to PDF. But after the conversion, in the PDF it shows a square symbol, like if the format was lost. I’m using the default bullet symbol configuration from MS Word.

Before (in MS Word)
image.png (682 Bytes)

After (in PDF format)
image.png (2.3 KB)

I’ve tried using aspose-words 20.11, 21.8 and 22.5 (for Java). Each one shows the same problem.

Please, help.

@bdavila316i Most likely, font used for bullets is substituted by Aspose.Words because it cannot find the required font. Could you please attach your input and output documents here for testing? Also, please provide the environment details where the problem occurs. We will check the issue and provide you more information.
I suspect your environment is MacOS or Linux. If so, it might be a known peculiarity. Windows “Symbol” font is a symbolic font (like “Webdings”, “Wingdings”, etc.) which uses Unicode PUA. Thus substitution of this font will cause different glyphs rendering. Provided Mac “Symbol” font on the other hand is a proper Unicode font (for example Greek characters are in the U+0370…U+03FF Greek and Coptic block). So these fonts are incompatible and Mac “Symbol” font cannot be used instead of Windows “Symbol” without additional actions. In this particular case you have to change the bullet codepoint from PUA U+F0B7 (or U+00B7 which also can be used in MS Word for symbolic fonts) to the U+2022 in the document to use the Mac “Symbol” font. See the following code for example:

Document doc = new Document("/Users/mac1/Downloads/BulletPoint.docx");

for (com.aspose.words.List lst : doc.getLists())
{
    for (com.aspose.words.ListLevel level : lst.getListLevels())
    {
        if (level.getFont().getName().equals("Symbol") && level.getNumberFormat().equals("\uF0B7"))
        {
            level.setNumberFormat("\u2022");
        }
    }
}

doc.save("/Users/mac1/Downloads/out1.pdf");

Hi @alexey.noskov, thank you very much. Indeed, the file is created in MS Word Windows, and then it is converted to PDF in Linux environment.

It all makes sense, I tried the code you provided and it works, I’ll be more careful with fonts.

Thank you!

@bdavila316i It is perfect that the problem is resolved. Also, as an option you can embed the required fonts into MS Word document. In this case Aspose.Words will use the embedded fonts and the document will be rendered properly.

1 Like