Embedded fonts in modules

Hi all! I was wondering if the fonts that are embedded in the
main application, can also be used as embedded fonts in the loaded
module?
So far if I list al the embedded fonts in the main
application using Font.enumerateFonts(false), I can see my fonts
are available, but if I do the same in the loaded module, the fonts
are not available anymore. Is there a way to register those fonts
from the main application, to make them avaliable for the modules,
too?
Thanks in advance!

Post Author: sooyeng
CA Forum: Exporting
Hi , we have a similar situation.We are extracting reports to PDF, which subsequently has to be converted to xHTML.The embedded fonts complicates the rendering and as a result, the output size increased exponentially. 

Similar Messages

  • Module not unloading if embedded font was ever used

    So, I have a test app that uses modules with the font embeded. Using ModuleManager I am able to load up the module. Once I call   IModuleInfo.factory.create(), I am then able to setStyle("fontFamily", "BPDiet") and the font does show up. The issue I am now having is that once I have used a font from a module, even if my TextArea is no longer using it (I even tried removing the textArea, and replacing it with a new one), the module will not unload.
    I read through this "What We Know About Unloading Modules" and I think I am not leaving any references around.They are loaded using the load() defaults. There is no code (that is used) in the module. The modules are not being added to the display, so they never receive focus.
    Note that I am unable to run the profiler as suggested in the article as I don't have the premium Flash Builder 4. <grrr>
    Note that the first module that is loaded, I can never get to unload, even if I never used the font embedded in it, but all subsequent modules will unload, if I do not use the embedded font. I can live with the first one being pinned as long as I can unload the others that are not in use.
    Here is the code from one of my modules:
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Module xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx">
        <fx:Script>
            <![CDATA[
                import spark.components.TextArea;
                [Embed(source='assets/BPDiet.otf',
                        fontName='BPDiet',
                           mimeType='application/x-font')]
                public static var BPDietNormal:Class;
                public function GetSampleTextArea():TextArea {
                    var SampleTextArea:TextArea = new TextArea();
                    SampleTextArea.text = "Test BPDiet please!";
                    SampleTextArea.setStyle("fontFamily", 'BPDiet');
                    return SampleTextArea;           
            ]]>
        </fx:Script>
    </mx:Module>
    And here is the App that is loading and using the modules:
    <?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/mx" minWidth="400" minHeight="400">
        <fx:Script>
            <![CDATA[
                import mx.collections.ArrayCollection;
                import mx.core.UIComponent;
                import mx.events.FlexEvent;
                import mx.events.ModuleEvent;
                import mx.managers.SystemManager;
                import mx.modules.IModule;
                import mx.modules.IModuleInfo;
                import mx.modules.Module;
                import mx.modules.ModuleManager;
                import spark.components.TextArea;
                private var _ta:TextArea = null;
                protected var _moduleInfo:IModuleInfo;
                private function LoadFontTextArea(fontSwf:String):void {
                    status.text = "Loading the font pack";
                    _moduleInfo = ModuleManager.getModule(fontSwf);
                    // add some listeners
                    _moduleInfo.addEventListener(ModuleEvent.READY, onModuleReady);
                    _moduleInfo.addEventListener(ModuleEvent.ERROR, moduleLoadErrorHandler);
                    _moduleInfo.addEventListener(ModuleEvent.UNLOAD, moduleUnloadHandler);
                    _moduleInfo.load();
                private function onModuleReady(event:ModuleEvent):void {
                    status.text = "The font pack swf Ready \n" + event.module.url;
                    //All I had todo was create the module, then I could access the embeded font by name
                    var fontMod:* = event.module.factory.create();
                    //_ta = fontMod.GetSampleTextArea();
                    //panelToStuff.addElement(_ta);
                    fontMod = null;
                    //fontNameForSample = event.module.url.replace(".swf", "");
                private function moduleLoadErrorHandler(event:ModuleEvent):void {
                    status.text = "Font Module Load Error. \n" +
                        event.module.url + "\n"+ event.errorText;
                private function moduleUnloadHandler(event:ModuleEvent):void {
                    status.text = "Font Module Unload Event. \n" + event.module.url;
                private function fontChangedHandler():void {
                    unloadCurrentFont();
                    LoadFontTextArea(String(availFonts.selectedItem));
                private function unloadCurrentFont():void {
                    if (_ta != null) {
                        panelToStuff.removeElement(_ta);
                        _ta = null;
                    panelToStuff.removeElement(sampleTextArea);
                    sampleTextArea = null;
                    sampleTextArea = new TextArea();
                    sampleTextArea.id = "sampleTextArea";
                    sampleTextArea.text = "Some text for your viewing pleasure. " + colorForBK.toString(16);
                    panelToStuff.addElement(sampleTextArea);               
                    if (_moduleInfo != null)
                        _moduleInfo.release();
                        //_moduleInfo.unload();
                        _moduleInfo = null;
                    System.gc();
                private function DoNonImportantWork():void {
                    colorForBK -= 0xFAA;
                    if (colorForBK < 0x0) colorForBK = 0xFFFFFF;
                    var foo:* = {prop1: "yea" + colorForBK.toString(), prop2:"boo" + colorForBK.toString()};
                    var hmm:String = foo.prop1 + " " + foo.prop2;
                    regedFonts = new ArrayCollection(Font.enumerateFonts(false));
                [Bindable]
                private var colorForBK:int = 0xFFFFFF;
                [Bindable]
                private var fonts:ArrayCollection =
                    new ArrayCollection(new Array("AlexandriaFLF.swf", "BPDiet.swf", "ChanpagneFont.swf", "KidsFont.swf"));
                [Bindable]
                private var regedFonts:ArrayCollection;
                [Bindable]
                private var fontNameForSample:String = "";
            ]]>
        </fx:Script>
        <s:VGroup id="panelToStuff">
            <s:HGroup>
                <s:Label id="status" text="status area" backgroundColor="{colorForBK}"/>
                <s:VGroup>
                    <s:DropDownList id="availFonts" dataProvider="{fonts}" change="fontChangedHandler()" />
                    <s:Button label="UnLoad" enabled="true" click="unloadCurrentFont()"/>
                    <s:Button label="doSome" enabled="true" click="DoNonImportantWork()"/>
                </s:VGroup>
            </s:HGroup>
            <s:HGroup>
                <s:Button click="fontNameForSample = 'BPDiet';" label="BPDiet"/>
                <s:Button click="fontNameForSample = 'Champagne';" label="Champagne"/>
                <s:Button click="fontNameForSample = 'Kids';" label="Kids"/>
            </s:HGroup>
            <s:Label text="{regedFonts.length} reg'ed"/>
            <s:TextArea id="sampleTextArea" fontFamily="{fontNameForSample}" text="Some Sample text for your viewing"/>
        </s:VGroup>
    </s:Application>
    A couple things to note; I am calling System.rc() in the unloadCurrentFont() method just to speed up seeing the SWF unload in the debug console. The DoNonImportantWork() is there to just cause some events to happen and to create some objects that will need to be GC'ed. It also let me know that the fonts are not getting registered in Font.
    I'm going to have 30 fonts (and more, that designer is busy) that I will need to be able to dynamically load, but right now, loading them with CSS style modules blows up after about 15 because style modules register the font so I cannot unload the CSS swf.

    To help eliminate the question of whether the TextArea is being held by something else, I have removed it from the MXML, and now programatically create it. That did not help.
    So, I got the trial version of Flash Builder 4 installed on another machine in the office so that I can use the profiler. (The profiler is pretty cool by the way).
    After a lot of profiing, I found four paths to the module's FlexModuleFactory.
    Two of those paths go to EmbeddedFontRegistry, whose data is static. I could get into it and remove font entry and free up the moduleFactory from there. This is a hack, that entry in/on EmbeddedFontRegistry.font should have been cleaned up by the code removing the fontFamily from the TextArea. (Note that EmbeddedFontRegistry is marked [ExcludeClass], which I assume means I should not really be messing with it.
    The other two I cannot get to as they are anonymous. They also don't appear to be referenced, as the Object References shows them both as GC root objects. Here is a screen shot:
    I did a search through the sdk code and 'fbs' only shows up as a parameter on the init function of various Marshal support classes, but is not used in the init()
    Anyway, these references to the FlexModuleFactory do not get held if I do not use the embeded font in the module.
    Here is the updated code:
    <?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/mx" minWidth="400" minHeight="400">
        <fx:Script>
            <![CDATA[
                import mx.collections.ArrayCollection;
                import mx.core.EmbeddedFont;
                import mx.core.EmbeddedFontRegistry;
                import mx.core.IEmbeddedFontRegistry;
                import mx.core.UIComponent;
                import mx.events.FlexEvent;
                import mx.events.ModuleEvent;
                import mx.managers.SystemManager;
                import mx.modules.IModule;
                import mx.modules.IModuleInfo;
                import mx.modules.Module;
                import mx.modules.ModuleManager;
                import spark.components.TextArea;
                private var _ta:TextArea = null;
                protected var _moduleInfo:IModuleInfo;
                private function LoadFontTextArea(fontSwf:String):void {
                    status.text = "Loading the font pack";
                    _moduleInfo = ModuleManager.getModule(fontSwf);
                    // add some listeners
                    _moduleInfo.addEventListener(ModuleEvent.READY, onModuleReady);
                    _moduleInfo.addEventListener(ModuleEvent.ERROR, moduleLoadErrorHandler);
                    _moduleInfo.addEventListener(ModuleEvent.UNLOAD, moduleUnloadHandler);
                    _moduleInfo.load();
                private function onModuleReady(event:ModuleEvent):void {
                    status.text = "The font pack swf Ready \n" + event.module.url;
                    //All I had todo was create the module, then I could access the embeded font by name
                    var fontMod:* = event.module.factory.create();
                    fontMod = null;
                private function moduleLoadErrorHandler(event:ModuleEvent):void {
                    status.text = "Font Module Load Error. \n" +
                        event.module.url + "\n"+ event.errorText;
                private function moduleUnloadHandler(event:ModuleEvent):void {
                    status.text = "Font Module Unload Event. \n" + event.module.url;
                private function fontChangedHandler():void {
                    unloadCurrentFont();
                    LoadFontTextArea(String(availFonts.selectedItem));
                private function unloadCurrentFont():void {
                    if (_ta != null && _moduleInfo != null) {
                        var fontName:String = _ta.getStyle("fontFamily");
                        _ta.setStyle("fontFamily", "");
                        _ta.validateProperties();
                        if (_ta.textDisplay) {
                            _ta.textDisplay.validateProperties();
                        panelToStuff.removeElement(_ta);               
                        _ta = null;
                        //This I should not have to do, but the framework is not doing it
                        var embFontReg:IEmbeddedFontRegistry = EmbeddedFontRegistry.getInstance();
                        var embFonts:Array = embFontReg.getFonts();
                        for each (var curEmbFont:EmbeddedFont in embFonts){
                            if (curEmbFont.fontName == fontName){
                                embFontReg.deregisterFont(curEmbFont, _moduleInfo.factory);
                    if (_moduleInfo != null)
                        _moduleInfo.unload();
                        _moduleInfo = null;
                    System.gc();
                private function AddTA():void {
                    _ta = new TextArea();
                    _ta.text = "Some text for your viewing pleasure. " + colorForBK.toString(16);
                    panelToStuff.addElement(_ta);
                private function DoNonImportantWork():void {
                    colorForBK -= 0xFAA;
                    if (colorForBK < 0x0) colorForBK = 0xFFFFFF;
                    var foo:* = {prop1: "yea" + colorForBK.toString(), prop2:"boo" + colorForBK.toString()};
                    var hmm:String = foo.prop1 + " " + foo.prop2;
                [Bindable]
                private var colorForBK:int = 0xFFFFFF;
                [Bindable]
                private var fonts:ArrayCollection =
                    new ArrayCollection(new Array("AlexandriaFLF.swf", "BPDiet.swf", "ChanpagneFont.swf", "KidsFont.swf"));
            ]]>
        </fx:Script>
        <s:VGroup id="panelToStuff">
            <s:HGroup>
                <s:Label id="status" text="status area" backgroundColor="{colorForBK}"/>
                <s:VGroup>
                    <s:DropDownList id="availFonts" dataProvider="{fonts}" change="fontChangedHandler()" />
                    <s:Button label="UnLoad" enabled="true" click="unloadCurrentFont()"/>
                    <s:Button label="AddTA" enabled="true" click="AddTA()"/>
                    <s:Button label="doSome" enabled="true" click="DoNonImportantWork()"/>
                </s:VGroup>
            </s:HGroup>
            <s:Button click="_ta.setStyle('fontFamily', 'BPDiet');" label="BPDiet"/>
        </s:VGroup>
    </s:Application>
    I really think I've reached the end of what I can do. This really seems like a bug.

  • [svn:fx-trunk] 8712: Fix embedded fonts in RSLs ( and more complex module topologies)

    Revision: 8712
    Author:   [email protected]
    Date:     2009-07-21 10:39:03 -0700 (Tue, 21 Jul 2009)
    Log Message:
    Fix embedded fonts in RSLs (and more complex module topologies)
    QE Notes: None
    Doc Notes: None
    Bugs: SDK-22313
    Reviewer: Darrell, Gordon
    API Change: None
    Is noteworthy for integration: No
    tests: checkintests mustella/gumbo/components/TextInput mustella/gumbo/components/TextArea
    Ticket Links:
        http://bugs.adobe.com/jira/browse/SDK-22313
    Modified Paths:
        flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
        flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as
        flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as
        flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java

    Hi Stephan,
    this solved placing both animation on one page.  Make sure all your fonts are called out in the <head> section like for example:
    <script>var __adobewebfontsappname__="dreamweaver"</script>
    <script src="http://use.edgefonts.net/quicksand:n3,n4:default.js" type="text/javascript"></script>
    Dreamweaver does this automatic for you.  If you are having a font conflict I recommend under command  (if you are using dreamweaver)
    Clean up the font Tag and add only the ones that you are using again,  sometimes they accumulate.
    Good Luck.

  • [svn] 1384: Splitting DefineFont into the various DefineFont 1, 2, 3, etc SWF tag formats but retaining a common base DefineFont class so that embedded fonts are still retained as symbols for the SWF dictionary no matter what version of the SWF tag is us

    Revision: 1384
    Author: [email protected]
    Date: 2008-04-24 07:54:58 -0700 (Thu, 24 Apr 2008)
    Log Message:
    Splitting DefineFont into the various DefineFont 1, 2, 3, etc SWF tag formats but retaining a common base DefineFont class so that embedded fonts are still retained as symbols for the SWF dictionary no matter what version of the SWF tag is used.
    Also improving [Embed] so that it can recognize .TTC files as assets (previously these were only recognized through CSS @font-face rules).
    QE: Yes, please add a test case for using [Embed] to embed fonts from a TTC file in addition to our tests for @font-face. Note that the AFEFontManager must be configured for this scenario.
    Doc: No
    Checkintests: Pass
    Mxunit: AtEmbed Font suite: Pass
    Modified Paths:
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/media/AbstractTranscoder.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/media/FontTranscoder.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/util/MimeMappings.java
    flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/fonts/CachedFontManager.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/Dictionary.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/MovieEncoder.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/TagDecoder.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/TagEncoder.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/TagHandler.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/TagValues.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/builder/tags/FontBuilder.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tags/DefineFont.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tags/DefineFontAlignZones.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tags/DefineFontInfo.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tools/SwfxPrinter.java
    Added Paths:
    flex/sdk/trunk/modules/swfutils/src/java/flash/fonts/DefineFont3Face.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tags/DefineFont1.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tags/DefineFont2.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tags/DefineFont3.java
    flex/sdk/trunk/modules/swfutils/src/java/flash/swf/tags/DefineFont4.java
    Removed Paths:
    flex/sdk/trunk/modules/swfutils/src/java/flash/fonts/DefineFontFace.java

    Running the script by python2 solves it for me:
    su - mythtv -c "nice -n 19 python2 /usr/bin/tv_grab_nl_py --output ~/listings.xml"
    Best regards,
    Cedric

  • Embedded fonts dissapear (a bit complicated, read on...)

    This is the actual case:
    There is an SWF which contains just a font to be used by many other SWFs, it is here:
    ./SharedRessources/ComicFont.swf
    Then there is one SWF which imports this font for runtime use:
    ./Selector/Selector.swf
    And another one which also imports this font for runtime use:
    ./Menu/Menu.swf
    They both import the font "for runtime use" and this, relative path: "../SharedRessources/ComicFont.swf".
    This works for both Selector.swf and Menu.swf quite well. The font is displayed correctly.
    BUT now there is this one:
    ./Everything/Everything.swf
    This one loads Selector.swf and Menu.swf BOTH. The result is: The embedded font dissapears!
    The funny thing: If I only load ONE of them, the font is visible.
    So: Having 2 SWFs loaded simultaneously which make use of a font which is "shared for runtime use" destroys it for both.
    Anyone encountered this problem yet? Any simple workarounds? The not-so-simple workaround would be to do it all directly via Actionscript and letting the Container hold all the ressources. But this would just be very comfortable.
    OR could this even be filed as a bug?

    After fiddeling around with the code, I actually found a solution:
    The Font is embedded as a class, "ComicFont". So using the Loader class the usual way to load more than one module that uses this Font will cause the ComicFont class to be overwritten (and thus lost to the module loaded before)
    I ran a test like this for every module loaded:
    for each (li:LoaderInfo in loaderInfos) { // for simplicity: Imagine I have all LoaderInfos of all loaded submodules here
      trace ("Has class ComicFont? "+li.hasDefinition('ComicFont'));
    Doing it the nomal, lazy way, this would output:
    Has class ComicFont? false
    Has class ComicFont? false
    Has class ComicFont? false
    Has class ComicFont? true
    So it seems just the last module actually contained the ComicFont class. No wonder the font disappeared for all the other modules.
    The "trick" was to set the applicationDomain inside the Loader:
    var ld:Loader = new Loader();
    var context:LoaderContext = new LoaderContext();
    context.applicationDomain = ApplicationDomain.currentDomain;
    ld.load(new URLRequest(swfName), context);
    Now the fonts appear in every module and the output of the loop above is:
    Has class ComicFont? true
    Has class ComicFont? true
    Has class ComicFont? true
    Has class ComicFont? true
    I hope this could help someone...

  • Embedding fonts in Bridge (Photoshop CS5)

    Hi folks!
    I'm sorry for posting but I still have trouble with creating PDF via Bridge.
    I have sveral PSD-Files (CS5 made) using several image- and textlayers.
    Now I want to create multipage-PDF using Bridge that comes with PS CS5.
    Works fine so far but Bridge does not embed those fonts used in the PSD!
    Seems to me Bridge just merges all layers to one pixelbased image and saves it in PDF-format.
    But that's no good deal!
    In CS2 there was a much better solution in PS2 allowing to create multipaged PDF with embedded fonts.
    Is there any chance to embed fonts with Bridge?
    Plz don't tell me to use Acrobat or InDesign because I'm only using PS CS5.
    Thx!

    Which version of Camera Raw do you use (Photoshop > About Plug-In > Camera Raw) and which one is needed for that camera?
    Camera Raw plug-in | Supported cameras

  • Unable to load embedded fonts in TlF / FlowLeafElement

    dears,
    I use TextFlowUtil.importFromString and FlowLeafElement to make each some text have its own style, every some words have diffirent color, fontFamily, fontSize....etc
    that is done here in the text attribute in this xml tag, and TextFlowUtil.importFromString and FlowLeafElement make taht perfect:
    <TextArea text="&lt;div direction=&quot;rtl&quot;&gt;&#xD;&#xA;  &lt;p textAlign=&quot;right&quot;&gt;&#xD;&#xA;    &lt;span fontFamily=&quot;ttf&quot; fontSize=&quot;16&quot; color=&quot;#FFE000E0&quot; &gt;Welcome to Android Training. Here you'll find a collection of classes that aim to help you build great apps for &lt;/span&gt;&#xD;&#xA;    &lt;span fontFamily=&quot;Arial&quot; fontSize=&quot;16&quot; color=&quot;#FFE000E0&quot; &gt;Android, using best practices in a variety of framework topics.&lt;/span&gt;&#xD;&#xA;  &lt;/p&gt;&#xD;&#xA;  &lt;p&gt;&lt;/p&gt;&#xD;&#xA;  &lt;p textAlign=&quot;right&quot;&gt;&#xD;&#xA;    &lt;span fontFamily=&quot;Arial&quot; fontSize=&quot;16&quot; color=&quot;#FFE00000&quot;&gt;Each class explains the steps required to solve a problem or implement a feature using code snippets and &lt;/span&gt;&#xD;&#xA;    &lt;span fontFamily=&quot;Arial&quot; fontSize=&quot;16&quot; color=&quot;#FFE00000&quot;&gt;sample code for you to use in your apps.&lt;/span&gt;&#xD;&#xA;  &lt;/p&gt;&#xD;&#xA;  &lt;p&gt;&lt;/p&gt;&#xD;&#xA;  &lt;p textAlign=&quot;right&quot;&gt;&#xD;&#xA;    &lt;span fontFamily=&quot;Arial&quot; fontSize=&quot;16&quot; color=&quot;#FF00E000&quot;&gt;What you see now is just the beginning. We plan to add many more classes, expand and refine existing &lt;/span&gt;&#xD;&#xA;    &lt;span fontFamily=&quot;Arial&quot; fontSize=&quot;16&quot; color=&quot;#FF00E000&quot;&gt;classes, and build Training Courses that help you enhance your apps using objective-oriented collections of &lt;/span&gt;&#xD;&#xA;    &lt;span fontFamily=&quot;Arial&quot; fontSize=&quot;16&quot; color=&quot;#FF00E000&quot;&gt;classes.&lt;/span&gt;&#xD;&#xA;  &lt;/p&gt;&#xD;&#xA;&lt;/div&gt;" direction="rtl" styleName=".textAreaTitle" editable="false" selectable="true" scrollable="false" mainReferance="UI.Components.Basics.TextArea" />
    The problem is that i need to embed fonts, by this fontFamily=&quot;Arial&quot; you can set font name which you want, but if i set font name which is embedded it won't work, like : fontFamily=&quot;ttf&quot;
    the embedded code is :
    [Embed(source='/Resources/majallab.ttf',fontName='ttf',mimeType='application/x-font',embed AsCFF='true')]
                                            var font1:Class; //This is only used to compile the code
    I use Flex SDK 4.5,
    what can i do ?
    Thank you in advance,
    amt

    To use embedded fonts in a Flex component, the fontFamily for the component needs to be set to an embedded font that is in the same SWF as the other embedded fonts in the TextFlow.  See my blog for more details
    Alex Harui
    Flex SDK Team
    Adobe Systems, Inc.
    http://blogs.adobe.com/aharui

  • Unable to load embedded fonts in Textlayout Framework using SWFContext.

    Hi,
        We are having issues with embedding/renderring fonts in swf.
        Here is the code of the slide1.swf compiled by mxmlc.exe [Adobe Flex Compiler (mxmlc) Version 4.1.0 build 16076] with compiler parameters --  "-static-link-runtime-shared-libraries".
    and checked with  Flash player version 10.1 and 10.2 and 10.3.
        package
            import flash.display.Sprite;
            import flashx.textLayout.compose.ISWFContext;
            public class Slide1 extends Sprite implements ISWFContext
                [Embed(source="C:/WINDOWS/FONTS/CALIBRI.TTF", fontName="Calibri", embedAsCFF = "true", unicodeRange="U+0041,U+0072,U+0069,U+0061,U+006C,U+0020,U+004E,U+006F,U+006D", mimeType="application/x-font")]
                public static const calibri:Class;
                [Embed("slide1/sldBg1.png", mimeType="image/png")]
                public static const bg:Class;
                [Embed("slide1/slide1.xml", mimeType="application/octet-stream")]
                public static const slide:Class;
                public function callInContext(fn:Function, thisArg:Object, argsArray:Array, returns:Boolean=true):*
                    if (returns)
                    return fn.apply(thisArg, argsArray);
                    fn.apply(thisArg, argsArray);
        Using Flex 4.1 SDK:--
            When I load the slide1.swf in ActionScript Project it shows the embedded text.
            But, when I load the slide1.swf in  MX+Spark Flex Project, it gives an error :
            Warning: An ActionScript 1.0/2.0 SWF file has loaded an ActionScript 3.0 SWF; code in the ActionScript 3.0 SWF will not run.
           Error TypeError: Error #1034: Type Coercion failed: cannot convert Slide1@f56fce9 to mx.core.IFlexModuleFactory. !
            Below red colored text is the code where the exception occurs.
            var fontClass:Class = ApplicationDomain.currentDomain.getDefinition("slide1") as Class;
          textFlow.flowComposer.swfContext = new fontClass();
            textFlow.flowComposer.addController(new ContainerController(textContainer, containerWidth, containerHeight));   
            textFlow.flowComposer.updateAllControllers();           
            And, when I load the slide1.swf in Only MX Flex Poject, it shows the embedded Font.
        Using Flex 4.5 SDK:--
            With MX+ Spark and MX only Flex Project we get following errors
            VerifyError: Error #1053: Illegal override of createGeometry in flashx.textLayout.elements.FlowGroupElement.
            VerifyError: Error #1053: Illegal override of canReleaseContentElement in flashx.textLayout.elements.SubParagraphGroupElement.
            VerifyError: Error #1103: Class flashx.textLayout.elements::LinkElement cannot extend final base class.
            VerifyError: Error #1053: Illegal override of display in flashx.textLayout.elements.ContainerFormattedElement.
            VerifyError: Error #1053: Illegal override of canReleaseContentElement in flashx.textLayout.elements.FlowLeafElement.
            VerifyError: Error #1053: Illegal override of addParaTerminator in flashx.textLayout.elements.SpanElement.
            VerifyError: Error #1053: Illegal override of canReleaseContentElement in flashx.textLayout.elements.InlineGraphicElement.
            VerifyError: Error #1053: Illegal override of minPercentValue in flashx.textLayout.property.NumberOrPercentProperty.
            VerifyError: Error #1053: Illegal override of hash in flashx.textLayout.property.EnumStringProperty.
            VerifyError: Error #1053: Illegal override of hash in flashx.textLayout.property.BooleanProperty.
            VerifyError: Error #1053: Illegal override of minValue in flashx.textLayout.property.NumberProperty.
            VerifyError: Error #1014: Class flashx.textLayout.property::NumberProperty could not be found.
            VerifyError: Error #1053: Illegal override of minValue in flashx.textLayout.property.IntProperty.
            VerifyError: Error #1014: Class flashx.textLayout.property::IntProperty could not be found.
            VerifyError: Error #1053: Illegal override of hash in flashx.textLayout.property.UintProperty.
            VerifyError: Error #1014: Class flashx.textLayout.property::UintProperty could not be found.
            VerifyError: Error #1053: Illegal override of hash in flashx.textLayout.property.StringProperty.
            VerifyError: Error #1014: Class flashx.textLayout.property::NumberOrPercentProperty could not be found.
            VerifyError: Error #1053: Illegal override of hash in flashx.textLayout.property.ArrayProperty.
            VerifyError: Error #1103: Class flashx.textLayout.elements::TCYElement cannot extend final base class.
            VerifyError: Error #1053: Illegal override of createTextLine in flashx.textLayout.compose.ComposeState.

    Hi Jin-Huang
              But when I use Simple ASProject with SDK 4.1 then it works fine but when I create Flex project then it give error
    with SWFContext.
    I think it's a issue of swfcontext or AS comunication with Spark components.
    Please let me know if any solution.
    Thanks

  • How can I create a PDF with embedded fonts (not a subset of the font) from Excel?

    I need to create PDF's from Excel spreadsheets. The PDF needs to have embedded fonts but every time I create one it only has a subset of the embedded font.  I have tried setting preferences in the Acrobat add in (unchecked the "Subset Embedded Fonts" option and also tried with the Subset Embedded Fonts checked but the percentage set to only 1% in an attempt to force full font to be embedded.)
    I also tried opening the resulting PDF with Acrobat Pro XI but could not figure out how to add the font in.
    A method to accomplish the results from either tool would be great.

    Anna;
    Unless you can add those fonts to your system via the Font book and then substitute them in iPhoto, you'll have to either user the available fonts or create your own pages, 8.5 x 11, in an image editor like Photoshop Elements and use them on pages that are one photo per page. Other's have done that with some success.
    If you has PS or PSE create an 8.5 x 11" canvas at 300 dpi. Then you can add your photos, add text (if PS can use the text), and create your own layout.
    Do you Twango?
    TIP: For insurance against the iPhoto database corruption that many users have experienced I recommend making a backup copy of the Library6.iPhoto database file and keep it current. If problems crop up where iPhoto suddenly can't see any photos or thinks there are no photos in the library, replacing the working Library6.iPhoto file with the backup will often get the library back. By keeping it current I mean backup after each import and/or any serious editing or work on books, slideshows, calendars, cards, etc. That insures that if a problem pops up and you do need to replace the database file, you'll retain all those efforts. It doesn't take long to make the backup and it's good insurance.
    I've written an Automator workflow application (requires Tiger), iPhoto dB File Backup, that will copy the selected Library6.iPhoto file from your iPhoto Library folder to the Pictures folder, replacing any previous version of it. You can download it at Toad's Cellar. Be sure to read the Read Me pdf file.

  • 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();

  • My computer is on a local network. When I access my computer as a local user, Firefox does not render any @font-face embedded font correctly for any website.

    I have tried completely uninstalling and reinstalling, creating a clean profile, and other things. The CSS is correct because it works for every other supported browser...event this particlar installation when used with a network login. Other computers on our network (but not ALL) seem to have similar problems, but only when someone logs on to the machine locally (not via Windows Active Directory).
    The browser attempts to render the embedded font, but it appears jagged, so it's not that the CSS isn't getting seen, the browser just doesn't render it smoothly. Are there any particular settings that I should look at? On every machine I've tested, both the gfx.downloadable_fonts.enabled (true) and gfx.use_text_smoothing_setting (false) configuration settings have been the same.
    I realize that there could be some differences regarding network local computer policy for network logins vs. local logins, but I have no idea how that might pertain to Firefox specifically.
    Thanks for any help you can provide.

    Create a new profile as a test to check if your current profile is causing the problems. <br>
    See '''Creating a profile''':
    *https://support.mozilla.org/kb/profile-manager-create-and-remove-firefox-profiles
    *http://kb.mozillazine.org/Standard_diagnostic_-_Firefox#Profile_issues
    If the new profile works then you can transfer files from a previously used profile to the new profile, but be cautious not to copy corrupted files to avoid carrying over the problem <br>
    '''Profile Backup and Restore'''
    *http://kb.mozillazine.org/Profile_backup
    *https://support.mozilla.org/en-US/kb/back-and-restore-information-firefox-profiles
    *http://kb.mozillazine.org/Transferring_data_to_a_new_profile_-_Firefox

  • When trying to upload a PDF to an interactive site I get the announcement:"The attached PDF file references a non-embedded font Tahoma. Please remove file, embed the font and reattach." How do I embed this, or in fact any other font ?

    When trying to upload a PDF to an interactive site I get the announcement: "The attached PDF file references a non-embedded font Tahoma. Please remove file, embed the font and reattach."
    I could not get rid of the Tahoma font in the WORD file.
    How do I embed this, or in fact any other font ?

    Thank you very much !
    Indeed, I was unaware of the enormous number of options that can be selected when converting a WORD file to PDF.
    I went thru the settings and found the right one for embedding the fonts.
    Thanks again !
    Oren

  • Why do PDFs created with some print presets show the error message "cannot extract embedded font."

    Whenever I create a pdf from InDesign using a press-quality preset, I get an error message upon opening the file. The error message says that an embedded font cannot be extracted.
    InDesign indicates the font is not present in the file.
    In Acrobat's properties, the font in the error message is listed and shows that it is not embedded, and that the actual font is unknown.
    Running the "embed fonts" from preflight fixups doesn't help.

    Found this fix in Preflight: Under prepress, I selected my destination, which is sheetfed offpress (CMYK) and ran the analyze and fix. The updated file opened without the error message.

  • Embedded Fonts are not shown anymore

    When I create a PDF from a Word Doc, the embedded Fonts are not shown anymore. In the previous Version it was working perfectly. My version is currently 11.0.10.

    Thank you for your feedback. The Job im using is simple take a word document converting it into a pdf format. If this is done I will see it in my Acrobat view. There is no fonts at all. The System is notifying me that the font "ETBFGYI+DIN-Regular" are not embedded. And there will be some character not shown or printed correctly. I didn't change anything on the setting of Acrobat. I'm using this Acrobat almost for 2 years and I never had any problem. The Problem came up after the last update of the software to version 11.01.10.

Maybe you are looking for