Skip to main content
daitranthanhoa
Inspiring
October 22, 2015
Answered

How can set font to TextRange?

  • October 22, 2015
  • 1 reply
  • 760 views

This is my code , set font of TextRange

iFont=119, font name ="Tunga"

var oTypedValRp = new TypedVal();

oTypedValRp.valType = Constants.FT_Integer;

oTypedValRp.iVal = iFont;                                                  

oDoc.SetTextVal (oTextRange,Constants.FP_FontFamily, oTypedValRp);  

But Result :TextRange has font name ="Symbol"

Why? How can set font to TextRange?

This topic has been closed for replies.
Correct answer Russ Ward

Hi, here is some code that can set the font of a text range. When run as shown, it sets the font of the currently-selected text to "Blackoak Std", if that font exists on your system. Hope this helps.

Russ

var doc = app.ActiveDoc;

var textRange = doc.TextSelection;

applyFontToTextRange(doc, textRange, "Blackoak Std");

function applyFontToTextRange(doc, textRange, fontName)

{

    if(!doc.ObjectValid())

    {

        alert("Invalid document. Cannot continue.");

        return;

    }

   

    var fontFamilyNames = app.FontFamilyNames;

    for(var i = 0; i < fontFamilyNames.length; i++)

    {

        if(fontFamilyNames == fontName) break;

    }

    if(i == fontFamilyNames.length)

    {

        alert("Could not find the specified font, " + fontName);

        return;

    }

    props = AllocatePropVals(1);

    props[0].propIdent.num = Constants.FP_FontFamily;

    props[0].propVal.valType = Constants.FT_Integer;

    props[0].propVal.ival = i;  

   

    doc.SetTextProps(textRange, props);

}

1 reply

Russ WardCorrect answer
Legend
October 22, 2015

Hi, here is some code that can set the font of a text range. When run as shown, it sets the font of the currently-selected text to "Blackoak Std", if that font exists on your system. Hope this helps.

Russ

var doc = app.ActiveDoc;

var textRange = doc.TextSelection;

applyFontToTextRange(doc, textRange, "Blackoak Std");

function applyFontToTextRange(doc, textRange, fontName)

{

    if(!doc.ObjectValid())

    {

        alert("Invalid document. Cannot continue.");

        return;

    }

   

    var fontFamilyNames = app.FontFamilyNames;

    for(var i = 0; i < fontFamilyNames.length; i++)

    {

        if(fontFamilyNames == fontName) break;

    }

    if(i == fontFamilyNames.length)

    {

        alert("Could not find the specified font, " + fontName);

        return;

    }

    props = AllocatePropVals(1);

    props[0].propIdent.num = Constants.FP_FontFamily;

    props[0].propVal.valType = Constants.FT_Integer;

    props[0].propVal.ival = i;  

   

    doc.SetTextProps(textRange, props);

}

daitranthanhoa
Inspiring
October 23, 2015

Thank you very much, it working ok.