Call Marlett symbolic or the problems might be quite real...

by Michael S. Kaplan, published on 2008/12/17 18:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2008/12/17/9232191.aspx


Earlier today, tshirk (probably not his real name?) asked via the Contact link:

Okay, I'm sorry.  This is a support question.  I suck.

I'm just asking if you've ever heard of applications that use Marlett (super secret Windows system symbol font) being unable to use it over an RDP connection?

We've got a bug in a 3rd party component where, when it creates PDFs from HTML forms, it uses the Marlett check to simulate the chekbox on a webpage.  Works great, but when run within a remote desktop connection the Marlett font is substituted with Arial, which makes checks look like Bs.

If you have ever heard of anything like this, or if you are interested enough in this weird situation to look into it, any hints you can give us will be greatly appreciated.

If not, don't worry about it.  I'm pushing to replace all the damn checkboxes on the HTML forms with bitmaps and be done with it....

Now I know that I tell people not to expect support from me, and they shouldn't.

But sometimes the question will intrigue me, so I will jump in anyway.

Besides, there is just something about Marlett (last discussed in A bit about Marlett).

My psychic debugging powers leads me in a specific direction here -- this is a bug that I feel pretty comfortable laying at the feet of whoever/whatever component creates the PDFs.

In fact, this is a bug that was reported during Office 2007 (pre-RTM) in their own "save as PDF" functionality, and fixed prior to RTM.

Does it count as cheating on the "psychic debugging" if you remember running across the bug being reported by someone else, somewhere else? :-)

The circumstances leading up to the bug are something I talked a bit about in blogs like How best to keep the font switcheroo from happening?, where I emphasize that functions creating fonts are actually requests for fonts based on parameters passed to the functions themselves.

In this case, if you create a font with the name Marlett (and likely other symbol fonts) but do not specify SYMBOL_CHARSET, there are some code paths, commonly used by PDF renderers if our sample of two is scientific enough, that will end up seeing the font mapper in GDI substitute a different font.

Of course many tools that create PDFs don't tend to allow one to specify information at this level of detail, but if in this case the component allows one to specify the information then there is a simple workaround....


This post brought to you by B (U+0042, aka LATIN CAPITAL LETTER B)


Si on 20 Dec 2008 10:12 PM:

As I recall Webdings mirrors the main Marlett mappings - might work as an alternate.

Michael S. Kaplan on 21 Dec 2008 12:07 AM:

I think using Webdings can lead to the same problem if the font isn't marked with the symbol charset.


go to newer or older post, or back to index or month or day