8 Replies Latest reply: Apr 28, 2010 9:14 AM by JabbyPandaUA RSS

    Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?

    JabbyPandaUA Community Member

      Hi all,

       

      My understanding is, that in Flash Player 9 and below TextField object was able to display any character from East Asian Languages  via device fonts "_serif", "_sans" or "_typewriter".

       

      In new FTE that came with Flash Player 10  TextElement object seems to use device font "_serif" only for Latin1 or Cyrillic character sets.

       

      For example, FTE is using "Simsun" device (fallback) font to display Chinese language characters and for Thai language characters, FTE is using "Angsana New" device (fallback) font.

       

      My question is:

       

      Why TextElement from FTE does not use "_serif" device font to display characters for Thai or Chinese language like it did it older brother TextField from Flash Player 9 and below?

       

      The problem with "SimSun" or "Angsana New" fonts that they are not present at Windows XP OS (English) at default install configuration setup.     

        • 1. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
          Eric Y Muller Adobe Employee

          _serif is a bit of a red herring in the discussion: it's just a shorthand for a list of font names. So your question can be rephrased: why are there fonts which are included in the _serif list but are not used for fallback in TLF.

           

          We cannot afford to look inside every single font available on the  system every time FP starts, so we have to use only fonts for which we have a priori knowledge. We also decided to restrict ourselves to fonts that we know are installed (at least in some cases) with the OS, to maximize the likelyhood of having the same behavior accross installations of the same OS.Of course, that's limited by the fact that different installations of the same OS are slightly different and by the differences between versions of the OS.

           

          A minimal XP installation has simply no font that contains CJK ideographs.There is obviously nothing we can do about that. (If you get CJK ideographs displayed via TextField/_serif on a minimal XP install, please let us know).

           

          Tahoma is unfortunately problematic to use for Thai. It looks like an OpenType font (has a GSUB table) but does not use OpenType for Thai (it implements the old-style interface through the PUA). We do support the old-style interface, but because of the presence of the GSUB table, we do not use that interface. That's why we did not include it in our list of fallback fonts for Thai.

           

          If a user wants to display Thai or CJK ideographs, it seems reasonable to expect that they have installed the related XP components. At that point, our fallback should work satisfactorily.

          • 2. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
            JabbyPandaUA Community Member

            Tahoma is unfortunately problematic to use for Thai.

             

            What about Miscosoft Sans Serif font? Font details: www.microsoft.com/typography/fonts/font.aspx?FMID=1599

             

            Probably it can be used for Thai font fallback feature in FTE on Windows?

             

            On Windows XP Service Pack 2 I have pre-installed 1.42 version of this font.

            _serif is a bit of a red herring in the discussion: it's just a shorthand for a list of font names

                It would be useful to receive this list of font names for Windows XP for "_serif" shorthand, it is not documented AFAIK. And yes, plain old TextField within Flash Player 9 is capable to display CJK ideographs on minimal Windows XP English install.

             

               My issue is possible situation when FTE font fallback is not able to display CJK ideographs or/and Thai language.

             

                I thought about embeddding a "uber" Unicode font  blogs.adobe.com/typblography/2008/08/unicode_font.html that has glyphs for both Thai language and  CJK ideographs as well, but in the real world I found only 4 fonts (Arial Unicode MS, Ascender Uni, SunExtA and Code2000)  that satisfy my requirements.

             

                Most known and most wanted choice among those fonts is Arial Unicode MS, but the licensee owner request hefty $$$$ yearly fee to allow to embed this font into document (SWF file) distributed on the web.

            • 3. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
              Eric Y Muller Adobe Employee
              What about Miscosoft Sans Serif font?

               

              Same problem.

               

               

              And yes, plain old TextField within Flash Player 9 is capable to display CJK ideographs on minimal Windows XP English install.

               

               

              According to our measurements, a minimal XP SP3 install has those fonts (size in first column):

               

                      367112   arial.ttf
                      352224   arialbd.ttf
                      226748   arialbi.ttf
                      207808   ariali.ttf
                      118832   ariblk.ttf
                      127596   comic.ttf
                      111476   comicbd.ttf
                      303296   cour.ttf
                      312920   courbd.ttf
                      236148   courbi.ttf
                      245032   couri.ttf
                       79744   estre.ttf
                      135984   framd.ttf
                      152844   framdit.ttf
                      214936   gautami.ttf
                      155068   georgia.ttf
                      141032   georgiab.ttf
                      157388   georgiai.ttf
                      159736   georgiaz.ttf
                      137448   impact.ttf
                      121452   kartika.ttf
                      323980   l_10646.ttf
                       73292   latha.ttf
                       58740   lsans.ttf
                       54320   lsansd.ttf
                       60664   lsansdi.ttf
                       59636   lsansi.ttf
                      115068   lucon.ttf
                      143864   mangal.ttf
                       24124   marlett.ttf
                      461672   micross.ttf
                       40500   mvboli.ttf
                      489884   pala.ttf
                      434004   palab.ttf
                      344288   palabi.ttf
                      430800   palai.ttf
                       57348   raavi.ttf
                      234280   shruti.ttf
                      221676   sylfaen.ttf
                       69464   symbol.ttf
                      383804   tahoma.ttf
                      355680   tahomabd.ttf
                      409280   times.ttf
                      398372   timesbd.ttf
                      239692   timesbi.ttf
                      248368   timesi.ttf
                      134108   trebuc.ttf
                      123096   trebucbd.ttf
                      131188   trebucbi.ttf
                      139288   trebucit.ttf
                      148624   tunga.ttf
                      171792   verdana.ttf
                      137616   verdanab.ttf
                      155076   verdanai.ttf
                      154800   verdanaz.ttf
                      252820   vrinda.ttf
                      118752   webdings.ttf
                       81000   wingding.ttf

               

              None of them is large enough to contain a useful set of ideographs. (I did not list the bitmap fonts, which FTE does not use, but they are also too small). Do you have something else on your machine?

               

              Eric.

              • 4. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
                Eric Y Muller Adobe Employee
                    It would be useful to receive this list of font names for Windows XP for "_serif" shorthand,

                 

                I am told the list is simply "Times New Roman"; and:

                 

                sans: Arial

                monospaced: Courier New

                 

                Eric.

                • 5. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
                  JabbyPandaUA Community Member

                  I agree on this font list, that is all fonts that are available on minimal Windows XP English install.

                  • 6. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
                    JabbyPandaUA Community Member

                        I would put it simply - how older TextField component from Flash Player 9 is able to display Thai characters when there is no other device font present on Windows XP with Thai glyphs besides Tahoma and Microsoft Sans Serif fonts?

                     

                        Here is screenshot (click on picture to scale) that illustrates that: older mx:Label component is always capable to display Thai characters regardless what fontFamily value is set to, while newer s:Label component renders Thai characters only if Tahoma or Microsoft Sans Serif font is explicitly set to fontFamily property.

                     

                    http://lh3.ggpht.com/_GZ4fe45doHc/S9G7uahIdrI/AAAAAAAAB5E/G1ZovvikuRk/s800/Thai_language_rendering_mx_spark.jpg

                    Tested with FTE 1.0.595 build, Flex 4.0.0.14159 SDK:

                     

                    Full code listing: gist.github.com/376687

                    • 7. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
                      Eric Y Muller Adobe Employee

                          I would put it simply - how older TextField component from Flash Player 9 is able to display Thai characters when there is no other device font present on Windows XP with Thai glyphs besides Tahoma and Microsoft Sans Serif fonts?


                       

                      TextField relies on the GDI to do the layout. GDI supports mixed fonts: fonts that use OpenType layout for some scripts and non-OpenType layout for other scripts. Tahoma and Microsoft Sans Serif are mixed font.

                       

                      FTE does not support such mixed fonts, or more precisely: if there is OpenType layout for any script, then we use OpenType layout for all the scripts. Our choice means that Tahoma and Microsoft Sans Serif cannot be used by FTE for Thai. We felt that the advantages of not dealing with mixed fonts outweighted the disadvantages. In particular, if the user of a system can read Thai, it is very likely that he will have installed the other Thai fonts.

                      • 8. Re: Is device font  _serif *only* used to display Latin1 and Cyrillic characters sets in FTE?
                        JabbyPandaUA Community Member

                        Right, I see.

                         

                        Is that correct to state that FTE does not support "mixed" fonts such as Tahoma and Microsoft Sans Serif only for font fallback device feature?

                         

                        Because, if I set any of those two fonts explicitly to the fontFamily property of Spark Label, Thai characters in the text become all visible in Spark Label.

                         

                        E.g.

                         

                        <s:Label id="sparkLabel" fontFamily="Tahoma"
                                             fontSize="16"
                                             text="การประมาณวันที่ออกเดินทาง">        
                        </s:Label>