Font is substituted for no reason

897
6
02-01-2023 10:04 AM
BrianWilson
Occasional Contributor II

I converted an annotation layer created in ArcMap, and published it as a Map Image Layer from Pro. It gives a warning about fonts, but I have installed the fonts on both my Portal and Server machines. When it renders in Map Viewer Classic, I see it's substituted Arial for the Shadow font.

I know the font is available on the server. See "Astoria" rendered erroneously in Arial here and the Popup with text that I set to Shadow by changing the HTML.

BrianWilson_1-1675274445462.png

 

Is there a way to convince Server not to make everything Arial? Maybe a style or css page somewhere??

Here is what the map looks like in ArcGIS Pro, using the map used to publish the MIL. Look at the label "Astoria" in Shadow,

BrianWilson_0-1675274330817.png

 

0 Kudos
6 Replies
Scott_Tansley
MVP Regular Contributor

There's most likely some Windows magic going on in here.  It always appears that Fonts are installed in C:\Windows\Fonts but that's not true, unfortunately.  When Windows Server is deployed it has the standard fonts.  If you (as a user) log in and register a new font, then it appears to be installed in the same folder - but it's not.  It's in your user profile, because only 'you' want to see/use that font.  Unless ArcGIS Server is running under your personal user account, it cannot see the font in question so will replace it with a default font, typically Arial.

So you've got to register the font in a way that the ArcGIS Server's Service Account to read it and make use of it as well.  

this is something I've only configured once and I currently cannot access my notes to offer them up to you, but have a read here:

https://stackoverflow.com/questions/55264642/how-to-force-win10-to-install-fonts-in-c-windows-fonts

and it should point you in the right direction.

Scott Tansley
https://www.linkedin.com/in/scotttansley/
0 Kudos
BrianWilson
Occasional Contributor II

Thanks, I already followed advice in that exact post, I even made a screenshot to document it when I installed the fonts. Here it is,

BrianWilson_0-1675290202289.png

My possibly faulty assumption is that since I can use the new font in a popup, it should be available to any program running on that machine. That's why I included that comment in the first screenshot.

BrianWilson_1-1675290348548.png

 

I followed some other post regarding using custom fonts in popups so that I could see the new font really is available. I did that by editing the HTML, like this

BrianWilson_2-1675290445244.png

When I publish from ArcPro, it gives a warning that my doc has special fonts and that they have to be installed on the server. Too bad it does not check instead of issuing the warning. My guess is that they just remove unexpected fonts during the publishing process and that once again, it is a confusing and erroneous warning message.

My browser can display the Shadow font so I know it's able to display Shadow. The problem is elsewhere.

 

0 Kudos
Scott_Tansley
MVP Regular Contributor

The thing with the popup is that it's rendered and drawn on each user's machine.  That means the font needs to be installed on each machine.  It's use on the server is for generating Map Image Layers.  

The location where we install it does not 'share that over the web' to end users.  

I'm not sure if you can embed fonts into a Web App Builder/Experience Builder app.  That's outside of my normal practice.  But typically web developers who want to use specific fonts in an application will host the font as a part of their app so that it's available to the end browser.

Currently, the HTML/CSS will be telling the end users browser to use Shadow, and if Shadow isn't available then the browser will decide what to use.

 

Scott Tansley
https://www.linkedin.com/in/scotttansley/
0 Kudos
Brian_Wilson
Occasional Contributor III

This explains why it shows up in popups, because I did install the font locally so that I could use it in ArcGIS Pro so that I could publish with it. So all my popup test does is prove that (1) Esri does not strip out that particular HTML from the popup and (2) my browser works.  Thanks for explaining that.

For maps Server renders the annotation into pixels in the server and delivers a PNG file to my browser. When the fonts are used in a map image layer, it works. Whatever renders the annotation has a limited idea of what fonts are available, there is probably a list of fonts hard coded into it.

Looks like there are three teams working on this, Pro, MIL, and Annotation. The PRO and MIL teams completed their work. The Annotation team did not.

Therefore from the end user perspective, this is another case where the "correct solution" is to ignore it.

 

0 Kudos
Scott_Tansley
MVP Regular Contributor

Logical step would be to find a test candidate who hasn't got the font installed, and see what they get in popups etc.  I think you will find it will become user specific.

Scott Tansley
https://www.linkedin.com/in/scotttansley/
0 Kudos
BrianWilson
Occasional Contributor II

It's just a problem in Annotation layers. I just did a Vector Tile Layer and a MIL with shadow font and both of the services are fine,

BrianWilson_0-1675292839999.png

I tried to go learn more about Annotation in the Esri training site and found out they only have a course on ArcMap annotation! I have learned regarding anno and the Web is that there are many ways to break it and that it is slow.

Maybe all the Esri Annotation people quit. Not hard to understand. Only our cartographers love anno.

 

0 Kudos