Back

If your email is not recognized and you believe it should be, please contact us.

  • You must be logged in to reply to this topic.Login

auto center object inline with height

Return to Member Forum

  • Author
    Posts
    • #84892
      Anonymous
      Inactive

      hello, I’m new member of best website “indesignsecrets.com” and I have new at script. I want to have new script witch could be auto baseline align object in lines. you know, I have very object with different height. and those object are use in line with auto leading. but I want to align center those object with baseline like math object. can everyone help me?

    • #84898
      Ari Singer
      Member

      Can you please post a screenshot of what you’re trying to achieve so we can better understand what you’re looking for?

      You can post your screenshot on any cloud service (such as Google Drive or Dropbox) or any image-hosting site (such as imgur.com) and post the link here.

    • #84901
      Ari Singer
      Member

      Can you please upload it to Google Drive or Dropbox? 4Shared is too much of a hassle to download. Thanx!

    • #84903
      Ari Singer
      Member

      Thanks. Now I understand what you mean. Will look into it to see if and how I can pull it off.

      • #84904
        Anonymous
        Inactive

        Thank you very much. If you run this script, my problem with those object will be end. I’m work at text book. and that layout I sent you is normal for text book in my country.
        Thanx

    • #84914
      Ari Singer
      Member

      Here you go! i created this script, please let me know if it works.
      To make it work you have to select a range of text (or a text frame) before running the script, and the script will adjust all the inline graphics in the selected text (or text frame).
      If you don’t know how to use save and run this script, look here:https://creativepro.com/how-to-install-a-script-in-indesign-that-you-found-in-a-forum-or-blog-post.php

      Folowing is the script:

      //created by Ari S. designerjoe@outlook.com
      // Automatically vertically center inline graphics
      app.scriptPreferences.enableRedraw = false;
      app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "Adjust Inline Graphics Baseline");
      function main() {
      var myDoc = app.activeDocument;
      with (myDoc.viewPreferences){
      var myOldXUnits = horizontalMeasurementUnits;
      var myOldYUnits = verticalMeasurementUnits;
      horizontalMeasurementUnits = MeasurementUnits.points;
      verticalMeasurementUnits = MeasurementUnits.points;
      }
      var mySelection = app.selection[0];
      if (app.selection.length == 1){
      //Evaluate the selection based on its type.
      switch (app.selection[0].constructor.name){
      case "InsertionPoint":
      case "Character":
      case "Word":
      case "TextStyleRange":
      case "Line":
      case "Paragraph":
      case "TextColumn":
      case "Text":
      case "Story":
      //The object is a text object; pass it on to a function.
      myAdjustBaseline(app.selection[0]);
      break;
      case "TextFrame":
      myAdjustBaseline(app.selection[0].texts.item(0));
      break;
      default:
      alert("The selected object is not a text object. Select some text and try again.");
      break;
      }
      }
      function myAdjustBaseline(text){
      app.findChangeGrepOptions.includeLockedLayersForFind = false;
      app.findChangeGrepOptions.includeLockedStoriesForFind = false;
      app.findChangeGrepOptions.includeHiddenLayers = false;
      app.findChangeGrepOptions.includeMasterPages = false;
      app.findChangeGrepOptions.includeFootnotes = true;
      app.findGrepPreferences = app.changeGrepPreferences = null;
      app.findGrepPreferences.findWhat = "~a";
      var myFound = text.findGrep(true);
      for (i=0; i < myFound.length; i++){
      var myGraphicPosition = myFound[i];
      var myPointSize = myGraphicPosition.pointSize;
      var myBounds = myGraphicPosition.texts[0].pageItems[0].geometricBounds;
      var myHeight = myBounds[2] - myBounds[0];
      if (myHeight >= myPointSize)
      myGraphicPosition.baselineShift = -(myHeight/3);
      else if (myHeight >= (0.75 * myPointSize))
      myGraphicPosition.baselineShift = -(myHeight/4);
      else if (myHeight >= (.6 * myPointSize))
      myGraphicPosition.baselineShift = -(myHeight/5)
      else if (myHeight <= (0.25 * myPointSize))
      myGraphicPosition.baselineShift = (myHeight/4);
      }
      app.findGrepPreferences = app.changeGrepPreferences = null;
      }
      with (myDoc.viewPreferences){
      try{
      horizontalMeasurementUnits = myOldXUnits;
      verticalMeasurementUnits = myOldYUnits;
      }
      catch(myError){
      alert("Could not reset custom measurement units.");
      }
      }
      }

      • #84915
        Anonymous
        Inactive

        wooooooow! Thanks alot. very very good, it is working without any problem!

      • #84916
        Anonymous
        Inactive

        My friend. I check it again in my files, There is one problem, I have math object with eps format in my text. This script should be take all of objects without math object. Is there any chance?! but If it is not to do, no problem. by the way, your script work nice, and I can do with selection.

    • #84919
      Ari Singer
      Member

      I can only make the script omit the math object if it’s a different format than all other inline graphics. Is it? Or if all the math objects are the same size then I can try to make sure that all inline graphics of that size should not be touched.

    • #84930
      Ari Singer
      Member

      Thanks. What I can do is tell the script that whenever it finds an EPS it should ignore it and not apply baseline shift. But this means that if you have more EPS’ in the file and you do want to adjust them it won’t work on that, because it will ignore any EPS.

      Here’s the modified script that ignores any EPS:

      //created by Ari S. designerjoe@outlook.com
      // Automatically vertically center inline graphics
      app.scriptPreferences.enableRedraw = false;
      app.doScript(main, ScriptLanguage.JAVASCRIPT, undefined, UndoModes.ENTIRE_SCRIPT, "Adjust Inline Graphics Baseline");
      function main() {
          var myDoc = app.activeDocument;
          with (myDoc.viewPreferences){
              var myOldXUnits = horizontalMeasurementUnits;
              var myOldYUnits = verticalMeasurementUnits;
              horizontalMeasurementUnits = MeasurementUnits.points;
              verticalMeasurementUnits = MeasurementUnits.points;
              }
          var mySelection = app.selection[0];
          if (app.selection.length == 1){
              //Evaluate the selection based on its type.
              switch (app.selection[0].constructor.name){
                  case "InsertionPoint":
                  case "Character":
                  case "Word":
                  case "TextStyleRange":
                  case "Line":
                  case "Paragraph":
                  case "TextColumn":
                  case "Text":
                  case "Story":
                  //The object is a text object; pass it on to a function.
                  myAdjustBaseline(app.selection[0]);
                  break;
                  case "TextFrame":
                  myAdjustBaseline(app.selection[0].texts.item(0));
                  break;
                  default:
                  alert("The selected object is not a text object. Select some text and try again.");
                  break;
                  }
              }
          function myAdjustBaseline(text){
              app.findChangeGrepOptions.includeLockedLayersForFind = false;
              app.findChangeGrepOptions.includeLockedStoriesForFind = false;
              app.findChangeGrepOptions.includeHiddenLayers = false;
              app.findChangeGrepOptions.includeMasterPages = false;
              app.findChangeGrepOptions.includeFootnotes = true;
              app.findGrepPreferences = app.changeGrepPreferences = null;
              app.findGrepPreferences.findWhat = "~a";
              var myFound = text.findGrep(true);
              for (i=0; i < myFound.length; i++){
                  var myGraphicPosition = myFound[i];
                  if (myGraphicPosition.texts[0].pageItems[0].allGraphics[0].constructor.name == "EPS")
                  continue;
                  var myPointSize = myGraphicPosition.pointSize;
                  var myBounds = myGraphicPosition.texts[0].pageItems[0].geometricBounds;
                  var myHeight = myBounds[2] - myBounds[0];
                  if (myHeight >= myPointSize)
                  myGraphicPosition.baselineShift = -(myHeight/3);
                  else if (myHeight >= (0.75 * myPointSize))
                  myGraphicPosition.baselineShift = -(myHeight/4);
                  else if (myHeight >= (.6 * myPointSize))
                  myGraphicPosition.baselineShift = -(myHeight/5)
                  else if (myHeight <= (0.25 * myPointSize))
                  myGraphicPosition.baselineShift = (myHeight/4);
                  }
              app.findGrepPreferences = app.changeGrepPreferences = null;
              }
          with (myDoc.viewPreferences){
              try{
                  horizontalMeasurementUnits = myOldXUnits;
                  verticalMeasurementUnits = myOldYUnits;
                  }
              catch(myError){
                  alert("Could not reset custom measurement units.");
                  }
              }
          }
      
      • #84933
        Anonymous
        Inactive

        It’s perfect, I found this script for psd image, That well it works. thank you.

Viewing 6 reply threads
  • The forum ‘General InDesign Topics (CLOSED)’ is closed to new topics and replies.
Forum Ads