Java fonts and Windows

This archived old thread seems closest to what I am chasing except I’m on Windows rather than Linux.

I have a customer running Ignition 7.9.18 and recently noticed that a bunch of their text fields don’t display properly. It is clear that the font being used for the “dialog” logical font has changed for these machines. I’m not sure if the font mapping changed during a java update or when they upgraded the OS from Windows 7 to 10.

Following the Oracle docs, I see that the c:\program files\java\jre1.8.0_151\lib\fontconfig.properties.src shows Arial for the dialog family, but Ignition is not using Arial. There is also a fontconfig.bfc file, but I assume that is compiled from the src file.

The old thread indicates that Linux doesn’t use the font config files any longer. Is that also the case with Windows? What would be overriding the Arial mapping? It is clear that “Dialog” is being mapped to a font that is significantly wider than Arial.

Thanks for any ideas.

Are they launching clients using the native launcher or webstart/JNLP?

Now that I think about it again, I recall seeing the client launcher splash screen when launching Vision. They are definitely using client launcher.

Thanks,
Max

If you’re using the launcher that means you’re also using a JDK 9 runtime we packaged along with it and I think Dialog is mapped to a copy of the Noto Sans font we include. I’m not sure how to go about changing it though.

@jcoffman do you know if/how this can be done in 7.9?

FWIW if you’re ever planning on upgrading this project to 8.x you might as well just get used to this and make the necessary adjustments. Noto Sans is the new default font going forward.

edit: oh hey, looky here: Project font changes when using the Native Client Launcher - #3 by Kevin.Herron

2 Likes

yeah I would adjust your project to account for this, but you can update the fontconfig.properties file in the bundled JRE which are next to the NCL executable on windows and linux. the other option is to uncheck the “use bundled JRE” option on the NCL. This will make the NCL use whatever java version is installed.

Updating the font file here would affect all launched clients and designers.

Hi guys,

It sounds like it is best to avoid using java logical fonts and stick with physical fonts. Is there a list of all the fonts that are bundled with the NCL and can these be customized? When fonts are substituted and not equal width it really messes with graphics in Vision.

The Noto Sans are the only ones that are shipped now with our version of java. The old Lucida font which used to be included (and was the mapped dialog default as well as a fallback) was pulled out of the jdk upstream. Using a physical font directly might not always be the best option here as you have to make sure that you install that font (or that its installed already) on every system which is running a client or designer. If you can guarantee that you won’t have an issues.

The Noto Sans font being mapped to the logical fonts isn’t going to change in the foreseeable future for us and relying on the Dialog logical font means that clients will always have this font available.

Hi guys,

I took a look at this and am still confused.

The client launcher is at C:\ClientLauncher\ClientLauncher.exe.

A font config file located at C:\ClientLauncher\jre\lib\fontconfig.properties shows Arial for the dialog font, New Times Roman for serif, Courier New for mono, etc. This is the 7.9.18 version of the NCL. It doesn’t seem to use the fonts listed in the configuration file, which I expected to be pointing at the Noto fonts.

Thanks,
Max

Hmm. Fresh download of 7.9.18 and the client launcher and this is the fontconfig.properties I found, full of references to Noto Sans.

fontconfig.properties (6.6 KB)

Did you typo this path?

Mine is C:\Users\kevin.herron\AppData\Roaming\Inductive Automation\Client Launcher\jre\conf\fonts, and while I expect some difference the final portion should be jre\conf\fonts, not jre\lib.

1 Like