How to use AC3 compressed fonts

We are trying to reduce the size of our OS image to improve boot times, and the largest files in the image are mingliu.ttc, simsun.ttc, and msgothic.ttc, which are needed for support of Asian fonts. I’ve tried to enable AC3 compression, which reduces the size of the fonts significantly. However, when using the fonts in our application, they show up as missing fonts (blank squares). What set of steps is required to actually use the compressed fonts in an application?

Dear @echoone,

Please follow the below steps and documentation to reduce boot time

  1. https://developer.toradex.com/knowledge-base/colibri-boot-time
  2. https://developer.toradex.com/knowledge-base/busenum2

Please try our font installer https://developer.toradex.com/knowledge-base/how-to-install-additional-fonts rather than building a custom image.

If font installer doesn’t solve your issue, still you need to build a custom image then you can keep font file in \FlashDisk\System and adjust the registry to refer \FlashDisk\System path. We have followed the same method to generate the font files installer. Please download and see the reference registry.

We didn’t test compressed fonts. Could you please to wait for few days to let you know the result of the compressed font test result?

Let us know if it helps solve your issue.

@raja.tx

I tried your methods of using the font installer (on our custom OS image), as well as using your registry settings, but unfortunately I still cannot get the fonts to display properly in our application.

For a little more detail about my setup:
The application utilizes the XAML runtime and storyboards to display the GUI. I came across these two links:

https://docs.microsoft.com/en-us/previous-versions/windows/embedded/jj592928(v=winembedded.80)
https://developer.toradex.com/knowledge-base/creating-a-windows-ce-image-with-chinese-language-support

Which seems to indicate that our application won’t support AC3 fonts, nor will it work if the fonts are installed to /FlashDisk/System/Fonts, but please correct me if this isn’t the case. I would like to use the microsoft guide to embed the fonts in our app, but the XAML currently just uses font-family=“Tahoma”, and all of the localizations happen on the c++ side, via a String Table in a .rc file. So I’m not entirely sure where that leaves us in terms of options.

We’ve already reduced the size of our OS as much as possible by removing components, and sped up the boot time via as many other methods as we can, but the fonts take up almost half the OS image size, so any way we can reliably remove them from the OS image would be greatly appreciated. Looking forward to your insight.

Dear @echoone,

Embed the font in the XAML application is really required when you build an image with AC3 font included.

As stated in Microsoft documentation, AC3 font compression is not supported by XAML for Windows Embedded. So, you don’t need to build an image with AC3 font compression.

You can keep TrueType font files in \FlashDisk\System\Font and adjust the registry to locate that file like this one. This should work. In that case, you don’t need to include the font files with the image and significantly reduce your boot time. Please let us know if you are facing any issue on this?

I have placed the .ttc files into \FlashDisk\System\Fonts and adjusted the registry settings as you’ve suggested, but unfortunately I am still getting the blank squares indicating a missing font in our actual application.

Hello, I just checked the source code of our HMI:

There is AddFontResource(L"\flashdisk\simsun.ttc) in OnInit

Thanks for the suggestion, but this didn’t seem to work.

Dear @echoone,

Could you please share reproducible XAML demo application with us. Let us try to reproduce the issue and get back you with font installer.