Adobe Captivate Font Rendering
The Problem
When trying to create a theme for Captivate, I discovered our client’s preferred font, Whitney set to 12 pts, which was illegible in the program and in the published SWFs. So I did some research on font rendering in Captivate and came across several possible solutions. Below is a summary of my research, test results, and conclusions:
The Research
I started by searching the web for documentation on Captivate’s font rendering engine and I requested information from RJ Jacquez, the Adobe Evangelist for Captivate. The web search for documentation resulted in one useful article on the CommunityMX web site: Text in Captivate, by Tom Greene. The article does not have a date but the support file for this article was dated 9/12/2005, therefore I assumed it was written about one month after Flash 8 Player was released and the author would have been using Captivate 1. Considering the age of the article I read it with caution.
According to Greene, Captivate turns letters into bitmaps, using Microsoft products such as MS Word as the benchmark for font rendering. The Captivate team chose to do this rather than use the Flash font rendering engine because Flash could not display small point sizes adequately. Greene would have preferred the Captivate team to just inform developers to stop using bitmap fonts. One additional issue with Captivate is that Captivate displays fonts 2-3 points larger than Fireworks, so a 9 pt Arial in Captivate looks like 12 pt Arial in Fireworks.
I requested help from Jacquez through Twitter (@rjacquez). At first he replied saying he would look into my problem and get back to me as soon as possible. He later replied that he is “not in documentation” but would share my query with the team. A dead end for me… and so it was time to sit down and do some testing to see if Greene’s insights would still hold true with the Flash Player 10 and Captivate 4.
The Testing
Initially I set up a font test in Captivate and one in Flash using Postscript, TrueType and OpenType fonts. Below is a screen capture of my results. Notice how all the fonts in Captivate have jagged, unaliased edges while the Flash fonts are smooth because they are aliased. The distortion of the Captivate fonts is worse for OpenType and TrueType fonts because Postscript fonts are meant to be rasterized for print, and therefore look better when they are rasterized and turned into bitmaps.

Although these were the results I should have expected after reading Greene’s article I was still surprised. The OpenType format was developed by Microsoft in partnership with Adobe, and Adobe has a set of OpenType fonts they distribute for use with their programs, so I never would have expected one of their products would do such a poor job of displaying those font types.
Lastly, take note of the variation in display size between the Captivate and Flash fonts, despite all fonts being set to 25 pts. I measured the difference between the first letter in the Captivate font and compared it to its Flash partner. For each font the Captivate display was 5-7 pixels larger!
This test reveals that the information in Greene’s article from 2005 still holds true. The basis of Captivate’s font rendering engine has not been improved since Captivate 1. The next step was finding a work around.
The Solutions
My mind first jumped to embedding the fonts in Captivate. There is no embed option in the program so I thought I might be able to place a Flash SWF embedded with the fonts in the Captivate project. When that didn’t work I searched the Adobe forums and tried many other potential solutions that involved changing settings in Captivate and on my computer. All I learned is that I’m not the only frustrated person, and there is no way to embed fonts in Captivate or make the fonts render better without Flash.
If you can use Flash for a project, there are two solutions. The first is to save your Captivate file as a Flash file, open the file in Flash, embed fonts in any dynamic text fields and then publish the SWF. This is the best solution if you need a font to be used throughout a project that does not render well in Captivate.
The second option is best if you plan to use a font that does not render well in Captivate on a limited number of slides. Simply create your slide in Flash, publish the SWF and insert it into Captivate. If you are using dynamic text fields in the SWF, ensure all text is embedded, because Adobe warns that Captivate does not display device fonts. This means that if you don’t embed your text in Flash, you won’t see any text at all. I also found you cannot allow dynamic or static text to be selectable because if a user selects it, the text may disappear.
The Summary
In summary, if you need to work in Captivate and cannot use Flash for a project, you are limited to carefully choosing your fonts. My general recommendation is to use Postscript fonts since they tend to look best. If you plan to have any dynamic text fields in your project (i.e., text entry fields) you will want to stick to common fonts since Captivate cannot embed fonts, and users who do not have the fonts installed on their computer will not be able to see them.
