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

Free Support Forum - aspose.com

Font substution does not work for bullets and symbols

Hi,
to convert properly a pptx file created on Windows to pdf (and image) for Linux (+Mono) I have tried to use a font substitution in Aspose API (Aspose.Slides 16.8.0) - to convert the absent Wingdings font used for bullets to some our font.
But it seems the function Aspose.Slides.IPresentation.FontsManager.ReplaceFont() does not work for bullets and symbols - while it does work for an ordinary text (it was checked for Windows and Linux).

The following code is used for font substitution:
{
var presentation = (new Aspose.Slides.PresentationFactory()).ReadPresentation(inputFile);
var fontFactory = new Aspose.Slides.FontDataFactory();

var sourceFontData = fontFactory.CreateFontData(“Wingdings”);
var destFontData = fontFactory.CreateFontData(“XO Windy”);
presentation.FontsManager.ReplaceFont(sourceFontData, destFontData);

presentation.Save(outputFile, Aspose.Slides.Export.SaveFormat.Pdf);
}

So it looks like a bug (font substitution does not work for bullets and symbols). The sample test file Bullets.pptx with bullets and the result file Bullets.pptx.pdf are attached (for Linux case). It should be mentioned that for Windows font substitution for bullets also does not work.
It there any other workaround for the case?

Thanks and Regards,
Aleksey.

Hi Aleksey,

Thanks for inquiring Aspose.Slides.

I have observed the issue shared by you and request you to please try using Aspose.Slides for .NET 16.9.0 on your end. If you still find issue then please share the destination font “XO Windy” along with Linux and Mono information with us. We will investigate the issue further on our end to help you out.

Many Thanks,

Hi Mudassir,
thanks for your reply.

As you requested I have tried the (newest) version of Aspose.Slides for .NET 4.0 16.9.0.0.
The bug has been reproduced on Windows (Windows 8.1 Rus) - now I have tried to replace the font Wingdings by Arial. As a result, the font for a bullet symbol and a special symbol are not replaced, while the font for an ordinary text are replaced well - see attached the original file BulletDiamond.pptx and the result file BulletDiamond.pptx.pdf.

So, the previous code has been a bit modified for the other font to substitute:
{
var presentation = (new Aspose.Slides.PresentationFactory()).ReadPresentation(inputFile);
var fontFactory = new Aspose.Slides.FontDataFactory();

var sourceFontData = fontFactory.CreateFontData(“Wingdings”);
var destFontData = fontFactory.CreateFontData(“Arial”);
presentation.FontsManager.ReplaceFont(sourceFontData, destFontData);

presentation.Save(outputFile, Aspose.Slides.Export.SaveFormat.Pdf);
}

Best Regards,
Aleksey.

Hi Aleksey,

I have worked with the presentation file using Aspose.Slides for .NET 16.9.0 and have been able to reproduce the issue. A ticket with ID SLIDESNET-37993 has been created in our issue tracking system to investigate and resolve the issue. This thread has been associated with the ticket so that we may share the notification with you once issue will be fixed.

We are sorry for your inconvenience,

Hi Adnan,

thanks, waiting for a fix!

Best Regards,
Aleksey.

Hi, Adnan,



could you tell when a fix can be expected? - It is very important for our product that uses Aspose.



Best Regard,

Aleksey.

Hi Aleksey,


I have observed your comments. I like to share that the issue is going to be resolved tentatively in Aspose.Slides 16.11.0. Aspose.Slides 16.11.0 will be released in next week. We will share notification with you once issue will be fixed.

We are sorry for your inconvenience,

The issues you have found earlier (filed as SLIDESNET-37993) have been fixed in this update.


This message was posted using Notification2Forum from Downloads module by Aspose Notifier.

Hi again,



thanks for the fix - but it works partial. I have tried Aspose.Slides 16.11.0 for .NET 4.0 on Linux.

It works only when Aspose.Slides.FontSubstCondition.Always is used but not

Aspose.Slides.FontSubstCondition.WhenInaccessible - see the sample code:

{

var presentation = (new Aspose.Slides.PresentationFactory()).ReadPresentation(inputFile);

var fontFactory = new Aspose.Slides.FontDataFactory();



var sourceFontData = fontFactory.CreateFontData(“Arial”);

var destFontData = fontFactory.CreateFontData(“Ubuntu”);



// does not work

var fontSubstRule = new Aspose.Slides.FontSubstRule(sourceFontData, destFontData, Aspose.Slides.FontSubstCondition.WhenInaccessible);

presentation.FontsManager.ReplaceFont(fontSubstRule);



presentation.Save(outputFile, Aspose.Slides.Export.SaveFormat.Pdf);

}

- For the case when Arial is not installed and Ubuntu is installed it is expected that Ubuntu substitutes but it does not work - I have got Liberation Sans as a result. BTW It does not concern the specific fonts I think.



Best Regards,

Aleksey.

Hi Aleksey,


I have observed your comments. I like to inform that everything works fine on my end using Window 10 environment. If you are not satisfied with this fix i can reopen the ticket for investigation. Please share feedback with us.

Best regards,

Hi Adnan,



I observed the latest issue described above in Linux environment (Ubuntu 15.10 + mono 4.2.3.4) - please try it to reproduce the bug.



Best Regards,

Aleksey.

Hi Aleksey,


I have reopened ticket for investigation in details. We will further update you regarding this issue.

Best Regards,

Hi Aleksey,

Our product team investigated issue on their end. I like to share their feedback with you. Customer team is unable to reproduce issue on their end as you mentioned in your latest messages. Everything working fine as it was designed. We have shared code examples with you in text file. As long you didn’t attach any font or presentation to your new complaint, this test example was made from the originally attached presentation. In this presentation all bullets symbols font changed to ‘Webdings’. And the test code tries to change it to ‘Wingdings’ with two possible options of FontSubstCondition.

Operations order to perform the test:

  1. Install Webdings and Windings fonts to the system.
  2. Run the code.
  3. Check the results. -out-always and -out-wheninaccessible results should be different and look like ‘SLIDESNET-37993-etalon-Wingdings.png’ and ‘SLIDESNET-37993-etalon-Webdings.png’ accordingly.
  4. Uninstall Webdings font from the system.
  5. Run the code.
  6. Check the results. Now both -out-always and -out-wheninaccessible results should be the same and look like ‘SLIDESNET-37993-etalon-Wingdings.png’.

We kindly ask the you to perform this test on your side and check the results. If you finds further investigation necessary after that, we need your version of presentation you are facing the issue with as long as Ubuntu font.

Please find all the artifacts mentioned above in ‘SLIDESNET-37993 Test.zip’ attached file.

Best Regards,