CS2- How to get the fonts used in a document ?

Hi,
Can anyone tell how to find the the fonts used in the document directly without iterating through the text art used in the document.BCOZ if i iterate through each text frame or character my plugin works very slowly.I want to speed up the process of finding & replacing the fonts like wat we do manually in the "Type-> Find Font" menu thru my code.
Please post ur comments on this .If there is no direct option to find &replace the fonts used in the document ,pls let me know the simplest logic of finding & replacing all occurances of a font in a doc so that my process of doing this should be faster.
Thanks in advance.
myRiaz

As far as I know, there's no way to get a list of fonts in use in a document without iterating over the document and compiling a list by asking every piece of art.
If you want to trigger 'Type > Find Font' there might be a way to invoke that using Actions (AIActionManager.h). I'm not sure if that would help or not though.
This probably isn't very helpful depending on what you're doing, but I think this is meant to be handled by using character styles. That way you can change a style and update any related text instantly. Not much help though if you're just trying to write a S&R font plugin.

Similar Messages

  • How to get the workcentres used in the routing out of 2 alternate routings

    Dear All,
    I would like to know how to get the workcentres used in the routing out of 2 alternate routings.
    I referred PLKO got the Task List Type (PLNTY), Group(PLNNR), Group Counter(PLNAL), Plant(werks).
    I passed this in to PLPO, The problem in PLPO is we don’t have the distinguishing field Group Counter(PLNAL), so I am getting all the ARBID including both alternates.
    How to get the ARBID with respect to Groupcounter 1 alone.
    If a get the ARBID , I can get the ARBPL from CRHD.

    HI,
    Use PLAS Table also.  you have to use PLKO> PLAS> PLPO.
    Pass PLNNR & PLNAL in PLAS and get PLNNR & PLNKN.
    Then pass these into PLPO.
    work centers from CRHD
    Regards,
    Krishna Mohan
    Edited by: Krishna Mohan N on Jan 31, 2008 12:28 PM

  • How to get the link of already archived document

    Dear all,
    How to get the link of already archivied document. for example i have a sales order for which subsequent documents have been archived. now i want to get the link of subsequent document.
    please give some solution
    Thanks in advance
    Thanks,
    Hemachandran.

    Hemachandran,
                The archiving object for sales order is SD_VBAK. If you run the program S3VBAKAU by transaction se38 and search based on the document numbers ( as you mentioned it is the preceeding document numbers to the current document), you will be able to retrieve the information regarding the previous sales orders.
    More information on the sales order archiving object can be found at,
    http://help.sap.com/saphelp_45b/helpdata/en/a9/55c7b690a111d1a5510000e82deaaa/content.htm
    Sojan
    <<text removed by moderator>>
    Edited by: Matt on Nov 16, 2008 5:08 PM - Do not request points

  • [CS2]How to get the Image Width & Height using JS (ILLUSTRATOR CS2)

    Hi,
    How to get the Image width & height of an Image using javascript .Im using Illustrator CS2.
    Any sample code
    Regards
    MyRiaz

    you can reference the dimensions of a loading image (or swf)
    by referencing the target movieclip's dimensions AFTER loading is
    complete. ie, use preloader code or the onLoadInit() method of a
    moviecliploader listener.

  • How to get the font name used in document?

    Hi some one help me to get the font name which should check each text in the Illustrator CS3.
    Please someone guide me..
    sAIFont->FontKeyFromFont(AIFontRef FntRef,&fontKey);
    Here what to set for fontref..

    Oviya... wrote:
    Hi some one help me to get the font name which should check each text in the Illustrator CS3.
    Please someone guide me..
    sAIFont->FontKeyFromFont(AIFontRef FntRef,&fontKey);
    Here what to set for fontref..
    Are you talking about the location of the font?

  • HT4061 My ipad was stolen, i would like to ask how to get the IMEI using the serial number DL*******FJ1.

    my ipad 2 was stolen last january 7, 2013.  i want to know how to get the IMEI.  unfortunately i was not able to connect it to my pc even once.  but i can tract my ipad using my find my iphone in icloud. the serial no is DL*******FJ1.

    Do you have the original retail box the tablet came in? If so its where the barcode is located, ideally labeled as the IMEI.

  • How to change the font used to fill in a text field.

    Can you please tell me how to change the font that comes up when a text field is filled in?
    Can I change this setting in InDesign or does it have to be done in Acrobat?

    It must be done in Acrobat. InDesign only allows Times Roman for some reason.
    To change it in Acrobat 11, open the PDF and select: Tools > Forms > Edit
    and select the field(s) you want to change, bring up the field properties dialog, and look on the Appearance tab for the font dropdown.

  • How to get the View for a particular Document position?

    Hi there,
    Does anyone know how to get the "deepest" View that is responsible for rendering a particular Document offset?
    I tried looking at modelToView() and some other methods, but I am lost.
    Can anyone please help me?
    Thanks,
    Swati

    Bart--
    To find the table cell of the insertion point, you could use something like:
    InterfacePtr<ITextStoryThread> storythreadp(txtModel->QueryStoryThread(startPos + 1));
    InterfacePtr<ICellContent> cellcontentp(storythreadp, UseDefaultIID());
    if (! cellcontentp) {
      // Not a table cell, so see if it's the primary thread (kTextStoryBoss/ITextModel).
      InterfacePtr<ITextModel> threadmodelp(storythreadp, UseDefaultIID());
      if (threadmodelp) {
        // It's the primary thread...
      else {
        // It's something else with an ITextStoryThread (note, footnote, etc.).
    else {
      // The insertion point's in a table cell (kTextCellContentBoss).
      InterfacePtr<ITableModel> tableModel(cellcontentp->GetTableModel(), UseDefaultIID());
      GridID gridID(cellcontentp->GetGridID());
      GridAddress gridLoc(cellcontentp->GetGridAddress());
      // ...and so on.
    Hope this helps get you where you want to go.
    Chris Roueche / Freelance Developer

  • How to get the custom integrator in Manage Document Links

    Hi All,
    My requirement is "Creating Word Documents Using Web ADI", I am following the document
    Oracle® Human Resources Management Systems
    Configuring, Reporting, and System Administration Guide
    Release 12.1
    Part No. E13509-02
    From page no. 194.In that section, No.8. Use the Manage Layout Document Links page to create a link between the
    integrator and layout and the Word template.
    See: Creating Links between Template Letters and Layouts, page 2-33
    2-33>>
    Select Manage Document Links from the Web ADI menu.
    But when I click on the "Manage Document Links", I couldn't see my custom integrator to associate my word document with my integrator.
    I could see only the standard integrators.
    How to get my custom integrator in "Manage Document Links". I could see my custom integrator in define layout but not in this page.
    Thanks.
    With Regards,
    Kali.

    Hussein,
    Thanks for your reply.
    I followed the
    Note 360105.1 -Understanding and Using Web ADI in Oracle HRMS, and the section "Letters",
    I could follow all the steps, except the following,
    The reason is, when I click on Manage Documents Links, I am not getting my newly created integrator.
    If I link a standard integrator "HR People Details" to my document, that is opening properly.
    But I am not able to link my document with my integrator(which is based on my view).
    c.  Now link the template letter to the Letter Integrator and Layout.
    If not already done so, Add the function WebADI Manage Document Links to your Web ADI menu, and give it a prompt of Link Document.
    Select Link Document option , and Web ADI Mail Merge page displays. Choose your Letter Integrator. Link it to the Layout, and a list of template documents uploaded to the database is displayed. Select the template letter to be linked with the layout.
    Thanks.
    With Regards,
    Kali.

  • [CS3][JS] How to get the file type of current document

    Hi,
    How to get the file type of current opening document (e.g., tif, jpeg, png) using JavaScript with Photoshop CS3.
    I am using file object the open the files one by one in the folder (the files sometimes don't have the extensions).
    If the current document is in tiff format then I need to convert to 8-bit, if its an Jpg image then needs to ignore the file.
    Regards,
    Karthik

    Do you really need to know the file type? What about just checking the bit depth?
    var doc = activeDocument;
    if (doc.bitsPerChannel != BitsPerChannelType.EIGHT) {//Not 8 bit
    doc.bitsPerChannel = BitsPerChannelType.EIGHT;
    //do your save etc
    }else{
        //Ignore

  • How to get  the last used session id for a browser session

    In HTMLDB 2.0 it is not possible to start a page with authentication without a SESSION_ID and when you start a public page without a SESSION_ID, then every time a new SESSION_ID is generated when you don't use the SESSION_ID in the URL.
    In the same browser session I want to make a URL call to a HTMLDB page without a SESSION_ID and this page has to give back the last used SESSION_ID.
    How can I do that?

    Fred - You could record that session ID in a table. Each time your authenticated application runs, it would update that table with the "latest" session ID, perhaps using an application process. Then when you are formulating the URL to the public page from another application, you'd get the session ID from that table. Or you could use the page sentry component of your app's authentication scheme to send a cookie to the browser on every page view. The cookie would contain the session ID and the other application could access the cookie to complete the URL.
    Scott

  • How to get the file using file adapter.

    Hi All,
    We have a requirement, IDoc -> PI -> JMS Adapter. Here the IDoc is in Flat file format. How can i consume Flat file version of IDoc into PI using Sender File Adapter for further processing..
    The Flat file version is been created within the SAP Application server "/usr/sap/SID/SYS/global"
    Do I need to specific Source Directory as "/usr/sap/SID/SYS/global" in Sender comm channel? How about the remaining parameters like authentication details?
    plz guide me..
    Thnx

    Check the below link:
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0901cba-f49e-2910-748c-d7ce4c0c4c1c?quicklink=index&overridelayout=true
    go to transaction AL11 and there you can find DIR_HOME with a path.
    D:usrsapPID..
    Double click on the filename, you would be able to view the file content.
    That path is ur Application Server path, there you can save your file. Then in the External Data tab in Scheduling screen select Application server and on the file name press F4 so u can get the AL11 files select that then double click DIR_HOME, select your file.
    It will ask for display contents or copy name. Give COPY NAME the file name with path will be copied.
    If we are using Sender File Adapter to consume the file then what should be the source directory (i.e., /usr/SAP/PID/Global/..)
    If you are on the same network then use File Aapter(NFS).
    Now, the path should be usrSAPPIDGlobal

  • How to get the "where used" of a portal object.

    Hi folks!
    I'm coding a program to get the list of the portal objects where a specific portal object (an iView  for example) is used. I found the method getWhereUsedList from IPcdContext but I'm getting some errors.
    Is this the best/correct way to get a "where used list"?
    Does anyone have an example of how to use this method correctly?
    Thanks in advance.
    Geraldo.

    Hi Tanja, thank you very much for your attention.
    Following your tips I figured out that the error was occurring during the casting and not during the getWhereUsedList method call. Now, I'm casting to Object. I'd like to cast to a more proper class. During my tests I got an error that showed me that the cast should be to a PcdGlSearchResult class. I couldn't find any javadoc for this class and when I changed the cast to this class I started to get a execution class load  error. Please let me know if you have any advice regarding the casting.
    private void getWhereUsed1(IPortalComponentRequest request, String id, StringBuffer sb) {
    InitialContext iCtx = null;
    Object objectId = null;
    String tString = null;
    Hashtable env = null;
    IPcdContext result = null;
                         env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, IPcdContext.PCD_INITIAL_CONTEXT_FACTORY);
    env.put(Context.SECURITY_PRINCIPAL, request.getUser());
    env.put(Constants.REQUESTED_ASPECT, IPcdAttribute.PERSISTENCY_ASPECT);
    try {
    iCtx = new InitialContext(env);
    result = (IPcdContext) iCtx.lookup(id);
    for (NamingEnumeration ne = result.getWhereUsedList(""); ne.hasMoreElements();) {
    objectId = (Object) ne.nextElement();
    tString = objectId.toString();
    sb.append(tString + CR);
    } catch (Exception e) {
    StackTraceElement[] elements = e.getStackTrace();
    for (int i = 0; i < elements.length; i++)
    sb.append(elements<i> + CR);

  • How to get crispy fonts using icewm

    Icewm doesn't produce the same crispy Verdana fonts in thunderbird and firefox, xfce shows (in Arch). I'm very glad with the quality in xfce (I selected antialias off, autohinter on and rgb full). This is my ~/.fonts.conf according to the gentoo-wiki. Should I replace rgba by rgb? How do I set the full rgb?
    Edit: I tried rgb, to no avail.
    In xfce I selected Verdana as a default font for the desktop; how to set it in icewm or in the .fonts.conf?
    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
    <!-- Use the Autohinter -->
        <match target="font">
               <edit name="autohint" mode="assign"><bool>true</bool></edit>
           </match>
    <!-- Antialias off -->
            <match target="font">
      <edit name="antialias" mode="assign"><bool>false</bool>
    </edit>
    </match>
    !-- Enable sub-pixel rendering -->
            <match target="font">
                    <test qual="all" name="rgba">
                            <const>unknown</const>
                    </test>
                    <edit name="rgba" mode="assign"><const>rgb</const></edit>
            </match>
    --></fontconfig>
    Edit: If I leave the Autohinter fraction, xfce doesn't have crisp fonts.
    Last edited by mumpf (2008-01-04 17:29:05)

    Now it works (which means: Icewm and nice crispy fonts):
    my /etc/fonts/fonts.conf (I have replaced sans-serif by verdana)
    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <!-- /etc/fonts/fonts.conf file to configure system font access -->
    <fontconfig>
    <!--
    DO NOT EDIT THIS FILE.
    IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.
    LOCAL CHANGES BELONG IN 'local.conf'.
    The intent of this standard configuration file is to be adequate for
    most environments. If you have a reasonably normal environment and
    have found problems with this configuration, they are probably
    things that others will also want fixed. Please submit any
    problems to the fontconfig bugzilla system located at fontconfig.org
    Note that the normal 'make install' procedure for fontconfig is to
    replace any existing fonts.conf file with the new version. Place
    any local customizations in local.conf which this file references.
    Keith Packard
    -->
    <!-- Font directory list -->
    <dir>/usr/share/fonts</dir>
    <dir>~/.fonts</dir>
    <!--
    Accept deprecated 'mono' alias, replacing it with 'monospace'
    -->
    <match target="pattern">
    <test qual="any" name="family">
    <string>mono</string>
    </test>
    <edit name="family" mode="assign">
    <string>monospace</string>
    </edit>
    </match>
    <!--
    Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
    -->
    <match target="pattern">
    <test qual="any" name="family">
    <string>sans serif</string>
    </test>
    <edit name="family" mode="assign">
    <string>verdana</string>
    </edit>
    </match>
    <!--
    Accept deprecated 'sans' alias, replacing it with 'sans-serif'
    -->
    <match target="pattern">
    <test qual="any" name="family">
    <string>sans</string>
    </test>
    <edit name="family" mode="assign">
    <string>verdana</string>
    </edit>
    </match>
    <!--
    Load local system customization file
    -->
    <include ignore_missing="yes">conf.d</include>
    <!-- Font cache directory list -->
    <cachedir>/var/cache/fontconfig</cachedir>
    <cachedir>~/.fontconfig</cachedir>
    <config>
    <!--
    These are the default Unicode chars that are expected to be blank
    in fonts. All other blank chars are assumed to be broken and
    won't appear in the resulting charsets
    -->
    <blank>
    <int>0x0020</int> <!-- SPACE -->
    <int>0x00A0</int> <!-- NO-BREAK SPACE -->
    <int>0x00AD</int> <!-- SOFT HYPHEN -->
    <int>0x034F</int> <!-- COMBINING GRAPHEME JOINER -->
    <int>0x0600</int> <!-- ARABIC NUMBER SIGN -->
    <int>0x0601</int> <!-- ARABIC SIGN SANAH -->
    <int>0x0602</int> <!-- ARABIC FOOTNOTE MARKER -->
    <int>0x0603</int> <!-- ARABIC SIGN SAFHA -->
    <int>0x06DD</int> <!-- ARABIC END OF AYAH -->
    <int>0x070F</int> <!-- SYRIAC ABBREVIATION MARK -->
    <int>0x115F</int> <!-- HANGUL CHOSEONG FILLER -->
    <int>0x1160</int> <!-- HANGUL JUNGSEONG FILLER -->
    <int>0x1680</int> <!-- OGHAM SPACE MARK -->
    <int>0x17B4</int> <!-- KHMER VOWEL INHERENT AQ -->
    <int>0x17B5</int> <!-- KHMER VOWEL INHERENT AA -->
    <int>0x180E</int> <!-- MONGOLIAN VOWEL SEPARATOR -->
    <int>0x2000</int> <!-- EN QUAD -->
    <int>0x2001</int> <!-- EM QUAD -->
    <int>0x2002</int> <!-- EN SPACE -->
    <int>0x2003</int> <!-- EM SPACE -->
    <int>0x2004</int> <!-- THREE-PER-EM SPACE -->
    <int>0x2005</int> <!-- FOUR-PER-EM SPACE -->
    <int>0x2006</int> <!-- SIX-PER-EM SPACE -->
    <int>0x2007</int> <!-- FIGURE SPACE -->
    <int>0x2008</int> <!-- PUNCTUATION SPACE -->
    <int>0x2009</int> <!-- THIN SPACE -->
    <int>0x200A</int> <!-- HAIR SPACE -->
    <int>0x200B</int> <!-- ZERO WIDTH SPACE -->
    <int>0x200C</int> <!-- ZERO WIDTH NON-JOINER -->
    <int>0x200D</int> <!-- ZERO WIDTH JOINER -->
    <int>0x200E</int> <!-- LEFT-TO-RIGHT MARK -->
    <int>0x200F</int> <!-- RIGHT-TO-LEFT MARK -->
    <int>0x2028</int> <!-- LINE SEPARATOR -->
    <int>0x2029</int> <!-- PARAGRAPH SEPARATOR -->
    <int>0x202A</int> <!-- LEFT-TO-RIGHT EMBEDDING -->
    <int>0x202B</int> <!-- RIGHT-TO-LEFT EMBEDDING -->
    <int>0x202C</int> <!-- POP DIRECTIONAL FORMATTING -->
    <int>0x202D</int> <!-- LEFT-TO-RIGHT OVERRIDE -->
    <int>0x202E</int> <!-- RIGHT-TO-LEFT OVERRIDE -->
    <int>0x202F</int> <!-- NARROW NO-BREAK SPACE -->
    <int>0x205F</int> <!-- MEDIUM MATHEMATICAL SPACE -->
    <int>0x2060</int> <!-- WORD JOINER -->
    <int>0x2061</int> <!-- FUNCTION APPLICATION -->
    <int>0x2062</int> <!-- INVISIBLE TIMES -->
    <int>0x2063</int> <!-- INVISIBLE SEPARATOR -->
    <int>0x206A</int> <!-- INHIBIT SYMMETRIC SWAPPING -->
    <int>0x206B</int> <!-- ACTIVATE SYMMETRIC SWAPPING -->
    <int>0x206C</int> <!-- INHIBIT ARABIC FORM SHAPING -->
    <int>0x206D</int> <!-- ACTIVATE ARABIC FORM SHAPING -->
    <int>0x206E</int> <!-- NATIONAL DIGIT SHAPES -->
    <int>0x206F</int> <!-- NOMINAL DIGIT SHAPES -->
    <int>0x2800</int> <!-- BRAILLE PATTERN BLANK -->
    <int>0x3000</int> <!-- IDEOGRAPHIC SPACE -->
    <int>0x3164</int> <!-- HANGUL FILLER -->
    <int>0xFEFF</int> <!-- ZERO WIDTH NO-BREAK SPACE -->
    <int>0xFFA0</int> <!-- HALFWIDTH HANGUL FILLER -->
    <int>0xFFF9</int> <!-- INTERLINEAR ANNOTATION ANCHOR -->
    <int>0xFFFA</int> <!-- INTERLINEAR ANNOTATION SEPARATOR -->
    <int>0xFFFB</int> <!-- INTERLINEAR ANNOTATION TERMINATOR -->
    </blank>
    <!--
    Rescan configuration every 30 seconds when FcFontSetList is called
    -->
    <rescan>
    <int>30</int>
    </rescan>
    </config>
    </fontconfig>
    My ~/.fonts.conf:
    <?xml version="1.0"?>
    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
    <fontconfig>
    <dir>~/.fonts</dir>
    <match target="font" >
    <edit mode="assign" name="hinting" >
    <bool>true</bool>
    </edit>
    </match>
    <match target="font" >
    <edit mode="assign" name="hintstyle" >
    <const>hintfull</const>
    </edit>
    </match>
    <match target="font" >
    <edit mode="assign" name="antialias" >
    <bool>false</bool>
    </edit>
    </match>
    <match target="font" >
    <edit mode="assign" name="rgba" >
    <const>rgb</const>
    </edit>
    </match>
    </fontconfig>
    By the way I have installed the MS core fonts and I have set my resolution to 96 dpi. In xorg.conf:
    Section "Monitor"
    Identifier "al1721"
    HorizSync 30-83
    VertRefresh 50-75
    Displaysize 337 369
    EndSection

  • How to get the font name?

    Hi i used the following code to find the font in illustrator cs3. but somewhere it exits the loop.
    Please some one guide me.
    AIArtHandle path=NULL,line;
        short artType;    AILayerHandle layer;
        ADMItemRef    ItemRef, FontListRef;   
        ADMListRef    theItemList, FontList;   
        short ccount;int l, i;
        AIErr error;
        long count, FontCount;   
        char buf[250],fonttext[500];
        short forfont;
        AIFontStyle faceStyle;
        AIFontKey fontKey;
        int idx;
        ADMEntryRef entry;
        AIArtHandle textPath=NULL;
        AIArtSet artSet;
        long numLayers;
        unsigned char title[150];
        strcpy(ArtAssess.FontList,"\0");
        error = sAILayer->CountLayers( &numLayers );
        ItemRef = sADMDialog->GetItem(g->qcGuide , lstDifferences);
        theItemList = sADMItem->GetList(ItemRef);
        FontListRef = sADMDialog->GetItem(g->qcCheckDialog , lst_FontsTo);
        FontList = sADMItem->GetList(FontListRef);
        //for ( int q = 0; q< numLayers; q++ )
        for (int q = numLayers-1;q >= 0; q-- )
            error = sAILayer->GetNthLayer( q, &layer ); //extracting layer by layer   
            sprintf(buf,"%d",q);
            MessageBox(NULL,buf,"q",0);
            error = sAILayer->GetLayerTitle( layer, title );
            if(strstr((char*)title,"SCAN")==0 && strstr((char*)title,"Bounding Box")==0)
                error=sAIArtSet->NewArtSet(&artSet);
                error=sAIArtSet->LayerArtSet (layer,artSet );
                error=sAIArtSet->CountArtSet (artSet, &count );
                FontCount =  sADMList->NumberOfEntries( FontList );
                int fontfound=0;
                for(long j=0;j<count;j++)
                    error=sAIArtSet->IndexArtSet (artSet,j,&path );
                    error = sAIArt->GetArtType(path,&artType);
                        if (artType==kTextFrameArt)
                            //char buf[250];
                            AIPathStyle style;
                            AIPathStyleMap styleMap;
                            long index;
                            TextRangesRef selRef;
                            TextRangeRef textRange;
                            sAITextFrame->GetATETextRange(path,&textRange);
                            if ( error ) throw( error );
                            ITextRange itext( textRange );
                            ICharFeatures features=itext.GetUniqueCharFeatures();
                            bool isValid = false;
                            IFont textfont=features.GetFont(&isValid);
                            FontRef FntRef=textfont.GetRef();
                            sAIFont->FontKeyFromFont(FntRef,&fontKey);
                            MessageBox(NULL,"Fonts","2",0);
                            //sAIFont->GetFullFontName(fontKey,fonttext,forfont);
                            sAIFont->GetUserFontName(fontKey,fonttext,forfont);
                            //sAIFont->GetFullFontName(fontKey,fonttext,forfont);
                            sprintf(buf,"%s",(char*)fonttext);
                            MessageBox(NULL,buf,"Font Name",0);
                            bool Exists=CheckIfValueExists(ArtAssess.FontList,buf);
                            if (Exists==false)
                                strcat(ArtAssess.FontList,buf);
                                MessageBox(NULL,ArtAssess.FontList,"Fonts Used",0);
                                strcat(ArtAssess.FontList,";");
                                Exists=true;
        MessageBox(NULL,"End font","",0);
        return kNoErr;

    When dealing with text frames that contain multiple styles such as different fonts, kerning or point sizes etc. You need to split the text frame into text runs.
    Using an ITextRunsIterator you can essentially split the text frame into a list of uniquely-styled text ranges.
            AIArtSet artSet;
            long artCount = 0L;
            AIArtSpec spec = {kTextFrameArt,kArtHidden,0 };
            sAIArtSet->NewArtSet(&artSet);
            sAIArtSet->MatchingArtSet(&spec, 1, artSet)
            sAIArtSet->CountArtSet(artSet,&artCount);
            for (int index = 0; index < artCount ++index)
                TextRangeRef trRef = NULL;
                AIArtHandle art = NULL;
                sAIArtSet->IndexArtSet(artSet,index,&art);
                sAITextFrame->GetATETextRange(art,&trRef);
                ATE::ITextRange textRange(trRef);
                ATE::ITextRunsIterator textRunsIterator(textRange.GetTextRunsIterator());
                while (textRunsIterator.IsNotDone())
                        // All of the text in this text range will have the same stylistic attributes
                        ATE::ITextRange range(textRunsIterator.Item());
                        // Get your character features etc here.
                       textRunsIterator.Next();

Maybe you are looking for

  • Inputting audio/video into my macbook pro? with Apple DVI to Video Adapter?

    I work with video, and am trying to save my minidv cam's life. is there a more direct way to input directly from a vcr/television into my macbook pro? because right now i'm having to input from my vcr/television into my minidv then into my macbook th

  • Access Mysql DB from Azure Linux VM

    Hello Team, We have sated up Linux VM (ubuntu12.04LTS) with apache, MySQL on it. all working fine. Now we want to access Database created in VM form outside form Sqlyog. I have added the endpoint for MYSQL 3306, but while connecting it gives us an Er

  • Characteristic 0MATERIAL is blocked by conversion

    Hi experts, I am transporting the 0MATERIAL changes into production (after extra navigational attribute added), while importing into production system, its giving below error message. Characteristic 0MATERIAL is blocked by conversion the new navigati

  • F Buttons (eg. F1, F2) have lost usual functions please help!

    Bought my MacBook a few days ago and today I think I've done something inadvertently which has knocked all the shortcuts out of whack. For example, F1 has a sign on it to decrease the brightness on screen, F2 has one to increase, F3 I think is someth

  • PM-PP integration documents -reg

    Hi PM friends, does any one help me in analysing the integration of PM module with  other modules especillay with PP If any documents are available please do send regrads madhu kiran