Missing characters in CFF embedded fonts

Our application loads embedded fonts on the fly. I'm in the process of converting our text handling to FTE and switching over to CFF fonts, but I've noticed that for a couple of fonts, there are characters that are damaged, or missing entirely. The same text renders correctly when the font is installed as a system font, and also when it's embedded in the non-CFF format, so CFF embedding is choking on something, but I have no idea what. Nor do I see a lot of knobs that I can twist to control the CFF output.
For example, Budmo Jiggler (http://www.dafont.com/budmo-jiggler.font). When embedded as CFF, the letter "B" isn't rendering correctly:
This occurs in both the 10.3 and 11.3 players.
My embedding code is autogenerated for all fonts and looks like this:
// GENERATED FILE - DO NOT EDIT
package {
     import flash.display.Sprite;
     import flash.text.Font;
     [SWF(width="800", height="600", backgroundColor="#FFFFFF", frameRate="30")]
     public class BUDMO extends Sprite {
          [Embed(source='/Users/bsharon/src/Bueller/as/fonts/ttf/Budmo Jiggle/BUDMO.ttf',
                 mimeType="application/x-font",
                 fontName='embedded_BUDMO',
                 unicodeRange='U+0000-U+00FF',
                 embedAsCFF='true',
                 fontWeight='normal',
                 fontStyle='normal')]
          public static var embedded_BUDMO:Class;
          [Embed(source='/Users/bsharon/src/Bueller/as/fonts/ttf/Budmo Jiggle/BUDMOB.ttf',
                 mimeType="application/x-font",
                 fontName='embedded_BUDMO',
                 unicodeRange='U+0000-U+00FF',
                 embedAsCFF='true',
                 fontWeight='bold',
                 fontStyle='normal')]
          public static var embedded_BUDMO_Bold:Class;
            trace("Registering font embedded_BUDMO");
            Font.registerFont(embedded_BUDMO);
            trace("Registering font embedded_BUDMO_Bold");
            Font.registerFont(embedded_BUDMO_Bold);
The code is compiled like so: mxmlc --static-link-runtime-shared-libraries -output <swf_file> <as3_file>. There are no warnings.
So...what do I try next?

I will close my own question by saying that if I convert the TTF files to OpenType, the problem goes away. I would have preferred not to bang my head on this particular wall, but at least I have a workaround now.

Similar Messages

  • Characters not found in embedded font

    What font does the TLF uses when it can't find the characters in the embedded font?
    For example we have a non-latin text (like Arabic, Chinese, ...), but in the text are a few latin-type characters used (a brand name, numbers, ...). TLF won't find these in the embedded non-latin font, so it will default to a system font (I guess). Is it possible to default it to another font than the system font (something like Helvetica)? Or can we tweak it with the container, paragraph or character formats, and create some hierarchy?

    All you can do is assign a different font to those latin characters using the fontFamily attribute.
    If the font assigned does not have a particular glyph, Flash Player goes to a single fallback font which depends on the glyph. That fallback font is hardcoded and there currently is no method for changing this behavior.

  • Problems with embedded font on spark RichText control

    « Hide
    I have an embedded font that appears correctly when used with Halo components, but when associated with the spark RichText component, it is not recognized.
    The embedded font is defined in css file, my css file
    @namespace s "library://ns.adobe.com/flex/spark";
    @namespace mx "library://ns.adobe.com/flex/halo";
    @font-face {
    src:url("assets/fonts.swf");
    fontFamily: "Helvetica Neue";
    @font-face {
    src:url("assets/fonts.swf");
    fontFamily:"Helvetica Neue";
    fontWeight: bold;
    global{
    color:#333333;
    fontFamily: "Helvetica Neue";
    fontSize:12px;
    The embedded font it used in the following manner:
    <mx:Label styleName="panelTitle" text="Hello There"  width="263" x="21" y="11"/>
    <s:Group width="410" x="38" y="52" height="50">
    <s:RichText styleName="panelTitle" text="Hello There" fontFamily="Helvetica Neue"  width="263" x="21" y="11"/>
    </s:Group>
    The Label shows the embedded font correctly while the RichText control does not. It does not matter if the fontFamily is specified explicitly on the control or not.
    I created a bug SDK-22137, but since I'd need to get this working soon any help would be appreciated.

    Just a friendly reminder. Many of the examples on that site are fairly old and havent been updated to use the latest APIs. For example, "cff" has recently been renamed to "embedAsCFF". In fact, here's a better example:
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/halo">
        <s:layout>
            <s:VerticalLayout paddingLeft="20" paddingTop="20" />
        </s:layout>
        <fx:Style>
            @namespace mx "library://ns.adobe.com/flex/halo";
            @namespace s "library://ns.adobe.com/flex/spark";
            /* DefineFont3 (embedAsCFF == false) */
            @font-face {
                src: url("assets/georgia.TTF");
                fontFamily: embGeorgia;
                fontWeight: normal;
                embedAsCFF: false;
            @font-face {
                src: url("assets/georgiab.TTF");
                fontFamily: embGeorgia;
                fontWeight: bold;
                embedAsCFF: false;
            /* DefineFont4 (embedAsCFF == true) */
            @font-face {
                src: url("assets/georgia.TTF");
                fontFamily: embGeorgiaCFF;
                fontWeight: normal;
                embedAsCFF: true;
            @font-face {
                src: url("assets/georgiab.TTF");
                fontFamily: embGeorgiaCFF;
                fontWeight: bold;
                embedAsCFF: true;
            mx|Label {
                fontFamily: embGeorgia;
            s|RichText {
                fontFamily: embGeorgiaCFF;
                fontLookup: embeddedCFF;
        </fx:Style>
        <mx:Label text="Halo Label" />
        <mx:Label text="Halo Label (bold)" fontWeight="bold" />
        <s:RichText text="Spark RichText" />
        <s:RichText text="Spark RichText (bold)" fontWeight="bold" />
    </s:Application>
    Also, depending on what you're trying to do, this may help you: http://blog.flexexamples.com/2009/06/14/using-a-cff-embedded-font-with-a-halo-label-contro l-in-flex-4/. Basically, you can set the textFieldClass style on certain Halo controls and have them use the mx.core.UITLFTextFieldClass (instead of the default mx.core.UITextFieldClass) so they can take advantage of the new CFF fonts.
    In fact, here's the same example as above, but with the single embedded font:
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                   xmlns:s="library://ns.adobe.com/flex/spark"
                   xmlns:mx="library://ns.adobe.com/flex/halo">
        <s:layout>
            <s:VerticalLayout paddingLeft="20" paddingTop="20" />
        </s:layout>
        <fx:Style>
            @namespace mx "library://ns.adobe.com/flex/halo";
            @namespace s "library://ns.adobe.com/flex/spark";
            /* DefineFont4 (embedAsCFF == true) */
            @font-face {
                src: url("assets/georgia.TTF");
                fontFamily: embGeorgiaCFF;
                fontWeight: normal;
                embedAsCFF: true;
            @font-face {
                src: url("assets/georgiab.TTF");
                fontFamily: embGeorgiaCFF;
                fontWeight: bold;
                embedAsCFF: true;
            mx|Label {
                fontFamily: embGeorgiaCFF;
                textFieldClass: ClassReference("mx.core.UITLFTextField");
            s|RichText {
                fontFamily: embGeorgiaCFF;
                fontLookup: embeddedCFF;
        </fx:Style>
        <mx:Label text="Halo Label" />
        <mx:Label text="Halo Label (bold)" fontWeight="bold" />
        <s:RichText text="Spark RichText" />
        <s:RichText text="Spark RichText (bold)" fontWeight="bold" />
    </s:Application>
    Peter

  • Embedded fonts are missing characters in display despite having all glyphs...

    Hi,
    As per the subject, I have a vast array of different fonts that I need to load on demand via CSS to SWF.
    For the most part, this works very well. I have around 600 fonts where everything is just fine.
    I also have some problem fonts like the below;
    That is _supposed_ to display;
    "ABCDEFGHIJKLMNOPQRSTUVWXYZ
    abcdefghijklmnopqrstuvwxyz"
    All the glyphs are there, and have been validated using font.hasGlyphs(string) method.
    The font works perfectly in numerous desktop applications
    The font works perfectly when converted to a web font
    Nonetheless, no matter what I try, or what SDK I use, the problem fonts always fail to display on the same characters.
    My guess is, because they are allowing spaces for the characters, that the glyphs and / or metrics are slightly out, but I have absolutely no idea where to begin debugging this and I would welcome any input from anybody who _has_ got an idea!
    Thanks,
    G

    Well, hasGlyphs just says there is data in the slot for that character, not whether the data is any good.
    Essentially,  all embedded fonts are transcoded into a Flash-compatible data format.  Then Flash uses that data format to draw the glyph.  There are 4 data formats that Flash uses, but they fall into two main categories: CFF, and non-CFF.  The transcoding is done via the compiler with help from some font manager libraries listed in the flex-config.xml.  Depending on whether you need CFF or non-CFF, I think different libraries are used.  I've heard you may get slightly different results by messing around with the list of font managers, but I haven't proven it.
    Anyway, first thing I would try is a simple, AS-only test with whatever configuration is failing (CFF or non-CFF).  Then I would try the opposite configuration.  Getting Flex and TLF out of the equation helps narrow down the possibilities.  But it is probably some issue with the transcoding.  Are there other commonalities with the non-working fonts?  Are they all OTF or CFF fonts?
    -Alex

  • Cannot extract the embeded font 'KDGXKF+TTF5BC9A0t00'.Some characters may not display or print correctly.

    I am currently using Adobe Reader version 9.1.3. When I open certain files, it displays the following message, "Cannot extract the embeded font 'KDGXKF+TTF5BC9A0t00'.Some characters may not display or print correctly". Some fonts are actually missing and will not display when printing. I have tried updating adobe but the problem still persists. Under file properites, the following font TTF5BC9A0t00 is recognised by Adobe as true type and custom encoding. Anyone has any suggestions for fix??
    Cheers
    RK

    RK7.10.09 wrote:
    Under file properites, the following font TTF5BC9A0t00 is recognised by Adobe as true type and custom encoding. Anyone has any suggestions for fix??
    Cheers
    RK
    BUT, does it say "embedded" or "embedded subset" next to the font name. If not, the font isn't included in the file and if you don't have it, it can't display or print it.
    The file creator will need to embed the fonts properly although "some" fonts don't allow embedding. This could be one of them.

  • Identify special characters that are not supported by an embeded font

    Hi!
    I'm useing embeded fonts as CFF in my flex 4.5.1 application and I have problems with the special charcters  like Ă, Â, Î, Ș, Ț or arabic text, that are not included in my embeded font. This are displayed in my RichEditableTect component useing the default font (Arial).
    Is there any way to block the user when he tries to add such characters? 
    Or can  I identify them before saveing , in order to format the text like <Text Font="ExoticFont"...>Hello<Text font-family="Arial">ë</Text></Text> ?

    I think you want to use Font.hasGlyphs.  If you are using the @font-face directive it is hard to get to the Font class so you may wish to switch to using the directive.

  • Adobe Acrobat XI - Preflight tool - error List of CIDs missing in CIDSet of embedded CID font

    Hello,
    I am generating a PDF documents with use of  Apache FOP where fonts are pasted to the document. I am getting an error "List of CIDs missing in CIDSet of embedded CID font"  and I am curious. Since the cid is not found in the provided font how acrobat is able to find the correct character?  I also run analyse which checks if all text in the file use embedded fonts and the result was fine.
    Could you explain this behaviour? 
    What kind of problems may result from missing the cids?
    Thank you for response.

    So it is (how Bill@VT said) problem of generating the result pdf document.   Does a font have to meet some requirements?  Because I can see the characters in a font viewer but after embedding I see the error.
    Also I would like to ask for correction and if I get righ how the correct character is found.
    We work with TTF fonts.
    1. For embedded fonts
    pdf file contains table  with glyf ID and glyf representation
    pdf file contains cmap which maps  Character code (unicode) and glyfID
    during rendering a file finding correct glyf is clear since we have character code
    2. CID fonts
    pdf file contains table  with glyf ID and glyf representation
    pdf file contains CID table wich maps  CID and glyfID ( CIDToGIDMap)
    pdf file contains table which maps character code (Identity-H, Unicode) to CID
    during rendering we have character code and we get CID
    based on CID is looked up character metrics
    based on CID is found glyf representation
    Is here something what I am missing or I forgot to point out?

  • Error message from Adobe Reader. cannot extract the embedded font 'LICCMC+MyriadPro-Light'. some characters may not display or print correctly. Print looks like gibberish

    Trying to view/print PDF documents from website. Print looks like gibberish and is unreadable. Problem is with the embedded fonts. Error message from Adobe says cannot extract the embedded font 'LICCMC+MyriadPro-Light'. some characters may not display or print correctly.

    Try Adobe support, that's not a Firefox support issue. <br />
    http://forums.adobe.com/index.jspa

  • Problem with PDF export and embedded font (characters disappear)

    Designer: Crystal Reports 2008 SP 2
    Engine: CR4E 2.0 SP2 (runtime_12.2.203)
    Hi there!
    we found a problem in the pdf export. It seems like there would be a problem with the embedded fonts, the problem is as follows:
    Rpt file with, for example only a text box which contains the german string " Änderungs Schlüssel ".
    Export the Rpt file with CR4E to a pdf file.
    When we open the pdf file in Adope Reader 8, the text appears to be correct,
    but if we print the PDF file from the Adope Reader, the text changes to " nderungs Schl sselu201C,
    here we are missing ther german umlaute.
    When we open the file for example with an alternative PDF reader like Foxit Reader, there they are also missing.
    After i found some posts here in the forum, there are people facing the same problem, since i couldn't find a solution in the forum, we build a little workaround for it that works for us.
    For all of you that have the same problem here the workaround:
    We used the IText JAVA library, this jar can can help as to fix the PDF file so the text is displayed correctly.
    Here the code:
    ReportClientDocument doc = new ReportClientDocument();
    doc.setReportAppServer(ReportClientDocument.inprocConnectionString);
    doc.open("C:\XY.rpt", OpenReportOptions._openAsReadOnly);
    //... database logon,.....
    InputStream inputStream = doc.getPrintOutputController().export(ReportExportFormat.PDF);
    inputStream = PDFHealer.heal(inputStream);
    //... write the stream some where

    The helper class using IText:
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import com.lowagie.text.Document;
    import com.lowagie.text.DocumentException;
    import com.lowagie.text.pdf.PdfContentByte;
    import com.lowagie.text.pdf.PdfImportedPage;
    import com.lowagie.text.pdf.PdfReader;
    import com.lowagie.text.pdf.PdfWriter;
    public class PDFHealer
       public static InputStream heal(InputStream in) throws DocumentException, IOException
          try
             ByteArrayOutputStream out = new ByteArrayOutputStream();
             PdfReader reader = new PdfReader(in);
             // we retrieve the total number of pages
             int n = reader.getNumberOfPages();
             // step 1: creation of a document-object
             Document document = new Document();
             // step 2: we create a writer that listens to the document
             PdfWriter writer = PdfWriter.getInstance(document, out);
             // step 3: we open the document
             document.open();
             // step 4: we add content
             PdfContentByte cb = writer.getDirectContent();
             int i = 0;
             while( i < n )
                document.newPage();
                i++;
                PdfImportedPage page1 = writer.getImportedPage(reader, i);
                cb.addTemplate(page1, 0, 0);
             // step 5: we close the document
             document.close();
             ByteArrayInputStream ret = new ByteArrayInputStream(out.toByteArray());
             out.close();
             return ret;
          finally
             in.close();

  • Cannot extract the embedded font 'F2'. Some characters may not display or print correctly.

    This question was previously published but no answer has been found.
    Error message is :
    "Cannot extract the embedded font 'F2'. Some characters may not display or print correctly."
    Many pdf documents display this error with Adobe Reader 8.1.0. We have errors for embedded fonts 'F0','F3','F7' and so on.
    It looks like a Adobe Reader bug because :
    - All PDF files can be opened with Acrobat Reader 5.0.5, 6.x and 7.x, can't be opened with 8.1.0 version.
    - the 8.1.1 update removes only the bug for 'F0' error message (issue #1572280).
    The solution :
    - to publish a 8.1.2 update to fix this important bug
    - is there a registry parameter or tool option to disable the checking added in 8.x version of Adobe Reader ? The 8.x version catches more errors to be compliant with Adobe specification but Adobe reader must be
    compliant with all documents generated by third party products.
    This Adobe Reader bug applies to Windows Vista, XP Pro SP2, 2000.
    Thx,
    Regards

    Just to let you know, for anyone else with this problem. I had this problem occur on a MAC when you tried to do save to PDF in excel. This was all happening at the point of generation of the PDF in my case.
    The fix was to delete ALL the microsoft preferences, but perahps only the font cache needed to be deleted.
    I deleted the following areas from the local users userprofile on the mac. On windows, I would probably log in as a differnet user to try to see if the problem just exsists for one particular user.
    Here are the sections I deleted:
    Library/caches/metadata/Microsoft*
    Username/library/preferences/com.microsoft* ( and anyhting with microsoft in it)
    I did leave the entourage settings though.
    hope it helps someone with a similar issue.

  • Textfield which accepts multilingual characters with embedded fonts

    Hi all,
    I have a textfield where I can paste text from different languages with device fonts. Now, I want to input multi-ligual text with embedded fonts.
    I have embedded set of fonts, where I can input only english alphabets but not other languages.
    Is there a way to input any language characters with embedded fonts?
    Thank you.

    Thanks for your reply.
    I have embedded font as follows,
    [Embed(source="myfont.ttf", fontName='myfont', mimeType='application/x-font',embedAsCFF="false")]
    With this, I was able to apply this font for english.
    I have tried to paste " मैं कौन हूँ? " on a textfield. But I have not shown मैं कौन हूँ? text.
    And setting text programmatically did not work at all as
    textField.text = "मैं कौन हूँ?";
    If I do this with device fonts, every thing work fine but not with embedded fonts.
    Is there any thing wrong with my code while embedding font?

  • Can I add some UTF-16 characters(4 bytes, like japanese character) in to PDF,without embedding fonts

    Hi all,
    I have some 4 bytes japanese characters, when I embedding the MSPMincho fonts to PDF file, the characters displays well, but can it works without embedding this fonts?
    Thanks and Regards

    Try this (not tested):
    import oracle.sql.CharacterSet;
    CharacterSet csDB=CharacterSet.make(CharacterSet.ZHS32GB18030);
    int byteLenDB = csDB.convert("your string").length;
    Note, ZHS32GB18030 is currently supported as the client character set only. You should better not define a database with this character set. (See: Database Globalization Support Guide, Table A-9). It looks like we have to clarify this, because DBCA lists ZHS32GB18030 and CREATE DATABASE accepts it.
    The DB character set does not seem to be available through any public API (though it is retrieved and stored internally). You have to query the database.
    -- Sergiusz

  • Embedded font has extra space after special characters

    I've built a web-based Flash movie for a major client. The SWF uses an embedded font and loads text from an XML document. The client is localizing it for several languages, which of course include special characters. In this case, the å character is giving us problems -- it always renders with an extra space after it. For example, the Danish word spørgsmål is rendered as spørgsmå l.
    I might be inclined to think something's wrong with the font, because it doesn't happen with other fonts. However, some Googling turned up several other cases of people with similar problems using different fonts.
    When I remove the font embedding, the problem disappears. I can watch it do this right in the IDE. As soon as I embed characters again, the phantom space returns. And it doesn't happen in any other applications.
    I've spent many hours trying all kinds workarounds, but I've come up with nothing so far. As I said, I've found several other mentions of this problem but the only solution I've seen is "use a different font." In this case I can't -- it's a corporate identity font that's required for this project!
    If it makes any difference, I'm linking the font in the library, then specifying the embedded characters for the text fields. I also have text fields created entirely in Actionscript (AS3) that behave exactly the same way.
    Please tell me there's a solution to this! I'm pretty positive this is a Flash bug at this point, though I'd be happy if someone proved me wrong.

    Hi,
    I read the following on another discussion in this forum:
    it appears that with the shortkey ctrl+shift+Y you can force the pc to work around the system fonts
    Maybe that helps.
    Jenny

  • After I optimize my pdf I get this error  "Cannot extract the embedded font 'FONT NAME' Some characters may not display or print correctly.

    After I optimize my pdf I get this error  "Cannot extract the embedded font 'FONT NAME' Some characters may not display or print correctly.

    This Acrobat forum may be a better place to ask: https://forums.adobe.com/community/acrobat/creating__editing_%26_exporting_pdfs

  • Cannot extract the embedded font 'EX_CFF_Arial_Black'. Some characters may not display or print corr

    I have been getting the error....
    Cannot extract the embedded font 'EX_CFF_Arial_Black'. Some characters may not display or print correctly.
    I have tried to look online to figure this out but I have had no luck.  If anyone has any suggestions to fix this I would love to hear them.  Thanks!

    Just to let you know, for anyone else with this problem. I had this problem occur on a MAC when you tried to do save to PDF in excel. This was all happening at the point of generation of the PDF in my case.
    The fix was to delete ALL the microsoft preferences, but perahps only the font cache needed to be deleted.
    I deleted the following areas from the local users userprofile on the mac. On windows, I would probably log in as a differnet user to try to see if the problem just exsists for one particular user.
    Here are the sections I deleted:
    Library/caches/metadata/Microsoft*
    Username/library/preferences/com.microsoft* ( and anyhting with microsoft in it)
    I did leave the entourage settings though.
    hope it helps someone with a similar issue.

Maybe you are looking for

  • Differences between Arch linux and RHEL-based Distros?

    Hi there! So, I am officially trying to make the permanent switch from Windows to Linux. I've used Linux in the past, from Ubuntu, to Fedora, to Mint, and I've always liked Arch the most. Nothing beats the feeling of an OS you had a hand in setting u

  • Main program start before splash screen, help

    hi: below is the splash screen code: import javax.swing.*; import java.awt.event.*; import java.awt.*; import java.io.PrintStream; import java.util.Random; class Splash extends JWindow {      public Splash(String filename, Frame f, int waitTime) {   

  • Safari does not do anything 5.1 and lion 10.7.1

    installed the update for Safari to 5.1 and am running lion 10.7.1 and safari does nothing it is locked up. thanks bill

  • Activation Server unavailable?

    I'm getting an error message upon activation. "Activation Server Unavailable". Anyone else have this issue currently? Called customer service and was told to try again in a few hours. It will be a full 24 hours that it's been down in just a few more

  • End of the day processing job - KLNACHT

    Hi Friends, I am getting following error messages while executing generate utilization job (Transaction -KLNACHT) in Credit Risk Analyzer. Can some one please guide what is the root cause of this issue. Error Message Log -