Adding a rectangle behind every piece of text in CS5

Hi,
I am making a series of map tiles (30) and would like to have a white rectangle behind every peice of black text in a certain layer. I know how to add a rectangle and position it behind the text, but want to avoid this repetive process.
I understand that each piece of text has a 'bounding box' - is there a way to add a fill to this box for all text at once?
Thanks,
Mike.

Mike,
You may:
1) Select all the instances of Type,
2) In the Appearance palette flyout tick Add New Fill, drag it down below Characters, and change its colour to white,
3) With the white Fill selected, Effect>Convert to Shape with the desired oversize.
Edit: Once again, hi Kurt.

Similar Messages

  • Published to folder iWeb site always using Times New Roman for every piece of text in published site and not showing the original text style used when building the site in iWeb.

    Dear All
    Hello from rainy, windy and cold North East England! I need to ask for your help as I'm new to iMac and new to iWeb and it's frustrating the life out of me!
    I'm just beginning to build a website for my business. Previously, I used Frontpage, but it's been that long since I used it - I've forgotten half of it and so, I'm using iWeb instead as it's silly to use an iMac for business but a PC laptop for the website design.
    I've got the background image I want on the homepage (beautiful image of a rain forest - even if I do say so myself!) and I'm trying to enter a text box at the lower half of the screen, in the centre of the page saying 'click to enter'. I type in the text, I edit it so as to change it to the font style of my company (Gill sans MT) and then I publish the site to a folder so that I can see what it would look like when viewed via the internet. When I do this - the font changes size to a bog standard size of 'so small you need a magnifying glass to read it', it changes colour from black to purple (which looks disgusting) and it changes font style from Gill Sans MT to Times New Roman.
    It doesn't matter if I delete the entire site and start again or delete the text box, and insert a new one. I've googled this subject until I'm blue in the face and I can't find an answer - can anyone suggest anything that will help?
    Many thanks for your help,
    Best wishes,
    Sean.

    Try the following:
    delete the iWeb preference files, com.apple.iWeb.plist and com.apple.iWeb.plist.lockfile, that resides in your Home() /Library/Preferences folder.
    go to your Home()/Library/Caches/com.apple.iWeb folder and delete its contents.
    Click to view full size
    launch iWeb and try again.
    NOTE: If you don't use  Web Safe Fonts any computer that does not have that font installed  will substitute another font for it and change the look and feel of the web page.
    So it's safest to use one of those web safe fonts.
    OT

  • Slanted rectangle behind text - any chance to automate the process?

    Hi there,
    I would like to create effect which you can see on this image:
    The black and orange rectangles behind the capitals. The source which is pictured above comes from professional studio. They put separate rectangle behind the textframe:
    Imagine, that you create a catalog of 500 products. Each product has one black and one color rectangle. There are 20 different color codes for the bottom rectangle (these rectangles vary a bit in length, depending on the size of the text above). I feel putting a square object to the bottom layer like a bit clumsy approach. It is like creating paragraph dividers by Line Tool. Could you recommend some more tidier way for this? I am almost sure, that I will put a thousand of those rectangles to the layout and the client will decide ( a day before print), that "the reversed skew would look more professional"…
    The best way for this would be a Paragraph rule, but — what a surprise — no chance to skew the ends.
    I tried to create the new stroke preset, but no skew options.
    I also skewed the line manually and try to create the Object Style from it. The skew was not inherited by the new Object Style.
    Do I really do this manually in the age of spaceflights, cellphones and even electric tea kettles?
    Thank you!

    Hi all,
    Marc Autret has confirmed me his OK to unveil this great code.
    AjustementMagique.jsx permits a horizontal "scaling", in particular for tables. It works fine with ID CS4 (a very little bug sometimes). Not tested with CS5.
    But ... it does not work under ID CS6, CC and CC 2014!
    Marc gives his blessing to the heroes who would wish to do the update! 
    Enjoy!
    /*      AjustementMagique pour InDesign CS / CS2 -- 18/01/06           */
    /*      version 2.1b (FR) -- auteur: Marc Autret                       */
    /*      Explications : http://marcautret.free.fr/geek/indd/magicfit/   */
    /*      Installation et Utilisation:                                   */
    /*      0) !! Pour InDesign CS2 seulement !!                           */
    /*         Renommez le present fichier avec l'extension .jsx           */
    /*         (afin d'activer les fonctions extend script)                */
    /*      1) Placer le present fichier dans le sous-dossier              */
    /*         Presets/Scripts/ de l'application InDesign                  */
    /*      2) Lancer InDesign, ouvrir un document et selectionner         */
    /*         le(s) elements(s) a ajuster: bloc(s), colonnes(s)           */
    /*         [a defaut, le script ajuste le conteneur du pt d'insertion] */
    /*      3) Executer le script par Fenetre>Scripts>Scripts              */
    /*         suivi d'un double-clic sur AjustementMagique.js             */
    /*         (ou affecter au script un raccourci-clavier via             */
    /*         Edition>Raccourcis-clavier>Zone:"scripts")                  */
    /*      4) Un second appel du script sous un delai de 2 secondes       */
    /*         optimise si c'est possible l'ajustement (mode "fluide")     */
    /*                  Feedbacks : [email protected]                     */
    // REGLAGES
    var LATENCE = 2; // en secondes (defaut: 2)
    var PRECISION = 0.5; // en points (defaut:0.5)
    var APP_INT_VERSION = parseInt(app.version);
    // UTILITAIRES
    /*void*/ function exitMessage(/*exception*/ ex)
    alert("Erreur:\n" + ex.toString());
    exit();
    // METHODES DE LA CLASSE DOCUMENT
    /*void*/ Document.prototype.setUnitsTo = function(/*units*/ newUnits)
    // units est soit une valeur simple (horiz=vert), soit un array(horizUnits, vertUnits)
    var arrUnits = (newUnits.length) ? newUnits : new Array(newUnits,newUnits);
    this.viewPreferences.horizontalMeasurementUnits = arrUnits[0];
    this.viewPreferences.verticalMeasurementUnits = arrUnits[1];
    /*arr2*/ Document.prototype.getUnits = function()
    return(Array(
      this.viewPreferences.horizontalMeasurementUnits,
      this.viewPreferences.verticalMeasurementUnits));
    /*bool*/ Document.prototype.withinDelay = function()
    if (this.label)
      return( (Date.parse(Date())-this.label) <= LATENCE*1000 );
    return(false);
    /*void*/ Document.prototype.storeTimeStamp = function()
    this.label = Date.parse(Date()).toString();
    // METHODES GENERIQUES (NIVEAU OBJECT)
    /*arr*/ Object.prototype.asObjsToFit = function()
    // Retourne le(s) "conteneur(s) ajustable(s)" associe(s) a THIS
    // Type de retour: array OU collection
    // NULL en cas d'echec
    switch(this.constructor.name)
      case "TextFrame" : // textframe -> singleton this
      return(Array(this));
      case "Cell" : // cells -> parent columns
      var r = new Array();
      // !! [CS1] Cell::parentColumn === Cell !!
      // !! [CS2] Cell::parentColumn === Column !!
      // !! [CS2] Cells::lastItem().parentColumn BUG !!
      var c0 = this.cells.firstItem().name.split(":")[0];
      var c1 = this.cells.lastItem().name.split(":")[0];
      for (var i=c0 ; i<=c1; i++)
      r.push(this.parent.columns[i]);
      return(r);
      case "Table" /*CS2*/ : // table -> columns
      return(this.columns);
      case "Group" : // group -> textFrames
      return((this.textFrames.length>0) ? this.textFrames : null);
      case "Text" : // Text ou InsertionPoint
      case "InsertionPoint" : // -> travailler sur le conteneur
      var textContainer = this.getTextContainer();
      return((textContainer) ? textContainer.asObjsToFit() : null);
      default:
      return(null);
    /*obj*/ Object.prototype.getTextContainer = function()
    // Renvoie le TextFrame ou la cellule (Cell) contenant THIS
    // (Text ou InsertionPoint)
    // NULL si echec
    try { // try...catch because of CS2 behaviour
      if (this.parent.constructor.name == "Cell")
      return(this.parent);
      if (this.parentTextFrames) // pluriel sous CS2
      return(this.parentTextFrames[0]);
      if (this.parentTextFrame) // sing. sous CS1
      return(this.parentTextFrame);
      return(null);
    catch(ex) {return(null);}
    /*int*/ Object.prototype.computeIncludedObjectsWidth = function()
    // Analyse les objets incorpores (tables, PageItems) pour extraire
    // la largeur maxi qu'ils occupent
    // Le tableau objsNames peut etre etendu pourvu que
    // l'objet ajoute fournisse une methode computeWidth()
    var objsNames = new Array("pageItems","tables");
    var objsWidth = 0;
    var w = 0;
    for (var j=objsNames.length-1 ; j>=0 ; j--)
      for (var i=this[objsNames[j]].length-1 ; i>=0 ; i--)
      try
      {w = this[objsNames[j]][i].computeWidth({VISIBLE:true});}
      catch(ex)
      {w=0;}
      if (w > objsWidth) objsWidth=w;
    return(objsWidth);
    /*int*/ Object.prototype.computeWidth = function(/*bool*/ VISIBLE)
    // Methode generique pour les composants possedant des Bounds
    // VISIBLE true -> largeur EXTERNE
    // VISIBLE false -> largeur INTERNE
    if (VISIBLE)
      if (this.visibleBounds)
      return(this.visibleBounds[3]-this.visibleBounds[1]);
    else
      if (this.geometricBounds)
      return(this.geometricBounds[3]-this.geometricBounds[1]);
    return(0);
    /*int*/ Table.prototype.computeWidth = function()
    // Specialise Object::computeWidth dans le cas d'une Table
    return(this.width);
    /*arr*/ Object.prototype.createLinesSizesArray = function()
    // Renvoie sous forme de tabeau la taille (en cars) des lignes de THIS
    // Tableau vide si this.lines==NULL  OU  this.lines.length==0
    r = new Array();
    if (this.lines)
      for (var i=this.lines.length-1; i>=0 ; i--)
      r.unshift(this.lines[i].characters.length);
    return(r);
    /*bool*/ Object.prototype.isoceleLines = function(/*arr*/ arrSizes)
    // Indique si THIS.lines[i].characters.length == arrSizes[i] pour tout i
    if (this.lines.length != arrSizes.length) return(false);
    for (var i=arrSizes.length-1 ; i>=0 ; i--)
      if (arrSizes[i] != this.lines[i].characters.length)
      return(false);
    return(true);
    // METHODES SPECIFIQUES A TEXTFRAME
    /*bool*/ TextFrame.prototype.isEmpty = function()
    return(this.characters.length==0);
    /*bool*/ TextFrame.prototype.isOverflowed = function()
    return(this.overflows);
    /*int*/ TextFrame.prototype.getWidth = function()
    return(this.computeWidth({VISIBLE:false}));
    /*void*/ TextFrame.prototype.resizeWidthBy = function(/*int*/ widthOffset)
    // Redimensionne la largeur de widthOffset (signe)
    this.geometricBounds = Array(
      this.geometricBounds[0],
      this.geometricBounds[1],
      this.geometricBounds[2],
      this.geometricBounds[3] + widthOffset);
    /*int*/ TextFrame.prototype.computeMinWidth = function()
    // Renvoie la largeur mini du bloc compte tenu des objets
    // incorpores et de l'espacement interne (inner space)
    var inSpace = this.textFramePreferences.insetSpacing;
    var inWidth = (inSpace.length) ?
      inSpace[1] + inSpace[3] : // inspace gauche et droit distincts
      2*inSpace; // inspace uniforme
    return(this.computeIncludedObjectsWidth() + inWidth);
    /*int*/ TextFrame.prototype.getCharsCount = function()
    return(this.characters.length);
    /*int*/ TextFrame.prototype.getLinesCount = function()
    return(this.lines.length);
    /*arr*/ TextFrame.prototype.getLinesSizes = function()
    return(this.createLinesSizesArray());
    /*int*/ TextFrame.prototype.preserveCharsCount = function(/*int*/ charsCount)
    // OUI -> -1  , NON -> 1
    return( (this.characters.length != charsCount) ? 1 : -1 );
    /*int*/ TextFrame.prototype.preserveLinesCount = function(/*int*/ linesCount)
    // Indique si:
    // - nb de chars = linesCount
    // - le bloc NE DEBORDE PAS
    // OUI -> -1  , NON -> 1
    return( ((this.overflows) || (this.lines.length != linesCount)) ? 1 : -1 );
    /*int*/ TextFrame.prototype.preserveLinesSizes = function(/*arr*/ linesSizes)
    // Indique si:
    // chaque ligne x est isocele a linesSizes[x]
    // YES -> -1  , NOT -> 1
    return( (this.isoceleLines(linesSizes)) ? -1 : 1 );
    // METHODES SPECIFIQUES A COLUMN
    /*bool*/ Column.prototype.isEmpty = function()
    for (var i=this.cells.length-1; i>=0 ; i--)
      if (this.cells[i].characters.length>0) return(false);
    return(true);
    /*bool*/ Column.prototype.isOverflowed = function()
    // Indique si au moins une cellule est saturee
    // !! ATTENTION: Column::overflows n'est pas fiable !!
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      if (this.cells[i].overflows) return(true);
    return(false);
    /*int*/ Column.prototype.getWidth = function()
    return(this.width);
    /*void*/ Column.prototype.resizeWidthBy = function(/*int*/ widthOffset)
    // Redimensionne la largeur de colonne de widthOffset (signe)
    // !! Il faut RAFRAICHIR l'affichage !!
    this.width += widthOffset;
    // rafraichissement
    if (APP_INT_VERSION > 3)
      // CS2+
      this.recompose();
    else
      // CS -- merci a Tilo pour ce hack --
      for(var i = this.cells.length - 1 ; i >= 0 ; i-- )
      // Ce test stupide provoque le rafraichissement!
      if (this.cells[i].contents == null) {}
    /*int*/ Column.prototype.computeMinWidth = function()
    // Renvoie la largeur mini de la colonne compte tenu des
    // objets incorpores et de l'espacement interne
    var iCell = null;
    var w = 0;
    var r = 0;
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      iCell = this.cells[i];
      w = iCell.computeIncludedObjectsWidth() +
      iCell.leftInset + iCell.rightInset;
      if (w > r) r = w;
    return(r);
    /*arr*/ Column.prototype.getCharsCount = function()
    // Renvoie (tableau) le nb de cars de chaque cellule
    // si la cellule est saturee, le nb de cars est signe negativement
    var r = new Array();
    var sgn = 0;
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      sgn = (this.cells[i].overflows) ? -1 : 1;
      r.unshift(sgn * this.cells[i].characters.length);
    return(r);
    /*arr*/ Column.prototype.getLinesCount = function()
    // Renvoie (tableau) le nb de lignes par cellules
    var r = new Array();
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      r.unshift(this.cells[i].lines.length);
    return(r);
    /*bi-arr*/ Column.prototype.getLinesSizes = function()
    // Renvoie le nb de chars par cellule et par ligne (matrice)
    var r = new Array();
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      r.unshift(this.cells[i].createLinesSizesArray());
    return(r);
    /*int*/ Column.prototype.preserveCharsCount = function(/*arr*/ charsCount)
    // Indique si:
    // le signe de debordement (overflow) de la cellule X egale sgn(charsCount[X])
    // OUI -> -1  , NON -> 1
    var sgn = 0;
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      sgn = (this.cells[i].overflows) ? -1 : 1;
      if (sgn * charsCount[i] < 0) return(1);
    return(-1);
    /*int*/ Column.prototype.preserveLinesCount = function(/*arr*/ linesCount)
    // Indique si:
    // - le compte de lignes de la cellule x egale linesCount[x]
    // - aucune cellule ne deborde
    // OUI -> -1  , NON -> 1
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      if (this.cells[i].overflows) return(1);
      if (this.cells[i].lines.length != linesCount[i]) return(1);
    return(-1);
    /*int*/ Column.prototype.preserveLinesSizes = function(/*bi-arr*/ linesSizes)
    // Indique si:
    // - dans chaque cellule x, chaque LIGNE y est isocele a linesSizes[x][y]
    // (si une cellule deborde, renvoie 1)
    // OUI -> -1  , NON -> 1
    for (var i=this.cells.length-1 ; i>= 0 ; i--)
      if (this.cells[i].overflows) return(1);
      if (this.cells[i].isoceleLines(linesSizes[i]) == false) return(1);
    return(-1);
    // METHODES CENTRALES
    /*void*/ Object.prototype.manageFit = function(/*bool*/ FLUIDFITTING)
    // !! Sous CS2, previent un crash sur les "grosses" selections multicolonnes !!
    // !! Thx to Tilo for this hack --
    if (APP_INT_VERSION>=4)
      $.gc();
    // ne rien faire si objet vide
    if (this.isEmpty()) return;
    // largeur mini a preserver
    var minWidth = this.computeMinWidth();
    // let's go!
    this.processFit(FLUIDFITTING, minWidth);
    /*void*/ Object.prototype.processFit = function(/*bool*/ FLUIDFITTING, /*int*/ minWidth)
    // Ajuste cet objet en largeur
    // FLUIDFITTING true -> methode fluide, sinon: methode stricte
    // minWidth fixe le seuil minimal
    if (FLUIDFITTING)
      { // AJUSTEMENT FLUIDE
      if (this.isOverflowed())
      { // NB : les cellules saturees sont "transparentes" (negligees)
      var charsCount = this.getCharsCount();
      var evalFlag = function(thisObj)
      {return(thisObj.preserveCharsCount(charsCount));}
      else
      var linesCount = this.getLinesCount();
      evalFlag = function(thisObj)
      {return(thisObj.preserveLinesCount(linesCount));}
    else
      { // AJUSTEMENT STRICT
       // NB : les colonnes contenant 1 cellule saturee sont inchangees
      if ((this.constructor.name=="Column") && (this.isOverflowed()))
      return;
      var linesSizes = this.getLinesSizes();
      var evalFlag = function(thisObj)
      {return(thisObj.preserveLinesSizes(linesSizes));}
    // BOUCLE DICHOTOMIQUE
    var sgnFLAG = -1;
    var w = ( this.getWidth() - minWidth ) / 2;
    while (w >= PRECISION)
      // redim la largeur de +/- w
      this.resizeWidthBy(sgnFLAG*w);
      // +1 = augmenter | -1 = reduire
      sgnFLAG = evalFlag(this);
      // diviser le segment
      w = w/2;
    // sortie avec sgnFLAG==+1 -> annuler la derniere reduction -> +2w
    if (sgnFLAG>0) this.resizeWidthBy(2*w);
    // PROGRAMME PRINCIPAL
    if ( app.documents.length > 0 )
      if ( app.activeWindow.selection.length > 0 )
      try {
      var thisDoc = app.activeDocument;
      var FLUIDFLAG = thisDoc.withinDelay();
      var memUnits = thisDoc.getUnits();
      thisDoc.setUnitsTo(MeasurementUnits.points);
      var selObjs = app.activeWindow.selection;
      var objsToFit = null;
      for (var i=selObjs.length-1 ; i>=0 ; i--)
      objsToFit = selObjs[i].asObjsToFit();
      if (objsToFit)
      for (var j=objsToFit.length-1 ; j>=0 ; j--)
      objsToFit[j].manageFit(FLUIDFLAG);
      thisDoc.setUnitsTo(memUnits);
      thisDoc.storeTimeStamp();
      catch(ex)
      thisDoc.setUnitsTo(memUnits);
      exitMessage(ex);
      else
      alert("Aucun objet n'est selectionne!");
    else
      alert("Aucun document n'est ouvert!");

  • How would I go about adding multiple rectangles using the same lines of code?

    How would I go about adding multiple rectangles using the same lines of code? I would prefer to just run through a set of code every time I need a polygon. If I just have to create multiple polygon adding statements that's fine but I'd prefer just 1.

    >>How would I go about adding multiple rectangles using the same lines of code?
    You could create a method that creates and returns x number of Rectangle elements:
    public IEnumerable<Rectangle> CreateRectangles(int numberOfRectsToCreate)
    for (int i = 0; i < numberOfRectsToCreate; ++i)
    Rectangle rect = new Rectangle();
    rect.Fill = Brushes.Blue;
    rect.Width = 100;
    rect.Height = 100;
    yield return rect;
    ..and then call this method from anywhere in your code:
    IEnumerable<Rectangle> rects = CreateRectangles(5);
    foreach (Rectangle rect in rects)
    //add to StackPanel or do whatever with the Rectangle elements:
    yourStackPanel.Children.Add(rect);
    >>If I just have to create multiple polygon adding statements that's fine but I'd prefer just 1.
    When adding Point objects to a Polygon you can only add one per call to the Add method but you could call the Add method inside a loop, e.g:
    for(int i = 0; i < 10; ++i)
    //add to StackPanel or do whatever with the Rectangle elements:
    Polygon p = new Polygon();
    p.Points.Add(new Point());
    Please remember to close your threads by marking helpful posts as answer and then start a new thread if you have a new question. Please don't post several questions in the same thread.

  • My husband got a new phone number, however, every time he texts me it still says he's texting from his old number.  I've even erased him as a contact and reprogrammed him.  How do I correct this?

    My husband got a new phone number, however, every time he texts me it says it's coming from his old phone number.  I've even deleted him from my contacts and my hotmail contacts, resynced my hotmail contacts, then added my husband as a new contact.  Both of his phones were iPhones but his previous carrier was Verizon and his new carrier is Viaero.  I'm still on Verizon.

    I've fixed my own problem.
    In the end, the issue was with iMessage on the other phone, not mine.
    While I had it connected to iTunes (the other phone, not mine), I could see that iTunes thought it was the temporary number (07429...). I turned iMessage off and back on again and the phone number in iTunes changed to the old (i.e correct) number (07903...).
    Subsequently, texts from my phone to the other phone showed up as blue-bubbled iMessages.
    Hope this helps someone!
    Thanks for reading, if you did.

  • I downloaded the new 6 software. Me and my boyfriend share the same iTunes account and now every time I text him I also get a copy of the text sent to my from my number. How do I get that to stop?

    I downloaded the new 6 software. Me and my boyfriend share the same iTunes account and now every time I text him I also get a copy of the text sent to my from my number. How do I get that to stop?

    Go to settings > messages > send & receive
    check or uncheck the correct phones numbers and/or email addresses

  • TS1702 Hi, I'm experiencing a problem with app I've just purchased from iTunes, I have tried every piece of advice from the "iOS: Troubleshooting applications purchased from the App Store" and still nothing is working. I would like to get my refund on thi

    Hi, My name is Bheki Yende
    I'm experiencing a problem with an app I've just purchased from iTunes, I have tried every piece of advice from the "iOS: Troubleshooting applications purchased from the App Store" and still nothing is working. I would like to get my refund on this pls.
    This is an inconvenience, I don't understand why I have to contact the developer for a faulty product in your store.
    I've paid iTunes to get this, so iTunes must fix this problem for me or give my money back.
    Thanks

    This is a user forum, you are not speaking to Apple here.
    You will need to contact iTunes support here, regarding this issue. They will usually respond within 24 hours.

  • Getting the Physical Length of a Piece of Text (in mm etc.) in Javascript

    I'm trying to write a script in Indesign CS5 (Windows) that can measure the physical, 'rendered' length of two pieces of text of similar length (in mm etc.), calculate the average length of the two, and adjust the tracking/horizontal scale of one or both of the pieces of text so that the physical length of both texts are the same.
    I need a script because this task must be done thousands of time in a long document.
    I'm struggling to find a way to access the 'rendered' length of a piece of text in Javascript.
    I know among the attributes of a text box is whether the text has overrun. So I could copy the text to a special text-box, and use a for loop to reduce the dimentions of the text box, 1mm at a time, until the text box overruns, thus determining the length..
    I could also get the length of a rendered string using python with it's built in GUI toolkit Tkinter:
    http://stackoverflow.com/questions/2922295/calculating-the-pixel-size-of-a-string-with-pyt hon
    And then have an indesign script that takes some data from the python script and sets the tracking/horizontal in Indesign with some fudge factors.
    Both ideas seem like real kludges.
    Any other suggestions?
    Many thanks
    David

    You can simply iterate through each line in text to get the widest line. Something like this:
    Main();
    function Main() {
        var text = app.selection[0],
        minLength, maxLength, start, end;
        for (var i = 0; i < text.lines.length; i++) {
            start = text.lines[i].characters[0].horizontalOffset,
            end = text.lines[i].characters[text.lines[i].characters.length-1].horizontalOffset;
            if (minLength == undefined || start < minLength) {
                minLength = start;
            if (maxLength == undefined || end > maxLength) {
                maxLength = end;
        var length = maxLength - minLength;
        $.writeln(length);
    But this approach seems to be a little less precise than creating outlines since (I guess) it measures up to the beginning of the last character; discretionary hyphens, line brakes, etc. are not included into the measurement.

  • Problems rendering Every-line Composer texts with Adobe Media Encoder

    I find the text paragraph setting "Adobe Every-line Composer" a huge time saver when dealing with large amounts of text in after effects. I rarely have to do any manual tracking or line breaks to make it look good, as opposed to working with the standard Single-line Composer.
    The problem is that when I render through Adobe Media Encoder (which I'm forced to do since they removed H264-mp4 support from AE:s internal renderer) the text is treated like single-line composed text. So the final render doesn't look like my AE project.
    I've found two solutions to this problem:
    1. Render a lossless video file in the AE renderer and then compress it with Media Encoder. This takes more time and HDD space, and it doesn't allow me to continue working in AE while rendering.
    2. Only use Single-line composed text and make all adjustments manually, the old school way. This would not be a problem if I had not already used, and fallen in love with, the Every-line option.
    Is there anyone that can think of a third, and preferably better, solution?
    I use the CC 2014 versions of AE and AMC.

    No, the text doesn't animate at all. It's just a normal static text box. The text part is extremely simple. All animations are done in other layers and pre-comps, combined with pre-rendered 3D graphics from Cinema 4D, rendered as image sequences. My problem is a bug, plain and simple. Or perhaps you could call it a "lack of feature support" or an "incompatibility between AE and Adobe Media Encoder".
    My problem appears only when my AE project has text boxes with the "Every-line Composer" option enabled (press the menu button in the Paragraph window to find it), AND the project is rendered through Adobe Media Encoder, no matter which output format I use. I have no problems what so ever inside of after effects, or when rendering Single-line Composer text in AMC.
    So, the problem is that Media Encoder doesn't recognize Every-line composed text. Instead it changes it to Single-line composed text, messing up text tracking and line breaks.
    To clarify: the Adobe Every-line Composer is analyzing the entire text box instead of only the current line. That way it can automatically change the tracking of individual lines to better distribute the line breaks and build a better whole, avoiding those stray words on the last line for example. Extremely handy, if you could only render it.
    I never wrote anything about animating text or that the codec is related to the text problems in any way. AMC is the problem. The codec is only a secondary problem since its the lack of mp4 H264 support that forces me to use Media Encoder in the first place, instead of using the AE render queue as I did in previous versions of AE. I like many things about rendering through AMC, like being able to continue working in AE while rendering, but there are still way too many glitches. And of course, there's the inability to render flv-files in AMC CC 2014, and Adobe's inability to provide a solution other than "Use an older version of AMC". Flv is their own damn format for christ's sake.
    Well, enough rambling.
    To put it simple:
    Has anyone had a problem with "Every-line Composer" in combination with Adobe Media Encoder? Did you find a solution other than the two less-than-perfect ones in my first message?
    Thanks!

  • Returning a piece of text in a SELECT

    Hello!
    I'm doing a search in a table that has four fields:
    ID
    NAME varchar(128)
    TEXT1 varchar(500)
    TEXT2 varvhar(500)
    Well, I need to search for a word in fields TEXT1 and TEXT2. My
    first step is to do the following:
    SELECT ID,NAME
    FROM TABLE
    WHERE CONTAINS(TEXT1,'word',1) > 0
    AND CONTAINS(TEXT2,'word',2) > 0
    Well, til here is all ok, but now... I need something more
    difficult:
    I need to obtain for each ID, the piece (or the first piece) of
    text where 'word' was found on, considering that this word can
    be allocated in TEXT1 or in TEXT2.
    Thank you very much!!
    Carlos Moreno

    Carlos...
    I'm not familiar with the CONTAINS function, but I'll assume it
    returns a number greater than zero when the desired condition is
    met.
    The way your where clause is written, the result set will
    include only those rows from TABLE where 'word' is in BOTH TEXT1
    and TEXT2.
    I'm guessing about what you want, but here goes...
    SELECT id
         , name
         , CONCAT( DECODE( SIGN( CONTAINS(text1,'word',1) )
                         , 1, CONCAT( 'From text1: '
                                      SUBSTR( text1
                                      , 1
                                      , INSTR( text1
                                             , 'word'
                                             ) + 3
                 , DECODE( SIGN( CONTAINS(text2,'word',1) )
                   , 1, CONCAT( ' From text2: '
                                SUBSTR( text2
                                , 1
                                , INSTR( text1
                                       , 'word'
                                       ) + 3
                 ) AS text
      FROM table
    WHERE CONTAINS(text1,'word',1) > 0
       AND CONTAINS(text2,'word',2) > 0
         ;The column text should contain the contents of columns text1 and
    text2 up to 'word', prepended with the 'From text1;' and 'From
    test2:'
    If the AND in the where clause is replaced with and OR, then the
    parts of text1 and text2 will only be returned if the
    contain 'word'.
    I did not test this code.
    Good Luck...
    -

  • I cannot copy a piece of text within my web cms, security prohibited

    when i open my cms fom the website, i like to copy a piece of text, but the warning comes, that the browser prohibited it seems to be a security issue .
    Pls help
    i just want to copy and paste within my cms.

    Let's start with something very basic, and that is, you do not need to use the paste button on most websites. The button just reads what is on your clipboard and sticks it into the form. You can do that yourself using Ctrl+v or right-click>Paste.
    For your security, I suggest using those standard Windows keyboard shortcuts (Ctrl+x cut, Ctrl+c copy, Ctrl+v paste) or the context menu.
    Occasionally you will find a paste button that runs a clean-up script or otherwise does something useful. That is where the (admittedly a bit complicated) instructions come in handy.
    To open your active profile folder, you can use:
    Help > Troubleshooting Information > "Show Folder" button
    Which help article are you using for the modifications?
    Finally, please be cautious in opening up your clipboard to sites. You may have stuff you copied from other pages or other programs that you do not want to share with most sites.

  • I accidently cut a piece of text out of a mail message

    I accidently cut a piece of text out of a mail message the copied a different piece of text with out thinking is thee any way to get the first piece of cut text back?

    Welcome to Apple Discussions!
    Mail supports multiple undos. Keep on undoing from the Edit menu! Not sure how far back that undo buffer is, but keep on trying. If it doesn't work, test it so you know for the future.

  • Finding A Piece Of Text Within A Text?

    Hi.
    I am trying to create a program to find a piece of text within a file (containing text). I know that my life could be made much easier if I had the util.java.regex package but it doesn't seem to import.
    I am working on a Windows XP Platform.
    I have tried the Hello World program which works fine but it is just trying to import this package...

    I am trying to work through this slowly so that I can understand each stage... so where I have come upto now is why does the following code not compile. I am just interested in taking a .txt file at the standard input which is used to serach against an Actor's name that I specify in the next (argument?) line?
    Thanks for all the help
    My Code so far...
    import java.io.*;
    // This line always has to be put in
    public class MyFirstFileReadingAppTwo
              // Main method
              public static void main (String args[])
              // Stream to read file
              System.out.print("Enter your filename: ");     
              BufferedReader br = new BufferedReader(new FileInputStream (System.in));
              String userName = null;
              try
              // Open the input stream
              String file = br.readLine();
              BufferedReader reader2 = new BufferedReader(new FileReader(file));
              // Read a line of text
                   System.out.println(new
                   ln(new (fin).readLine() );
              // Close our input stream
              fin.close();          
                   // Catches any error conditions
                   catch (IOException e)
                   System.err.println ("Unable to read from file");
                   System.exit(-1);
    }

  • Adapt a piece of text to a curved shape?

    Hi to all,
    i want to adapt a piece of text to a curved shape, you have
    some examples here:
    http://www.saveyourmovies.com/images/text/TextEffect_ReShape_001.gif
    Is it possible with FH MX 11? how can i do it?
    if it is not possible, do you know any app to do it?
    NOTE: im a mac user, but lets try it windows users.

    I made this example for you;
    http://img58.imageshack.us/img58/2480/testingtoolsgt4.jpg
    (if url is not working, erase all after .jpg)
    First type and make your curve, mark both and use Attach to
    Path
    Then you see some kerning faults that you can take care of, I
    didn´t, and after this you convert to paths
    If you can find an Xtra toolbar, you will probably have a few
    tools to distort with
    I used Fisheye Lens and then 3D Rotation after that
    If you then would like color fills, maybe gradients you can
    do it in one step, or ungroup and treat each letter as you like...
    Good luck!

  • Every time I text my wife's I phone it sends the same text to me.

    I share an apple account with my wife. Every time I text her I phone from my I phone I get the same message sent back to me.

    JujufromAr wrote:
    I share an apple account with my wife. Every time I text her I phone from my I phone I get the same message sent back to me.
    When you use the same AppleID to setup iMessage, you both end up sharing the same iMessage account.  The cleanest solution to your problem is for one of you to get another AppleID and use that for your iMessage, thus completely separating eachothers iMessage accounts.
    Each of you can have as many AppleIDs as you wish (all you need is a unique primary email for each one, using free email accounts, for example).  And, you can use a different AppleID for each service that Apple offers - iCloud, iMessage, iTunes, the App store, these forums,...
    So, you can both use a common AppleID for all your purchased content from iTunes and the App store, but use different and unique AppleIDs for iCloud and iMessage so those accounts are not shared.

Maybe you are looking for