7 Replies Latest reply on Nov 11, 2016 11:23 AM by gpicher

    Resize Artboard to exact size : jscript

    s32teg

      Hello

       

      I'm trying to resize my artboard to an exact mm size via a script so then I can add this to a batch i'm trying to achieve.

       

      I've been trying to use the following, but i cant work out how to add the size I want in mm?

       

      Any help?

       

      Thanks

       

      #target illustrator

       

      var doc = app.activeDocument;

       

      var docVB = doc.visibleBounds;

          var myVisibleBounds = doc.visibleBounds; //Rect, which is an array;

          myVisibleBounds[0] -= 20; //left coordinate (use negative values to add artboard)

          myVisibleBounds[1] += 20; //ltop coordinate

          myVisibleBounds[2] += 20; //right coordinate

          myVisibleBounds[3] -= 20; //bottom coordinate (use negative values to add artboard)

          doc.artboards[0].artboardRect = myVisibleBounds;

        • 1. Re: Resize Artboard to exact size : jscript
          Muppet Mark Level 5

          AI does NOT allow measurement units like the othe apps it's points ONLY… SO you can do the math or use UnitValue()

           

          #target illustrator
          
          var mm = 2.834645;
          
          var doc = app.activeDocument;
          
          var myVisibleBounds = doc.visibleBounds; //Rect, which is an array;
          
          myVisibleBounds[0] -= 20*mm; //left coordinate (use negative values to add artboard)
          myVisibleBounds[1] += 20*mm; //ltop coordinate
          myVisibleBounds[2] += 20*mm; //right coordinate
          myVisibleBounds[3] -= 20*mm; //bottom coordinate (use negative values to add artboard)
          
          doc.artboards[0].artboardRect = myVisibleBounds;
          
          • 2. Re: Resize Artboard to exact size : jscript
            s32teg Level 1

            @Muppet Mark

             

            ah i was only missing the *, thanks this is just what i wanted

            • 3. Re: Resize Artboard to exact size : jscript
              Muppet Mark Level 5

              There is a page of the scriping guide about measurment units when scripting AI… Just 2 methods really…

               

              You were also missing the variable mm and it's value…

              • 4. Re: Resize Artboard to exact size : jscript
                s32teg Level 1

                Hello

                 

                So it turns out i'm still struggling with this, i cant get it to the size i need and its driving me mad :s

                 

                So the example i'm trying to achieve is

                 

                Resize from 860mmx600mm to 700mmx500mm

                 

                Thanks for any help!

                 

                 

                edit---

                 

                im not sure if this is the best way but i have changed

                var mm = 1;

                 

                just worked out my sizes in points then done the maths to make this work

                • 5. Re: Resize Artboard to exact size : jscript
                  gpicher

                  Not to try to answer the original question, but I have been struggling with modifying artboards as well, but in JavaScript. It got a lot easier when I realized that the document and the artboard have different coordinate systems. See Adobe's docs for Document's convertCoordinate() method and the app's coordinateSystem property. You can create a new Point to convert with syntax like "var newLeftTopPoint = Point(leftValue, topValue);" I did not find a way to create a new rect for changing the artboard dimensions, but found that you can make a copy of the existing artboard's rect to modify with converted coordinates, setting it back to the artboard in one operation (you can't change the array elements one at a time directly). There's something about the artoboard rect object that is more involved than simply being an array of four numbers; the reflection API tells you there are properties named 0, 1, 2 and 3, which lets you access the object as if it was an array, but there is more to the object than that.

                  • 6. Re: Resize Artboard to exact size : jscript
                    gpicher Level 1

                    (Oh, and to add to the fun, the artboard coordinate system I think has a positive-down vertical axis but the document coordinate system is positive-up.) Also, the array order of the rect object does seem to be left, top, right, bottom (not sure why Adobe's docs couldn't have mentioned that somewhere).

                    • 7. Re: Resize Artboard to exact size : jscript
                      gpicher Level 1

                      (Sorry, I spoke too soon about up and down question of the axes. I was confused by a negative value in converted artboard coords I saw for the doc origin of 0,0, which had a negative value in the doc I was looking at.)