Illustrator CS3 Scripting Guide
Illustrator CS3 Scripting Guide
2007 Adobe Systems Incorporated. All rights reserved. Adobe Illustrator CS3 Scripting Guide for Windows and Mac OS. NOTICE: All information contained herein is the property of Adobe Systems Incorporated. No part of this publication (whether in hardcopy or electronic form) may be reproduced or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Adobe Systems Incorporated. The software described in this document is furnished under license and may only be used or copied in accordance with the terms of such license. This publication and the information herein is furnished AS IS, is subject to change without notice, and should not be construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies, makes no warranty of any kind (express, implied, or statutory) with respect to this publication, and expressly disclaims any and all warranties of merchantability, fitness for particular purposes, and noninfringement of third party rights. Any references to company names in sample templates are for demonstration purposes only and are not intended to refer to any actual organization. Adobe, the Adobe logo, Illustrator, Photoshop, and InDesign are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States and/or other countries. Apple, Mac, Macintosh, and Mac OS are trademarks of Apple Computer, Inc., registered in the United States and other countries. Microsoft, and Windows are either registered trademarks or trademarks of Microsoft Corporation in the United States and other countries. JavaScript and all Java-related marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. UNIX is a registered trademark of The Open Group. All other trademarks are the property of their respective owners. If this guide is distributed with software that includes an end user agreement, this guide, as well as the software described in it, is furnished under license and may be used or copied only in accordance with the terms of such license. Except as permitted by any such license, no part of this guide may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, recording, or otherwise, without the prior written permission of Adobe Systems Incorporated. Please note that the content in this guide is protected under copyright law even if it is not distributed with software that includes an end user license agreement. The content of this guide is furnished for informational use only, is subject to change without notice, and should not be construed as a commitment by Adobe Systems Incorporated. Adobe Systems Incorporated assumes no responsibility or liability for any errors or inaccuracies that may appear in the informational content contained in this guide. Adobe Systems Incorporated, 345 Park Avenue, San Jose, California 95110, USA.
Contents
1 Introduction ................................................................................................................................. 6
What is scripting? ........................................................................................................................................................................... 6 Why use scripting?................................................................................................................................................................... 6 What about actions? ............................................................................................................................................................... 7 Script support in Adobe Illustrator CS3.................................................................................................................................. 7 ExtendScript features ............................................................................................................................................................. 7 ExtendScript tools.................................................................................................................................................................... 7 Script file extensions ..................................................................................................................................................................... 8 Viewing sample scripts................................................................................................................................................................. 8 Viewing the object model........................................................................................................................................................... 8 Viewing the JavaScript object model ............................................................................................................................... 8 Viewing the AppleScript object model............................................................................................................................ 9 Viewing the VBScript object model................................................................................................................................... 9 Executing scripts...........................................................................................................................................................................10 Installing scripts in the Scripts menu..............................................................................................................................10 Executing scripts from the Other Scripts menu item................................................................................................10 Startup scripts (.jsx scripts only) .......................................................................................................................................10 Application-specific startup scripts folder..............................................................................................................10 General startup scripts folder......................................................................................................................................11 Changes since earlier versions.................................................................................................................................................11 Known Issues .................................................................................................................................................................................13
Creating new objects............................................................................................................................................................25 Collection objects ..................................................................................................................................................................25 Selected objects .....................................................................................................................................................................26 Selecting text ....................................................................................................................................................................26 Selecting art items...........................................................................................................................................................26 Referring to selected art items....................................................................................................................................26 Notes on renaming objects stored in the applications palettes..........................................................................26 Measurement units......................................................................................................................................................................27 Em space units ........................................................................................................................................................................27 Page item positioning and dimensions ...............................................................................................................................27 Art item bounds......................................................................................................................................................................28 Paths and shapes..........................................................................................................................................................................29 User interaction levels ................................................................................................................................................................29 Printing Illustrator documents ................................................................................................................................................30
Combining path point types .......................................................................................................................................45 Shapes........................................................................................................................................................................................45 write-once access ............................................................................................................................................................46 Creating a rectangle .......................................................................................................................................................46 Creating a polygon..........................................................................................................................................................46
Index ........................................................................................................................................... 54
Introduction
This guide describes the scripting interface to Adobe Illustrator CS3. It contains the following sections:
This introduction, which describes scripting support in Adobe Illustrator CS3, and lists changes to the scripting interface since the previous release. The Illustrator Scripting Object Model on page 15, which describes the Illustrator document object model. Scripting Illustrator on page 23, which provides an overview of how to use scripts to program Adobe Illustrator CS3. Scripting with JavaScript on page 31, which provides information about scripting Illustrator using JavaScript. Scripting with AppleScript on page 40, which provides information about scripting Illustrator using AppleScript. Scripting with VBScript on page 47, which provides information about scripting Illustrator using VBScript.
If you are new to scripting or would like basic information about scripting and how to use the different scripting languages, see Adobe Introduction to Scripting.
What is scripting?
A script is a series of commands that tells Illustrator to perform one or more tasks. These tasks can be simple, and affect only a single object in the current document; or complex, and affect objects in all of your Illustrator documents. The tasks might even involve other applications, such as word processors, spreadsheets, and database management programs. The building blocks of scripting correspond for the most part to the Illustrator tools, menus, palettes, and dialog boxes with which you are already an expert. If you know what youd like Illustrator to do, you can write a script to do it.
Actions use a programs user interface to do their work. As an action runs, menu choices are executed, objects are selected, and recorded paths are created. Scripts do not use a programs user interface to perform tasks, and can execute faster than actions. Actions have very limited facilities for getting and responding to information. You cannot add conditional logic to an action. Therefore, actions cannot make decisions based on the current situation, such as changing the stroke type of rectangles but not ellipses. Scripts are capable of getting information and making decisions and calculations based on the information they receive from Illustrator. A script can execute an action, but actions cannot execute scripts.
ExtendScript features
ExtendScript offers all standard JavaScript features, plus a development and debugging environment, the ExtendScript Toolkit (ESTK). The ESTK is installed with all scriptable Adobe applications. The ESTK includes an Object Model Viewer that contains complete documentation of the methods and properties of JavaScript objects.
Note: For information on accessing the ESTK and the Model Viewer, see Viewing the JavaScript object model on page 8.
ExtendScript tools
ExtendScript also provides various tools and utilities such as:
A localization utility Tools that allow you to combine scripts and direct them to particular applications Platform-independent file and folder representation Tools for building user interfaces to your scripts A messaging framework that allows you to send and receive scripts and data among scripting-enabled Adobe applications
For details of these and additional features, see the JavaScript Tools Guide.
(none)
.js .jsx .vbs
In the /Scripting/Sample Scripts folder in your Illustrator CS3 installation directory In the Adobe Illustrator CS3 scripting reference for your scripting language, which is located in the /Scripting/Documentation folder in your Illustratator CS3 installation directory.
In Mac OS:
system drive:Applications:Utilities:Adobe Utilities: ExtendScript Toolkit 2
In Windows:
system drive\Program Files\Adobe\Adobe Utilities\ ExtendScript Toolkit 2
2. In the ESTK, choose Help > Illustrator CS3. Note: Several extended sample scripts are available in the /Scripting/Sample Scripts folder in your Illustrator CS3 installation directory. You can also view script samples and information about individual classes, objects, properties, methods and parameters in the Adobe Illustrator CS3 JavaScript Reference, which is found in the /Scripting/Documentation folder in your Illustrator CS3 installation directory.
Executing scripts
The Illustrator interface includes a Scripts menu (File > Scripts) that provides quick and easy access to your scripts.
Scripts can be listed directly as menu items that run when you select them. See Installing scripts in the Scripts menu on page 10. You can also navigate from the menu to any script in your file system, and then run the script. See Executing scripts from the Other Scripts menu item on page 10.
You can also have JavaScript scripts with a .jsx extension start automatically when you launch the application. For information, see Startup scripts (.jsx scripts only) on page 10.
An application-specific startup scripts folder, which contains scripts for Illustrator CS3 A general startup scripts folder, which contains scripts that run automatically when you start any Creative Suite 3 application
For example, when Illustrator CS3 is installed to its default location, you would create the Startup Scripts folder at:
In Windows:
C:\Program Files\Adobe\Adobe Illustrator CS3\Startup Scripts\
In Mac OS:
/Applications/Adobe Illustrator CS3/Startup Scripts/
Note: JavaScript scripts with a .jsx extension placed in the Startup Scripts folder run automatically when:
The application is launched. Any JavaScript file is selected from the Scripts menu (File > Scripts).
In Windows:
Program Files/Common Files/Adobe/Startup Scripts CS3/Illustrator
In Mac OS:
:Library:Application Support:Adobe:Startup Scripts CS3:Illustrator
Note: If a script in the general startup folder is meant to be executed only by Illustrator, the script must include the ExtendScript #target directive (#target illustrator) or code such as the following:
if( BridgeTalk.appName == "illustrator" ) { //continue executing script }
Create documents using the document preset object, which contains properties for color mode, height and width, preview mode, title, and other document-defining characteristics:
AppleScript: add document command, uses new object document preset; the startup
presets property gives available presets, get preset settings command returns a document preset object.
JavaScript: app.undo(), app.redo() VBScript: App.Undo(), App.Redo() AppleScript: undo and redo commands
Clipboard operations, previously available only in AppleScript, are supported in VBScript and JavaScript. These methods belong to the application object but act upon the current selection:
JavaScript: app.cut(), app.copy(), app.paste() VBScript: App.Cut, App.Copy, App.Paste JavaScript: app.loadColorSettings(), which loads color settings from a specified file; app.colorSettingsList gives available files. VBScript: App.LoadColorSettings; App.ColorSettingsList gives available files. AppleScript: load color settings command; the color settings property gives available files. JavaScript: rasterItem.overprint, rasterItem.colorizedGrayscale, rasterItem.transparent, rasterItem.channels, rasterItem.bitsPerChannel,
rasterItem.colorants
JavaScript: document.imageCapture(); uses new object imageCaptureOptions VBScript: Document.ImageCapture; uses new object ImageCaptureOptions AppleScript: image capture command, uses new object image capture options JavaScript: graphicStyle.mergeTo() VBScript: GraphicStyle.MergeTo AppleScript: merge command JavaScript: pathItem.length VBScript: PathItem.Length AppleScript: length of path item JavaScript: document.XMPString VBScript: Document.XMPString AppleScript: XMP string
XMP metadata, which names the XMP metadata packet associated with a document:
JavaScript: openOptionsPhotoshop.preserveHiddenLayers,
openOptionsPhotoshop.layerComp
VBScript: OpenOptionsPhotoshop.PreserveHiddenLayers,
OpenOptionsPhotoshop.LayerComp
AppleScript: properties of Photoshop options: preserve hidden layers, layer comp JavaScript: app.getPPDFileInfo() (also, case usage in printerInfo.pPDInfo changed to printerInfo.PPDInfo) VBScript: App.GetPPDFileInfo AppleScript: get PPD info command JavaScript: additional properties for exportOptionsFlash VBScript: additional properties for ExportOptionsFlash AppleScript: additional properties of Flash export options JavaScript: preferences.AutoCADFileOptions, new object AutoCADFileOptions VBScript: Preferences.AutoCADFileOptions, new object AutoCADFileOptions AppleScript: AutoCAD file options of Illustrator preferences, new object AutoCAD
options
AutoCAD support:
Expanded support for clipping artwork when exporting to a Flash file allow you to specify whether to clip the art object, the artboard, or the crop area:
JavaScript: exportOptionsGIF.artClipping (replaces exportOptionsGIF.artBoardClipping) VBScript: ExportOptionsGIF.ArtClipping (replaces ExportOptionsGIF.ArtBoardClipping) AppleScript: art clipping (replaces artboard clipping) JavaScript: tracingOptions.ignoreWhite VBScript: TracingOptions.IgnoreWhite AppleScript: ignore white
New tracing options property allows you to ignore white fill color.
Known Issues
Scripts that create, save and then close a large number of Illustrator files should periodically quit and relaunch Illustrator. The recommended maximum number of files to process before quitting and relaunching Illustrator is:
Note: For information on quitting and relaunching Illustrator, see Launching and activating Illustrator on page 23 and Quitting Illustrator on page 24.
The "An Illustrator error occurred: 1346458189 ("PARM")" alert may be popped when badly written scripts are repeatedly run in Illustrator from the ExtendScript Toolkit. Scripters need to be very careful about variable initialization and namespace conflict when pushing a batch of Illustrator scripts over and over again for execution in Illustrator via the ExtendScript Toolkit (ESTK) in a single Illustrator session. Each script run is executed within the same persistent ExtendScript engine within Illustrator. The ESTK debugger uses BridgeTalk to communicate with Illustrator. A single global, persistent ExtendScript engine inside Illustrator handles all BridgeTalk communications. The net effect is that the state of the ExtendScript engine is cumulative to all the scripts that ran previously. Issues with script code that may cause this problem are:
Reading uninitialized variables. Global namespace conflicts, such as when two globals from differents scripts are clobbering each other.
AppleScript names are all lower case, and individual words are separated by a space. For example:
graphic style
VBScript names are capitalized, and additional words in the name are indicated by uppercase initial letters. For example:
GraphicStyle
15
Adobe Illustrator CS3 Scripting Guide The Illustrator Scripting Object Model 16
JavaScript names begin with lowercase letters, and additional words in the name are indicated by uppercase initial letters. For example:
graphicStyle
This chapter uses generic object and property names, but you can easily apply these conventions to determine the corresponding language-specific names. Note: In the following sections, properties and methods are displayed in italics. Object names are displayed in courier font.
Application
The properties of the application object give your script access to global values, such as:
User preferences, which a user sets interactively in the Illustrator application by using the Preferences dialog (Edit > Preferences) System information such as installed fonts (the text fonts property) and printers (the printer list property)
Additionally, there are properties that provide application-specific information and higher-level information about any open documents.
Application information such as the installation path, the version, and whether Illustrator is currently visible The current active document; that is, the art canvas that is currently displayed and accepting user input All open documents
application object methods or commands allow your script to perform application-wide actions. For
example:
Document
The document object, which your scripts can create or access through the application object, represents an art canvas or loaded Illustrator file. The document object properties give you access to the documents content. For example:
The current selection, or art objects that the user has selected in the document All of the contained art objects, called page items, that make up the artwork tree Art objects of particular types, such as symbols and text frames All of the layers, and the currently active layer
Adobe Illustrator CS3 Scripting Guide The Illustrator Scripting Object Model 17
Document properties also tell you about the state of the document itself; for example:
User settings for the document such as ruler units Whether the document has been saved since the last alteration of content The path of the associated file
The document object methods allow your scripts to act on the document. For example:
Save to an Illustrator file or save as the various supported file formats Activate or close a document Print the document; your scripts can select a printer by referencing a print options object or reference available printers through the application objects printer list property
Layer
The layer object provides access to the contents, or artwork tree, of a specific layer. You access the layer object through the document object. The layer object properties provide access to, or information about, the layer, such as:
Whether the layer is visible or locked The layer opacity (overall transparency) and z order position (position in the stacking order) Art creation preferences for the layer, such as artwork knockout and blending mode
The compound path item object The graph item object The legacy text item object The mesh item object The path item object The placed item object The plugin item object The raster item object The symbol item object (See Dynamic objects and symbols on page 21.) The text frame object
Your scripts can access and manipulate art objects through collections in the document and layer objects. There are two types of art object collections:
Collection objects that correspond to each individual artwork object type, such as the graph items object or the mesh items object. The page items object, which includes art objects of all types. Additionally, you can use the group item object to reference a grouped set of art items.
Adobe Illustrator CS3 Scripting Guide The Illustrator Scripting Object Model 18
You can create new art objects using the make command (AppleScript) or add method of an artwork item collection object. For example, to create a new path item object:
AS
set myPathItem to make new path item in current document
JS
var myPathItem = activeDocument.pathItems.add();
VB
Set myPathItem = appRef.PathItems.Add()
Artwork collections that do not allow the creation of new objects using the make command or add method are:
The graph items object The mesh items object The plugin items object The legacy text items object
For specific information on creating objects of these types, refer to the Adobe Illustrator CS3 scripting references.
Art styles
Your script can apply a graphic style to artwork using the graphic style object. To apply a graphic style, you use the graphic styles property of the document object to access the apply to method of the graphic style object. Similarly, the brush object allows you to specify the brush to apply to artwork. You access any brush through the brushes collection object, which is a property of the document object.
Color objects
Your script can apply a color, pattern or gradient to a path item object using the fill color or stroke color properties.
Scripts can define new color swatches using the make command or add method of the swatches object. Your script can also create a new spot color using the make command or add property of the spots object. You can define the attributes of an ink object using the ink info object, which is an ink object property. You access ink objects through the ink list property of the document object.
The following objects allow you to create colors within defined color spaces.
The RGB color object, using the range 0.0 to 255.0 for the each of the three individual color values. The CMYK color object, using the percentage values 0.0 through 100.0 for each of the four individual color values.
Adobe Illustrator CS3 Scripting Guide The Illustrator Scripting Object Model 19
The grayscale color or LAB color objects, using the same range and number of values that you use in the Illustrator application.
Text objects
When you type content in an Illustrator document, the type automatically becomes a text frame object and, at the same time, a story object. Note: To observe this, open a new document in Illustrator and use the horizontal text tool to type some text, then use the vertical text tool to type some more text, and then create a rectangle and type some text inside it. Now run the following JavaScript script:
var myDoc = app.activeDocument alert("There are " + myDoc.textFrames.length + " text frames.") alert("There are " + myDoc.stories.length + " stories.")
Text frames
A text frame can be one of three kinds:
To create a specific kind of text frame, you use the kind property of the text frames object in AppleScript. However, the JavaScript and VBScript text frames objects contain specific methods for creating area text frames and path text frames. As in the Illustrator application, you can thread area or path text frames. To thread existing text frames, you use the next frame or previous frame property of the text frame object. Threaded frames make a single story object. For information on creating or threading text frames, see the chapter for your scripting language.
Text geometry
While the three kinds of text frame have common characteristics, such as an orientation, each has type-specific qualities, as reflected in the text frame objects properties. For example:
An area text frame can have rows and columns, which you access through the row count and column count properties.
Adobe Illustrator CS3 Scripting Guide The Illustrator Scripting Object Model 20
Path text has start T value and end T value properties that indicate where on the path the text begins and ends. Area and path text frames are associated with a text path object, which is specified using the text frame objects text path property. The text path defines the text frames position and its orientation (horizontal or vertical) on the artboard (while the text frame objects orientation property defines the orientation of text within the text frame) The text path property is not valid for point text, because point text position and orientation are defined completely by the properties of the text frame itself. Note: A text path is not the same as a path art item. Text paths are associated with path art items that can be accessed and manipulated to modify the appearance of the associated text frame.
A line object is all of the characters that fit on a single line in a text frame or story object. All text art items have at least one line of text, defined as a line object. Text art can have multiple text lines if the text contains hard line breaks or its characters flow to a new line because they do not fit in the width of the text art. Text objects are accessed and identified by collections within the text frame and story objects; for example, textFrame("My Text Frame").paragraphs or story("My Story").paragraphs.
Both text frame and story objects have insertion point and text selection properties. The text frame objects properties also include the defining features of the text frame, such as:
The frame width, height, and position Whether the frame is hidden or locked Whether the text is editable
Note: A line object cannot be created in a script. Your script can create character, paragraph, and word objects.
Adobe Illustrator CS3 Scripting Guide The Illustrator Scripting Object Model 21
Text ranges
The various text objects within a text frame or story are also represented collectively by the text range object. For example, a character is a text range with a length of 1, and a word is a text range that has a space before it. You can set the content of a text range object by passing a string using the contents property.
Text styles
Text style elements, such as font, capitalization, or justification, are represented by paragraph attribute and character attribute objects. These attribute objects are properties of the paragraph style and character style objects. The paragraph style and character style objects have apply to and remove methods that allow your script to assign or remove attributes in a specific paragraph, character, or text range. You can change the display properties of a text range by applying an appropriate style or providing local overrides of attributes at the text or paragraph levels.
character style objects apply to sets of one or more characters, and control character features
such as font, alignment, leading, language, and capitalization, which are all properties of the
character attribute object.
paragraph style objects apply to paragraphs, and control paragraph features such as first line indent, left indent, or right indent, which are all properties of the paragraph attribute object.
Adobe Illustrator CS3 Scripting Guide The Illustrator Scripting Object Model 22
Transformations
The matrix object provides access to the power of geometric transformation matrices. Transformation matrices in Illustrator store the settings of an operation that scales, rotates or moves (translates) an object on a page. Some advantages to using matrices are:
By storing transformation values in a matrix object, you can use the values over and over on different objects in your script. By concatenating rotation, translation and/or scaling matrices and applying the resulting matrix, you can perform a large series of geometric transformations using only a single script statement. You can invert matrix values. You can compare the values of two matrices.
The commands or methods to create, get, invert, compare, or concatenate matrices belong to the application object. The command or method used to apply a matrix is the transform command, which belongs to any type of object on which transformations can be performed.
Scripting Illustrator
This chapter provides an overview of how to use scripting objects to program Adobe Illustrator CS3. Specific examples for the supported scripting languages are provided in the succeeding chapters.
AS
In AppleScript, you use a tell statement to target Illustrator. The activate command activates Illustrator if it is not already active.
tell application "Adobe Illustrator" activate end tell
VBS
In VBScript, there are several ways to create an instance of Illustrator.
CreateObject launches Illustrator as an invisible application if it is not already running. Note that if
Illustrator is launched as an invisible application you have to manually activate the application to make it visible.
Set appRef = CreateObject("Illustrator.Application")
Note: If you have multiple versions of Illustrator installed on the same machine and use the CreateObject method to obtain an application reference, using "Illustrator.Application" creates a reference to the latest Illustrator version. To specifically target an earlier version, use the numeric version identifier at the end of the string:
For Illustrator 10, use "Illustrator.Application.1" For Illustrator CS, use "Illustrator.Application.2" For Illustrator CS2, use "Illustrator.Application.3" For Illustrator CS3, use "Illustrator.Application.4"
23
Use the New operator if you have added a reference to the Illustrator type library to the project. For example, the following line creates a new reference to the Application object:
Set appRef = New Illustrator.Application
Quitting Illustrator
JS
In JavaScript use the app.quit() method to close the application.
app.quit()
AS
In AppleScript, you use the quit command.
tell application "Adobe Illustrator" quit end tell
VBS
In VBScript, use the Application objects Quit method to close the application.
Set appRef = CreateObject("Illustrator.Application") appRef.Quit
a. File and Folder objects are Adobe ExtendScript devices designed to provide platform-independent access to the underlying file system. For information on using these objects, see the JavaScript Tools Guide.
See the chapter for your scripting language for information on creating an object explicitly.
Collection objects
Most collection objects must be obtained from a container. For example, a path items collection object can be contained by a document object or a layer object. To obtain an object in a path items collection, you refer to either containing object. For example:
AS
To refer to a path items object in a document:
path item 1 in document 1
JS
To refer to a path items object in a document:
documents[0].pathItems[1]
VBS
To refer to a path items object in a document:
Documents(1).PathItems(1)
For more examples of collection item containers, refer either to document object Elements table in the Adobe Illustrator CS3 AppleScript Reference, or the Properties table in the Adobe Illustrator CS3 JavaScript Reference or Adobe Illustrator CS3 VBScript Reference. Also, view a diagram of the Illustrator CS3 object model in The Illustrator Scripting Object Model on page 15.
Selected objects
There are times when you want to write scripts that act upon the currently selected object or objects. For example, you might want to apply formatting to selected text or change a selected paths shape.
Selecting text
To select text, you use the select command or method of the text range object.
Measurement units
Illustrator uses points as the unit of measurement for almost all distances, where one inch is equal to 72 points. The one exception is the values for properties such as kerning, tracking, and the aki properties (used for Japanese text composition), which use em units. (See Em space units on page 27.) Illustrator uses points when communicating with your scripts regardless of the current ruler units. If your script depends on adding, subtracting, multiplying, or dividing specific measurement values for units other than points, it must perform any unit conversions needed to represent your measurements as points. For example, to use inches for coordinates or measurement units, you must multiply all inch values by 72 when entering the values in your script. The following table shows the conversion formulae for various units of measurement: Unit centimeters inches millimeters picas Qs Conversion formula 28.346 points = 1 centimeter 72 points = 1 inch 2.834645 points = 1 millimeter 12 points = 1 pica 0.709 point = 1 Q (1 Q equals 0.23 millimeter)
Note: JavaScript provides the UnitValue object type, which offers unit conversion utilities. For details, see the JavaScript Tools Guide.
Em space units
Values that use em units instead of points are measured in thousandths of an em unit. Em units are proportional to the current font size. For example, in a 6-point font, 1 em equals 6 points; in a 10-point font, 1 em equals 10 points. Similarly, a kerning value of 20 em units for a 10-point font would be equivalent to:
(20 units x 10 points) / 1000 units/em = 0.2 points
Note: You can see these coordinates in the Info palette when you select or create an object in Illustrator. The default ruler origin point (0, 0) for coordinate numbering in Illustrator is the lower left corner of the document. (ruler origin is a property of the document object.)
On the horizontal axis, coordinates to the right of the rulers zero point are positive numbers. On the vertical axis, coordinates above the zero point are positive.
The default page origin property of a document object defines the lower left corner of the printable region of the document as a fixed point. Additionally, each page item object has a width and height property. The maximum value allowed for the width or height of a page item is 16348 points.
The geometric bounds of a page item are the rectangular dimensions of the objects bounding box excluding stroke width. The visible bounds of a page item are the dimensions of the object including any stroke widths. The control bounds define the rectangular dimensions of the object including in- and out- control points.
The following figure illustrates these properties, using the JavaScript naming convention.
As an array of x and y page coordinates. As a path point object, which defines an anchor point and two direction points or handles that define the path segments curve.
For specific details and samples, see the chapter for your scripting language.
JS
There are two possible values for the app.userInteractionLevel property in JavaScript: Property Value
DISPLAYALERTS DONTDISPLAYALERTS
VBS
There are two possible values for the UserInteractionLevel property of the Application object in VBScript:
Property Value
aiDisplayAlerts aiDontDisplayAlerts
AS
Using AppleScript, it is possible to send commands from one machine to another, so additional types of interaction are possible. There are four possible values for the user interaction level property in AppleScript: Property Value
never interact interact with self interact with local interact with all
Result No interaction is allowed. Interact only with scripts executed from the Scripts menu (File > Scripts). Interact with scripts executed on the local machine (including self). Interact with all scripts.
The four values allow you to control interaction based on the source of the script commands. For example, if the application is acting as a server for remote users, it would be difficult for a remote user to dismiss a dialog, but it would be no problem for someone sitting in front of the machine. In this case, an interaction level of interact with local would prevent dialogs from halting remote scripts but would allow dialogs to be presented for local scripts.
If you are using the ExtendScript Toolkit, select Illustrator CS3 from the dropdown list in the upper left corner and select Yes to start Illustrator, and then choose Debug> Run in the ExtendScript Toolkit to run the script. If you are using a different text editor, save the file as text only in a folder of your choice, using the file extension .jsx, and then start Illustrator. In Illustrator, choose File>Scripts>Other Scripts, and then navigate to and run your script file.
31
Tip: To add the script to the Illustrator Scripts menu (File > Scripts), save the script in the Scripts folder. The script will appear on the menu the next time you start Illustrator. For information, see Installing scripts in the Scripts menu on page 10.
Get the active document. Get the width of the active document. Resize the text frame to match the documents width.
Note: If youve already closed the Illustrator document, run your first script again to create a new document before you proceed with this exercise. 1. Choose File > New in your text editor to create a new script. 2. Enter the following code:
var docRef = app.activeDocument; var docWidth = docRef.width var frameRef = docRef.textFrames[0] frameRef.width = docWidth
To rotate the object 30 degrees and change the fillGradients, you would use the following script statement:
myObject.rotate(30, undefined, undefined, true);
Note that you only need to specify undefined for the changePositions and changeFillPatterns parameters. You do not have to specify anything for optional parameters that follow the changeFillGradients parameter.
It is permissible to use the application object in a reference. To reference the application object, you use the global variable app. The following two statements appear identical to the JavaScript engine:
var frontMostDocument = activeDocument; var frontMostDocument = app.activeDocument;
All numeric collection references in JavaScript are zero-based; that is, the first object in the collection has the index [0]. Note: As a rule, JavaScript index numbers do not shift when you add an object to a collection. However, there is one exception: documents[0] is always the active or frontmost document. To access the first style in graphic styles collection, you can use the variable declared in the previous script sample, or you can use the containment hierarchy to refer to the collection:
The following statements assign the name "Modern" to the first graphic style in the collection. These statements are identical; you can use them interchangeably.
myStyles[0].name = 'Modern' firstStyle.name = 'Modern' app.activeDocument.graphicStyles[0].name = 'Modern'
To get the total number of objects in a collection, use the length property:
alert ( myStyles.length ) ;
The index of the last graphic style in the collection would be myStyles.length-1 (-1 because the collection starts the index count at 0 and the length property counts from 1):
var lastStyle = myStyles[ myStyles.length - 1 ];
Notice that an expression representing the index value is enclosed in square brackets ([]) as well as quotes. If you know the name of an object, you can access the object in the collections using the name surrounded by square brackets. For example:
var getStyle = myStyles[Ice Type];
Notice that the object name is enclosed in square brackets ([]). Each element in the collection is an object of the desired type, and you can access its properties through the collection. To get an objects name, for example, use the name property:
var styleName = app.activeDocument.graphicStyles[0].name;
To apply lastStyle to the first pageItem in the document, use its applyTo() method:
lastStyle.applyTo( app.activeDocument.pageItems[0] );
Some object types are not available from containers. You create an object of this type by defining a variable, and then using the new operator with an object constructor to assign an object as the value. For example, to create a new CMYKColor object using the variable name myColor:
var myColor = new CMYKColor()
The selection property value can be an array of any type of art objects, depending on what types of objects are selected. To get or manipulate the properties of the selected art items, you must retrieve the individual items in the array. To find out an objects type, use the typename property. The following sample gets the first object in the array, and then displays the objects type:
var topObject = app.activeDocument.selectedObjects[0]; alert(topObject.typename)
Note: The first object in a selection array is the selected object that was last added to the page, and not the last object selected.
Threaded frames
As in the Illustrator application, you can thread area or path text frames. To thread existing text frames, you use the nextFrame or previousFrame property of the text frame object.
Note: When copying the following script to the ExtendScript ToolKit, place the value of the contents property a single line.
var var var var var myDoc = documents.add(); myPathItem1 = myDoc.pathItems.rectangle(244, 64, 82, 76); myTextFrame1 = myDoc.textFrames.areaText(myPathItem1); myPathItem2 = myDoc.pathItems.rectangle(144, 144, 42, 116); myTextFrame2 = myDoc.textFrames.areaText(myPathItem2);
// use the nextFrame property to thread the text frames myTextFrame1.nextFrame = myTextFrame2; var sText = "This is two text frames linked together as one story, with text flowing from the first to the last. This is two text frames linked together as one story, with text flowing from the first to the last. This is two text frames linked together as one story. "; myTextFrame1.contents = sText; redraw();
Paths
To create a freeform path, you specify a series of path points, either as series of x-y coordinates or as pathPoint objects.
Using x-y coordinates limits the path to straight segments only. To created a curved path, you must create pathPoint objects.
Your path can consist of a combination of page coordinates and pathPoint objects.
A fixed anchor point, which is the point on the path A pair of direction points: the left direction point and the right direction point, which allow you to control the path segments curve You define each property as an array of page coordinates in the format [x, y].
If all three properties of a pathPoint object have the same coordinates, and the properties of the next pathPoint in the line are equal to each other, you create a straight line segment. If two or more properties in a pathPoint object hold different values, the segment connected to the point is curved.
To create a path, or to add points to an existing path, using pathPoint objects, you create a pathItem object and then add the path points as child objects in the pathItem.
var myDoc = app.activeDocument; var myLine = myDoc.pathItems.add(); //set stroked to true so we can see the path myLine.stroked = true; var newPoint = myLine.pathPoints.add(); newPoint.anchor = [220, 475]; //giving the direction points the same value as the //anchor point creates a straight line segment newPoint.leftDirection = newPoint.anchor; newPoint.rightDirection = newPoint.anchor; newPoint.pointType = PointType.CORNER; var newPoint1 = myLine.pathPoints.add(); newPoint1.anchor = [375, 300]; newPoint1.leftDirection = newPoint1.anchor; newPoint1.rightDirection = newPoint1.anchor; newPoint1.pointType = PointType.CORNER; var newPoint2 = myLine.pathPoints.add(); newPoint2.anchor = [220, 300]; //giving the direction points different values //than the anchor point creates a curve newPoint2.leftDirection =[180, 260]; newPoint2.rightDirection = [240, 320]; newPoint2.pointType = PointType.CORNER;
Shapes
To create a shape, you use the pathItems method that corresponds to the shapes name (such as ellipse, rectangle, or polygon), and use the parameters to specify shapes position, size, and other information such as the number of sides in a polygon. Tip: Remember:
All measurements and page coordinates are processed as points by the scripting engine. For more information, see Measurement units on page 27. x and y coordinates are measured from the bottom left corner of the document, as indicated in the Info palette in the Illustrator application. For information, see Page item positioning and dimensions on page 27.
Creating a rectangle
The following sample uses the textFrames objects rectangle() method to create a rectangle with the following properties:
The top of the rectangle is 2 inches (144 points) from the bottom edge of the page. The left edge is 2 inches (144 points) from the left edge of the page. The rectangle is 1 inch wide and 3 inches long.
var myDocument = app.documents.add() var artLayer = myDocument.layers.add() var rect = artLayer.pathItems.rectangle( 144, 144, 72, 216 );
Creating a polygon
The following sample uses the polygon() method to create a polygon with the following properties:
The center point of the object is inset is 2 inches (144 points) on the horizontal axis and 4 inches (288 points) on the vertical axis. The length of the radius from the center point to each corner is 1 inch. The polygon has 7 sides.
var myDocument = app.documents.add() var artLayer = myDocument.layers.add() var poly = artLayer.pathItems.polygon( 144, 288, 72.0, 7 );
3. In the Script Editor toolbar, click Run. Tip: To add the script to the Illustrator Scripts menu (File > Scripts), save the script in the Scripts folder. The script will appear on the menu the next time you start Illustrator. For information, see Installing scripts in the Scripts menu on page 10.
40
Get the active document. Get the width of the active document. Resize the text frame to match the documents width.
Note: If youve already closed the Illustrator document, run your first script again to create a new document. 1. Choose File > New in Script Editor to create a new script. 2. Enter the following code:
tell application "Adobe Illustrator" -- current document is always the active document set docRef to the current document set docWidth to the width of docRef -- resize the text frame to match the page width set width of text frame 1 of docRef to docWidth -- alternatively, one can reference the item directly, as follows: set width of text frame 1 of current document to docWidth end tell
Object references
In AppleScript, Illustrator returns object references by index position or name. For example, a reference to the first path in layer 2 would be:
path item 1 of layer 2 of document 1
An objects index position may change when other objects are created or deleted. For example, when a new path item is created on layer 2, the new path item will become path item 1 of layer 2 of document 1. This new object displaces our original path item, forcing the original to index position 2. Therefore, any references made to path item 1 of layer 2 of document 1 will refer to the new object. This method of applying index numbers assures that lowest index number refers to the object that has been worked on most recently. Consider the following sample script.
-- Make 2 new objects and try to select both tell application "Adobe Illustrator" set newDocument to make new document set rectPath to make new rectangle in newDocument set starPath to make new star in newDocument set selection of newDocument to {rectPath, starPath} end tell
This script does not select both the rectangle and the star, as intended; instead, it selects only the star. Try running the script with the Event Log window open to observe the references returned from Illustrator for each of the consecutive make commands (Choose Event Log at the bottom of the Script Editor window).
Notice that both commands return the same object reference: path item 1 of layer 1 of
document 1. Therefore, the last line resolves to: set selection of document 1 to {path item 1 of layer 1 of document 1, path item 1 of layer 1 of document 1}
This example illustrates the need to uniquely identify objects in AppleScript scripts. It is recommended that you assign names or variables to objects you need to access at a later time, as there is no guarantee you are accessing the objects you expect when accessing them by index.
In the following script, the variable pageItemRef does not necessarily refer to the same object as in the previous script, because this script includes a reference to a layer:
-- Get reference for first page item of layer 1 of document 1 tell application "Adobe Illustrator" set pageItemRef to page item 1 of layer 1 of document 1 end tell
Depending on what is selected, the selection property value can be an array of any type of art objects. To get or manipulate the properties of the selected art items, you must retrieve the individual items in the array. To find out an objects type, use the class property.
The following sample gets the first object in the array, and then displays the objects type:
tell application "Adobe Illustrator" set myDoc to current document set selectedObjects to selection of myDoc set topObject to item 1 of selectedObjects display dialog (class of topObject) end tell
Note: The first object in a selection array is the selected object that was last added to the page, and not the last object selected.
Threaded frames
As in the Illustrator application, you can thread area or path text frames. To thread existing text frames, you use the next frame or previous frame property of the text
frame object.
Note: When copying the following script to your script editor, place the value of the contents property on a single line. The long line character () is not valid within a string value.
tell application "Adobe Illustrator" make new document make new rectangle in current document with properties {position:{100, 500}, height:100, width:100} make new text frame in current document with properties {kind:area text, text path:the result, name:"tf1", contents:"This is two text frames linked together as one story, with text flowing from the first to the last. First frame content. "} make new rectangle in current document with properties {position:{300, 700}, height:100, width:100} make new text frame in current document with properties {kind:area text, text path:the result, name:"tf2", contents:"Second frame content." } --use the next frame property to thread the frames set next frame of text frame "tf1" of current document to text frame "tf2" of current document redraw end tell
Paths
To create line or a freeform path, you specify a series of path points, either as series of x-y coordinates or as path point objects.
Using x-y coordinates limits the path to straight segments only. To created a curved path, you must create path point objects.
A path can consist of a combination of page coordinates and path point objects.
A fixed anchor point, which is the point on the path A pair of direction points: the left direction point and the right direction point, which allow you to control the path segments curve You define each property as an array of page coordinates in the format [x, y].
If all three properties of a path point object have the same coordinates, and the properties of the next path point in the line are equal to each other, you create a straight line segment. If two or more properties in a path point object hold different values, the segment connected to the point is curved.
To create a path, or to add points to an existing path, using path point objects, you create a path item object and then add the path points as child objects in the path item.
tell application "Adobe Illustrator" set docRef to make new document -- set stroked to true so we can see the path set lineRef to make new path item in docRef with properties {stroked:true} --giving the direction points the same value as the --anchor point creates a straight line segment set newPoint to make new path point of lineRef with properties {anchor:{220, 475},left direction:{220, 475},right direction:{220, 475} point type:corner} set newPoint2 to make new path point of lineRef with properties {anchor:{375, 300},left direction:{375, 300},right direction:{375, 300} point type:corner} --giving the direction points the different values --creates a curve set newPoint3 to make new path point of lineRef with properties {anchor:{220, 300},left direction:{180, 260},right direction:{240, 320} point type:corner} end tell
Shapes
To create a shape, you use the object that corresponds to the shapes name (such as ellipse, rectangle, or polygon), and use the objects properties to specify shapes position, size, and other information such as the number of sides in a polygon. Tip: Remember:
All measurements and page coordinates are processed as points by the scripting engine. For more information, see Measurement units on page 27. x and y coordinates are measured from the bottom left corner of the document, as indicated in the Info palette in the Illustrator application. For information, see Page item positioning and dimensions on page 27.
write-once access
Properties for path item shapes use the access status write-once, which indicates that the property is writeable only at the time the object is created. For existing path item objects, the properties are read-only properties whose values cannot be changed.
Creating a rectangle
The following sample creates a rectangle with the following properties:
The top right corner of the of the rectangle is inset 4 inches (288 points) from the bottom of the page and 5 inches (360 points) from the left edge of the page. The lower left corner of the rectangle is inset 1 inch (72 points) from the left edge of the page and 2 inches (144 points) from the bottom of the page.
tell application "Adobe Illustrator" set docRef to make new document set rectRef to make new rectangle in docRef with properties {bounds:{288, 360, 72, 144}} end tell
Creating a polygon
The following sample creates a polygon with the following properties:
The center point of the object is inset is 2 inches (144 points) on the horizontal axis and 4 inches (288 points) on the vertical axis. The length of the radius from the center point to each corner is 1 inch. The polygon has 7 sides.
tell application "Adobe Illustrator" set docRef to make new document set pathRef to make new polygon in docRef with properties {center point:{144, 288},sides:7,radius:72.0 end tell
3. Save the file as text only in a folder of your choice. Give the file the file extension .vbs. 4. To test the script, do either of the following:
Double-click the file. Start Illustrator and choose File > Scripts > Other Scripts, and then navigate to and run your script file.
Tip: To add the script to the Illustrator Scripts menu (File > Scripts), save the script in the Scripts folder. The script will appear on the menu the next time you start Illustrator. For information, see Installing scripts in the Scripts menu on page 10. Please note in general that, when you launch a VBScript script from the Scripts menu, any msgBox dialogs will not display correctly.
47
Get the active document. Get the width of the active document. Resize the text frame item to match the documents width.
Note: If you closed the Illustrator document without saving it, run your first script again to create a new document. 1. Copy the following script into your text editor, and save the file.
Set appRef = CreateObject("Illustrator.Application") 'Get the active document Set documentRef = appRef.ActiveDocument Set sampleText = documentRef.TextFrames(1) ' Resize the TextFrame item to match the document width sampleText.Width = documentRef.Width sampleText.Left = 0
In the script below, the variable pageItemRef will not necessarily refer to the same object as the above script since this script includes a reference to a layer:
Set documentRef = appRef.ActiveDocument Set pageItemRef = documentRef.Layers(1).PageItems(1)
Note: VBScript indexes start at 1 for object collections. However, VBScript allows you to specify whether array indexes start at 1 or 0. For information on specifying the index start number for arrays, refer to any VBScript textbook or tutorial.
Some collection objects do not have an Add method. You create an object of this type by defining a variable and using the CreateObject method. For example, to create a new CMYKColor object using the variable name newColor:
Set newColor = CreateObject ("Illustrator.CMYKColor")
Depending on what is selected, the selection property value can be an array of any type of art objects. To get or manipulate the properties of the selected art items, you must retrieve the individual items in the array. To find out an objects type, use the typename property. The following sample gets the first object in the array, and then displays the objects type:
Set appRef = CreateObject ("Illustrator.Application") Set documentRef = appRef.ActiveDocument selectedObjects = documentRef.Selection Set topObject = selectedObjects(1) MsgBox(topObject.Typename)
Note: The MsgBox method does not display a dialog when the script is run from the Illustrator Scripts menu (File>Scripts). Note: The first object in a selection array is the selected object that was last added to the page, and not the last object selected.
Threaded frames
As in the Illustrator application, you can thread area or path text frames. To thread existing text frames, you use the NextFrame or PreviousFrame property of the TextFrames object. Note: When copying the following script to a script or text editor, place the value of the Contents property a single line. The long line continuation character (_) is not valid when enclosed in a string.
Set appRef = CreateObject("Illustrator.Application") Set myDoc = appRef.Documents.Add Set myPathItem1 = myDoc.PathItems.Rectangle(244, 64, 82, 76) Set myTextFrame1 = myDoc.TextFrames.AreaText(myPathItem1) myTextFrame1.Contents = "This is two text frames linked together as one story, with text flowing from the first to the last." Set myPathItem2 = myDoc.PathItems.Rectangle(144, 144, 42, 116) Set myTextFrame2 = myDoc.TextFrames.AreaText(myPathItem2) 'Use the NextFrame property to thread the frames myTextFrame1.NextFrame = myTextFrame2 appRef.Redraw()
Paths
To create a freeform path, you specify a series of path points, either as series of x-y coordinates or as PathPoint objects.
Your path can consist of a combination of page coordinates and PathPoint objects.
A fixed anchor point, which is the point on the path A pair of direction points: the left direction point and the right direction point, which allow you to control the path segments curve You define each property as an array of page coordinates in the format(Array (x,y)).
If all three properties of a PathPoint object have the same coordinates, and the properties of the next PathPoint in the line are equal to each other, you create a straight line segment. If two or more properties in a PathPoint object hold different values, the segment connected to the point is curved.
To create a path, or to add points to an existing path, using PathPoint objects, you create a PathItem object and then add the path points as child objects in the PathItem.
Set appRef = CreateObject ("Illustrator.Application") Set firstPath = appRef.ActiveDocument.PathItems.Add firstPath.Stroked = true Set newPoint = firstPath.PathPoints.Add 'Using identical coordinates creates a straight segment newPoint.Anchor = Array(75, 300) newPoint.LeftDirection = Array(75, 300) newPoint.RightDirection = Array(75, 300) Set newPoint2 = firstPath.PathPoints.Add newPoint2.Anchor = Array(175, 250) newPoint2.LeftDirection = Array(175, 250) newPoint2.RightDirection = Array(175, 250) Set newPoint3 = firstPath.PathPoints.Add 'Using different coordinates creates a curve newPoint3.Anchor = Array(275, 290) newPoint3.LeftDirection = Array(135, 150) newPoint3.RightDirection = Array(155, 150)
Shapes
To create a shape, you use the PathItems method that corresponds to the shapes name (such as ellipse, rectangle, or polygon), and use parameters to specify shapes position, size, and other characteristics such as the number of sides in a polygon. Tip: Remember:
All measurements and page coordinates are processed as points by the scripting engine. For more information, see Measurement units on page 27. x and y coordinates are measured from the bottom left corner of the document, as indicated in the Info palette in the Illustrator application. For information, see Page item positioning and dimensions on page 27.
Creating a rectangle
The following sample creates a rectangle with the following properties:
The top of the rectangle is 2 inches (144 points) from the bottom edge of the page. The left edge is 2 inches (144 points) from the left edge of the page. The rectangle is 1 inch wide and 2 inches long.
Set appRef = CreateObject("Illustrator.Application") Set frontDocument = appRef.ActiveDocument ' Create a new rectangle with ' top = 400, left side = 50, width = 150, height = 100 Set newRectangle = frontDocument.PathItems.Rectangle(400,50,150,100)
Creating a polygon
The following sample creates a polygon with the following properties:
The center point of the object is inset 2 inches (144 points) on the horizontal axis and 4 inches (288 points) on the vertical axis. The length of the radius from the center point to each corner is 1 inch.
aiHorizontal aiVertical
The object browser in your scripting editor environment. For information, see Viewing the VBScript object model on page 9. The Adobe Illustrator CS3 VBScript Reference, which lists the numeral values directly after the constant value in the Enumerations chapter at the end of the book. The following example is taken from that table: Enumeration Type
AiTextOrientation
Values
aiHorizontal = 0 aiVertical = 1
Note: Generally, it is considered good scripting practice to place the text value in a comment following the numeral value, as in the following sample statement:
textRef.Orientation = 1 ' aiVertical
Index
A
actions, about 7 Adobe Illustrator Plug-in Software Development Kit Function Reference 29 aki properties 27 anchor points 29 AppleScript dictionary 9 file extensions 8 naming conventions 15 application version 23 applying styles, about 21 attributes, about 21
H
height, maximum value allowed 27 Hello World script creating 31, 40, 47 improving 32, 41, 48
I
Illustrator launching 23 quitting 23 specifying a version 23 Illustrator, See Adobe Illustrator inches, conversion of measurements 27 installing scripts 10
C
centimeters, conversion 27 character styles See also fonts about 21 clipboard, clearing before quitting 23 control bounds 28 coordinates, about 27 CS2 version changes 11, 13
J
JavaScript changes in Illustrator CS2 11, 13 file extension 8 naming conventions 16 object model viewer 8 .jsx extension 8
D
datasets, using 21 dialogs enabling 29 suppressing 29 dimensions, page items 27 documents page item positioning 27 printing 30
L
launching Illustrator 23 left direction 29 lines, creating 20 local attributes 21
M
matrices, about 22 matrix class 22 measurement values 27 methods, using 32 millimeters, conversion 27
E
em space units 27 enumeration values 53 executing scripts 10 ExtendScript file extension 8
O
object model changes in Illustrator CS2 11, 13 diagram 15 text 19 object references about 24 AppleScript 41 objects cannot be created by a script 25, 26 creating in AppleScript 42 creating in JavaScript 24 creating in Visual Basic 48 dimensions 27 direct creation required 25 54
F
file extensions for valid scripts 7 fixed points 27 fixed rectangles 28 fonts See also character styles em space units 27 frames, text 19
G
geometric bounds 28
Adobe Illustrator CS3 Scripting Guide hierarchy 15 selecting 49 support in Illustrator 7 SDK 29 selecting objects 49 selections determining content 35, 42, 49 using 35, 42, 49 Software Development Kit 29 stories, about 19 symbols about 21 items 21 Index 55
P
page items bounds 28 positioning 27 positioning and dimensions 27 parameters, omitting 32 paths about 29 creating 50 picas, conversion 27 points conversion 27 fixed 27 zero 27 printing about 19 settings options 30
T
text art items 19 frame types 19 ranges. See text ranges text ranges content 21 using text art 19 transformation matrices, about 22
Q
Qs (unit), conversion 27 quitting Illustrator 23
U
units of measurement 27 user interaction levels 29
R
rectangles creating 52 fixed 28 references, object. See object references right direction 29
V
variables deleting 21 using 21 VBScript enumeration values 53 file extension 8 naming conventions 15 type library 9 versions of Illustrator, specifying 23 visible bounds 28
S
script examples creating a curved path 37, 44, 51 creating a path 36, 44, 51 creating a polygon 39, 46, 52 creating a rectangle 39, 46 creating objects 34 selection sorter 42 selections 49 scripting about 6 using 6 scripting samples creating a rectangle 52 creating new objects 49 scripts executing 10 file extensions 7 installing 10 menu 7
W
width, maximum value allowed 27 write-once 46
X
X axis 27
Y
Y axis 27
Z
zero point 27