Font Differences in Vision (8.1.24 to 8.1.38)

I know there are other posts on this, but still a little confused even after a forum search.

Upgraded from 8.1.254 to 8.1.38. I understand that Java versioning jumped from v11 to v17. I understand that fonts are bundled with Java (from reading other threads). Is there anything that can be done to change this or is it "what it is"?

Trying to see if I can avoid going through my entire application to review / change all the fonts as Dialog seems to appear significantly different. See attached screenshots.

Right now Noto Sans seems to a better fit for me, but just want to avoid additional font variability down to road if I make the "wrong" choice.

2024-03-19-11.28.51
Screenshot from 2024-03-19 11-28-27

Are some of these screenshots before JDK17 and some after? Can you label them?

Hi Kevin -
All of these are after the upgrade to 8.1.38. I didn't notice this font difference on 8.1.24 although I did not go through the same "quick brown fox" font comparison then.

The screenshots are from as I see them in the Designer (running on my Windows system) vs. the fonts as displayed on the Vision client on the Linux system.

I'm not sure I totally understand your issue. In the first 2 screenshots Dialog appears relatively similar except for size.

In the 3rd with the side-by-side they're even similar size (or did you scale it up and these are the same screenshots?).

They clearly look like the same font to me, just rendered a little differently because Linux and Windows (and macOS) all render fonts different than each other.

1 Like

The 3rd screenshot was an attempt to get a size by size view of the fonts (I had to play with the image size to get them to match approximately (screenshots originated on different computers).

The rendering of the Dialog font is definitely different on the Linux system post-upgrade. Pre-upgrade I could expect (more or less) a "wysiwyg" behavior between Designer in Windows vs. the Client in Linux (tested Client on Windows and this is not a problem).

Post-upgrade, it's a bit of an annoyance since the character spacing is different (even if slightly) and causing things to wrap or not fit in the allotted space, so I just need to go back review all the fonts again. I wish I had the screenshots handy to show this but I didn't notice until I upgraded and booted the client for the first time.

As far as differences: if you look at the designer vs vision client fonts you can see how:

  • Arial takes up more space on client vs Designer - notice the text on the Vision Client extends further.
  • Calibri and Dialog appear to be the same on Client vs distinct Designer - I recall reading a thread about this somewhere...
  • Noto Sans seems to be pretty consistent.

Short-term: It makes a big difference on my project since I have limited space and I need to account for translation into French (which impacts font sizing and positioning).

Long-term: I make need to make font adjustments if font behavior changes again.

I can live with this, but just wanted to see if either a) I did something wrong and b) there is some easy fix to get that "wysiwyg" behavior between the Designer and the Vision Client.

Dialog should be Noto Sans on any/every platform as long as you're using the Java runtime we provided and not launching with a custom one.

@jcoffman anything font-related you're aware of in the JDK 11 to 17 transition?

Are Arial and Calibri installed on the Linux machine? Looks like a default substitution is happening.

Agreed, it sounds like it is an issue with the Linux machine.
I'm not super familiar with Linux, but I tried using fc-match to look at the various font settings:

fc-match Arial
Arial.ttf: "Arial" "Normal"

fc-match Dialog
DejaVuSans.ttf: "DejaVu Sans" "Book"

fc-match 'Noto Sans'
DejaVuSans.ttf: "DejaVu Sans" "Book"

fc-match Calibri
DejaVuSans.ttf: "DejaVu Sans" "Book"

But this does not explain why Noto Sans looks like it is different from Dialog in the Client screenshot. According to 'fc-match' they both use "DejaVu Sans" so maybe this is the wrong thing to examine (or something else is going on). This also seems to be counter to Noto Sans and Dialog being the same on every system.

I don't think fc-match is relevant here - that's for your system. It outputs "DejaVu Sans" "Book" for any font it doesn't recognize.

"Dialog" is a logical font in Java. It's clearly being mapped to Noto Sans in your screenshots, although perhaps a different variation than the system Noto Sans.

kevin@DV-55J5DY3-LT:~$ fc-match foobarbaz
DejaVuSans.ttf: "DejaVu Sans" "Book"

Nothing im aware of. Noto Sans is the font that backs the Dialog logical font in our bundled JVM and that hasn't changed since early in the 8.0 lifecycle. We explicitly bundled these fonts and mapped them to the logical fonts to prevent this type of issue.

What Linux distro and version is this?

Debian Stretch - it's old but it is a vendor imaged device so I don't have the option of changing this right now.

Linux 4.9.0-13-amd64 x86_64

Distributor ID: Debian
Description:    Debian GNU/Linux 9.13 (stretch)
Release:        9.13
Codename:       stretch

Thanks Kevin - that makes sense.

Can you clarify? I see a a difference in the font but perhaps I am misunderstanding. If I draw a vertical line from the Noto Sans caption to the Dialog caption the spacing does not match, so Dialog and Noto Sans appear at the very least to have character spacing differences. These are all using the same font size and style (just different fonts in the Designer properties):
Screenshot from 2024-03-19 11-28-27

Could you try something for me on this client having issues?

In your ~/.ignition/cache/resources/runtimes/17.0.9/conf/fonts dir can you duplicate the fontconfig.Ubuntu.properties file and name it fontconfig.Debian.properties and relaunch the designer? (For reference im wondering if there was an OS match change that happened in java with Font Configuration Files

I'll do this and report back. When you say relaunch the Designer - the Designer is running on my Windows laptop and the Linux system is running the Edge Gateway and Vision Client. Does that make a difference? I can stop the gateway and client, then relaunch.

ahh yes, I missed that bit. Make the change on the linux client and relaunch the Vision Client. You shouldn't need to restart the gateway or the designer on your windows machine for these changes since they are only going to affect the linux client

Thanks.
I renamed the Unbuntu file to Debian:
image

I noticed that I had other runtime version folders so I found the Unbuntu file from 11.0.16.1 and 11.0.18 and ran a compare against the one in 17.0.9 and they match (checking to see if there were any differences). Also did the same with Linux version and the files match.
image

I restarted the Client and it does not look like it changed anything. Here is another screenshot. You can see that Noto Sans and Arial appear to be distinct but Calibri, Dialog, and a random whacky font (MV Boli) I chose default to whatever this default / failback font is (Lucidia?).

To resolve this issue we manually reinstalled the missing fonts into the root Linux fonts folder.

  1. Use 'fc-list | grep [font name]' to check to see if font is installed.
  2. Manually install the font if needed. This was in /usr/share/fonts
  3. Run 'fc-cache' to register the new fonts
    After restarting the Vision Client everything was working as expected.

What fonts were missing?

Did the "fix" mean using a different font than Dialog / Noto Sans?

Hi Kevin -
Chaz beat me to the reply.

This was a bit of a wild goose chase on my part (Sorry Chaz!) as in retrospect I do not think this had anything to do with the upgrade to 8.1.38. Something may have happened (inadvertently) to my system fonts. Still not precisely sure how it happened.

I manually installed Calibri, and in the processes re-ran fc-cache. This also fixed the weird discrepancy between Dialog and Noto Sans

This seemed to refresh everything and now things display properly.

3 Likes