ADOBE® ILLUSTRATOR® CS5 ADOBE ILLUSTRATOR CS5 SCRIPTING GUIDE
© 2010 Adobe Systems Incorporated. All rights reserved. Adobe Illustrator CS5 Scripting Guide 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.
Contents 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 What is scripting? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Why use scripting? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 What about actions? . . . . . . .
Contents 4 3 Scripting Illustrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Launching and quitting Illustrator from a script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Launching and activating Illustrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Quitting Illustrator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Contents 5 Accessing objects in collections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Creating new objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Working with selections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Working with text frames . . . . . . . . . . . . . . . . .
1 Introduction This guide describes the scripting interface to Adobe® Illustrator® CS5. If you are new to scripting or want 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, affecting only one object in the current document, or complex, affecting objects in all your Illustrator documents.
CHAPTER 1: Introduction Scripting language support in Adobe Illustrator CS5 7 Scripting language support in Adobe Illustrator CS5 Illustrator scripting supports VBScript and JavaScript scripts for Windows, and AppleScript and JavaScript scripts for Mac OS. Script file extensions For a file to be recognized by Adobe Illustrator CS5 as a valid script file, the file must have the correct file name extension: Script type File type (extension) Platforms AppleScript compiled script (.
CHAPTER 1: Introduction Viewing sample scripts 8 see the Creative Suite SDK documentation, which is accessible from within the Flash Builder or Eclipse Help system when you have installed CSIDE. ExtendScript features If you write Illustrator-specific scripts that use the Illustrator JavaScript DOM directly, you will create ExtendScript files, which are distinguished by the .jsx extension. Giving your JavaScript files a .jsx extension (rather than the standard .
CHAPTER 1: Introduction Viewing the object model 9 Viewing the JavaScript object model To view the JavaScript object model for Illustrator, follow these steps: 1. Start the ESTK. In a default Adobe installation, the ESTK is in the following location: Z Windows: system drive\Program Files\Adobe\Adobe Utilities CS5\ExtendScript Toolkit CS5 Z Mac OS: system drive:Applications:Utilities:Adobe Utilities CS5:ExtendScript Toolkit CS5 2. In the ESTK, choose Help > Object Model Viewer. 3.
CHAPTER 1: Introduction Executing scripts 10 Viewing the VBScript object model VBScript provides a type library you can use to view Illustrator object properties and methods. This procedure explains how to view the type library through any Microsoft Office program. Your VBScript editor probably provides access to the library. For information see your editor’s Help. 1. In any Microsoft Office application, choose Tools > Macro > Visual Basic Editor. 2.
CHAPTER 1: Introduction Executing scripts 11 Executing scripts from the Other Scripts menu item The Other Scripts item at the end of the Scripts menu (File > Scripts > Other Scripts) allows you to execute scripts that are not installed in the Scripts folder. Selecting Other Scripts displays a Browse dialog, which you use to navigate to a script file. When you select the file, the script is executed. Only files that are of one of the supported file types are displayed in the browse dialog.
CHAPTER 1: Introduction Changes in CS5 12 For details, see JavaScript Tools Guide. Changes in CS5 This section lists changes made to the scripting object model to support features in Illustrator CS5. Ruler origin In previous releases, the artboard origin, the position with coordinates (0,0), was in the bottom left corner, with positive X increments going left to right, and positive Y increments going bottom to top.
CHAPTER 1: Introduction X X X X X Changes in CS5 Z JavaScript — SymbolRegistrationPoint Z VBScript — AiSymbolRegistrationPoint 13 A new enumeration for perspective grid plane type: Z AppleScript — floorplane/leftplane/noplane/rightplane Z JavaScript — PerspectiveGridPlaneType Z VBScript — AiPerspectiveGridPlaneType A new enumeration for the type of text anti-aliasing: Z AppleScript — crisp/none/sharp/strong Z JavaScript — TextAntiAlias Z VBScript — AiTextAntialias A new enumeration v
CHAPTER 1: Introduction Changes in CS5 ruler origin of artboard 1 of document 1 name of artboard 1 of document 1 Z JavaScript activeDocument.artboards[0].rulerOrigin activeDocument.artboards[0].name Z VBScript ActiveDocument.Artboards[1].RulerOrigin ActiveDocument.Artboards[1].Name X X New method/command in Document class for working with different coordinate systems: Z AppleScript — convert coordinate Z JavaScript — app.activeDocument.convertCoordinate() Z VBScript — App.ActiveDocument.
CHAPTER 1: Introduction Z Changes in CS5 15 VBScript App.ActiveDocument.ImportPerspectiveGridPreset() App.ActiveDocument.ExportPerspectiveGridPreset() App.ActiveDocument.SelectPerspectiveGrid() App.ActiveDocument.ShowPerspectiveGrid() App.ActiveDocument.HidePerspectiveGrid() App.ActiveDocument.GetPerspectiveActivePlane() App.ActiveDocument.
CHAPTER 1: Introduction Known issues 16 version: from FXGVersion.VERSION1PT0 to FXGVersion.VERSION2PT0 textPolicy: from textPolicy.KEEPTEXTEDITABLE to AUTOMATICALLYCONVERTTEXT gradientsPolicy: from gradientsPolicy.KEEPGRADIENTSEDITABLE to AUTOMATICALLYCONVERTGRADIENTS Z VBScript Added: BlendsPolicy Removed: ClipContent Changed defaults: Version: from FXGVersion.VERSION1PT0 to FXGVersion.
CHAPTER 1: Introduction Known issues 17 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 scripts that ran previously. Issues with script code that may cause this problem are: X Z Reading uninitialized variables.
2 The Illustrator Scripting Object Model A good understanding of the Illustrator object model will improve your scripting abilities. The following figure shows the containment hierarchy of the object model, starting with the application object. Note that the layer and group item classes can contain nested objects of the same class which can, in turn, contain additional nested objects.
CHAPTER 2: The Illustrator Scripting Object Model Object-naming conventions 19 Object-naming conventions There is one object model for the Illustrator scripting interface, but actual object names vary slightly in the different scripting languages: X AppleScript names are lower case, and individual words are separated by a space; for example: graphic style X VBScript names are capitalized, and additional words in the name are indicated by uppercase initial letters; for example: GraphicStyle X JavaScr
CHAPTER 2: The Illustrator Scripting Object Model The artwork tree 20 Document The document object, which your scripts can create or access through the application object, represents an art canvas or loaded Illustrator file.
CHAPTER 2: The Illustrator Scripting Object Model X mesh item X non native item X path item X placed item X plugin item X raster item X symbol item (see “Dynamic objects” on page 25) X text frame The artwork tree 21 Your scripts can access and manipulate art objects through collections in the document and layer objects.
CHAPTER 2: The Illustrator Scripting Object Model Text objects 22 Color objects Your script can apply a color, pattern or gradient to a path item object, using the fill color or stroke color properties: X Scripts can define new color swatches using the make command or add method of the swatches object. Your script also can create a new spot color, using the make command or add property of the spots object.
CHAPTER 2: The Illustrator Scripting Object Model Text objects 23 To create a specific kind of text frame, use the kind property of the text frames object in AppleScript. 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, use the next frame or previous frame property of the text frame object.
CHAPTER 2: The Illustrator Scripting Object Model Text objects 24 Both text frame and story objects have insertion point and text selection properties. The text frame object’s properties also include the defining features of the text frame, such as: X The frame width, height, and position X Whether the frame is hidden or locked X Whether the text is editable NOTE: A line object cannot be created in a script. Your script can create character, paragraph, and word objects.
CHAPTER 2: The Illustrator Scripting Object Model Dynamic objects 25 Dynamic objects By creating dynamic objects, you can create data-driven graphics. In the Illustrator application, you use the Variables panel to create or edit variables like graph data, linked file, text string, and visibility, or variables whose type is not specified. In scripting, you use the variable object to represent this type of variable.
3 Scripting Illustrator This chapter is an overview of how to use scripting objects to program Illustrator CS5. Specific examples for the supported scripting languages are in succeeding chapters. Launching and quitting Illustrator from a script Your scripts can control the activation and termination of Illustrator. Launching and activating Illustrator AppleScript In AppleScript, you use a tell statement to target Illustrator. The activate command activates Illustrator if it is not already active.
CHAPTER 3: Scripting Illustrator X Working with objects 27 Use the New operator if you 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 AppleScript Use the quit command: tell application "Adobe Illustrator" quit end tell JavaScript Use the app.quit() method: app.
CHAPTER 3: Scripting Illustrator Working with objects 28 The following objects must be created explicitly: CMYK color document preset EPS save options export options AutoCAD export options Flash export options GIF export options JPEG export options Photoshop export options PNG8 export options PNG24 export options SVG file folder gradient color gray color Illustrator save options ink ink info lab color matrix MXG save options no color open options open options AutoCAD open options FreeHand open options P
CHAPTER 3: Scripting Illustrator Working with objects 29 VBScript To refer to a path items object in a document: Documents(1).PathItems(1) To refer to a path items object in a layer: Documents(1).Layers(1).PathItems(1) For more examples of collection-item containers, see the document object Elements table in Adobe Illustrator CS5 Scripting Reference: AppleScript or the Properties table in Adobe Illustrator CS5 Scripting Reference: JavaScript or Adobe Illustrator CS5 Scripting Reference: VBScript.
CHAPTER 3: Scripting Illustrator Measurement units 30 Measurement units Illustrator uses points as the unit of measurement for almost all distances. One inch equals 72 points. The exception is values for properties like kerning, tracking, and the aki properties (used for Japanese text composition), which use em units. (See “Em space units” on page 30.) Illustrator uses points when communicating with your scripts regardless of the current ruler units.
CHAPTER 3: Scripting Illustrator Page-item positioning and dimensions 31 You can see these coordinates in the Info panel when you select or create an object in Illustrator. For the artboard, the default coordinate origin, (0,0), is the top-left corner, reflected in the ruler origin property of the artboard object. X coordinate values increase from left to right, and Y values increase from top to bottom.
CHAPTER 3: Scripting Illustrator Paths and shapes 32 Paths and shapes Paths are represented in the Illustrator DOM by the path item object. Path items include all artwork that contains paths, such as rectangles, ellipses, and polygons, as well as freeform paths. A freeform path consists of a series of path points. A path point can be specified in two ways: X As an array of x and y page coordinates.
CHAPTER 3: Scripting Illustrator Printing Illustrator documents 33 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.
4 Scripting with AppleScript This chapter uses script examples and explanations to help you to become familiar with Illustrator scripting using AppleScript. For more information Several extended sample scripts are in the :Scripting:Sample Scripts folder in your Illustrator CS5 installation directory.
CHAPTER 4: Scripting with AppleScript Object references 35 Adding features to “Hello World” Next, we create a new script that makes changes to the Illustrator document you created with your first script. Our second script demonstrates how to: X Get the active document. X Get the width of the active document. X Resize the text frame to match the document’s width. If you already closed the Illustrator document, run your first script again to create a new document. Follow these steps: 1.
CHAPTER 4: Scripting with AppleScript Object references 36 each consecutive make command. (Choose Event Log at the bottom of the Script Editor window.
CHAPTER 4: Scripting with AppleScript Working with text frames 37 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 object’s type, use the class property.
CHAPTER 4: Scripting with AppleScript Creating paths and shapes 38 Threaded frames make one story object Threaded frames make a single story object. To observe this, run the following AppleScript after running the script in “Threaded frames” on page 37. display dialog ("There are " & (count(text frames of current document)) & " text frames.") display dialog("There are " & (count(stories of current document)) & " stories.
CHAPTER 4: Scripting with AppleScript Creating paths and shapes 39 -- 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 ?
CHAPTER 4: Scripting with AppleScript Working with the perspective grid 40 Creating a rectangle Consider the following sample: 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 The sample creates a rectangle with these properties: X 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
CHAPTER 4: Scripting with AppleScript Working with the perspective grid 41 Use perspective presets Illustrator provides default grid-parameter presets for one-point, two-point, and three-point perspectives. The presets are named "[1P-NormalView]", "[2P-NormalView]", and "[3P-NormalView]".
CHAPTER 4: Scripting with AppleScript Working with the perspective grid Floor plane perspective grid plane floorplane Invalid plane perspective grid plane noplane 42 For a one-point perspective grid, only the left and floor plane are valid.
CHAPTER 4: Scripting with AppleScript Working with the perspective grid 43 set starRef to make new star with properties {center point:{135, 135}, radius:15, inner radius:10, point count:6, reversed:false} --Draw path in perspective set newPath to make new path item with properties {entire path:{{anchor:{0, 0}}, {anchor:{60, 0}}, {anchor:{30, 45}}, {anchor:{90, 110}}}} end tell end tell Bring objects into perspective If an art object is not in perspective, use the bringInPerspective() method to bring it
5 Scripting with JavaScript This chapter uses script examples and explanations to help you to become familiar with Illustrator scripting using JavaScript. For more information Several extended sample scripts are in the /Scripting/Sample Scripts folder in your Illustrator CS5 installation directory.
CHAPTER 5: Scripting with JavaScript Working with methods in JavaScript 45 Adding features to “Hello World” Next, we create a new script that makes changes to the Illustrator document you created with your first script. Our second script demonstrates how to: X Get the active document. X Get the width of the active document. X Resize the text frame to match the document’s width.
CHAPTER 5: Scripting with JavaScript Accessing and referencing objects 46 Accessing and referencing objects When you write a script, you must first decide which file, or document, the script should act on. Through the application object, the script can create a new document, open an existing document, or act on a document that is already open. The script can create new objects in the document, operate on objects that the user selected, or operate on objects in one of the object collections.
CHAPTER 5: Scripting with JavaScript Accessing and referencing objects 47 The following statements assign the name of the first graphic style in the collection to a variable. You can use these statements interchangeably. var styleName = myStyles[0].name var styleName = firstStyle.name var styleName = app.activeDocument.graphicStyles[0].name To get the total number of objects in a collection, use the length property: alert ( myStyles.
CHAPTER 5: Scripting with JavaScript Working with text frames 48 Working with selections When the user makes a selection in a document, the selected objects are stored in the document’s selection property. To access all selected objects in the active document: var selectedObjects = app.activeDocument.selection; The selection property value can be an array of any type of art objects, depending on what types of objects are selected.
CHAPTER 5: Scripting with JavaScript Creating paths and shapes 49 Threaded frames make a single story object Threaded frames make a single story object. To observe this, run the following JavaScript after running the script in “Threaded frames” on page 48. var myDoc = app.activeDocument alert("There are " + myDoc.textFrames.length + " text frames.") alert("There are " + myDoc.stories.length + " stories.") Creating paths and shapes This section explains how to create items that contain paths.
CHAPTER 5: Scripting with JavaScript Creating paths and shapes 50 //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.
CHAPTER 5: Scripting with JavaScript Working with the perspective grid 51 Creating a rectangle Consider the following sample var myDocument = app.documents.add() var artLayer = myDocument.layers.add() var rect = artLayer.pathItems.rectangle( 144, 144, 72, 216 ); The sample uses the pathItems object’s rectangle() method to create a rectangle with these properties: X The top of the rectangle is 2 inches (144 points) from the bottom edge of the page.
CHAPTER 5: Scripting with JavaScript Working with the perspective grid 52 Use perspective presets Illustrator provides default grid-parameter presets for one-point, two-point, and three-point perspectives. The presets are named "[1P-NormalView]", "[2P-NormalView]", and "[3P-NormalView]". This script shows how to select a preset programmatically: //Set the default one-point perspective preset app.activeDocument.
CHAPTER 5: Scripting with JavaScript Working with the perspective grid 53 //Set left plane as the active plane app.activeDocument.setPerspectiveActivePlane(PerspectiveGridPlaneType.LEFTPLANE); //Set right plane as the active plane app.activeDocument.setPerspectiveActivePlane(PerspectiveGridPlaneType.RIGHTPLANE); //Set floor plane as the active plane app.activeDocument.setPerspectiveActivePlane(PerspectiveGridPlaneType.
CHAPTER 5: Scripting with JavaScript Working with the perspective grid 54 Bring objects into perspective If an art object is not in perspective, use the bringInPerspective() method to bring it into perspective and place it on a plane. This script creates a new document, draws art objects, and brings them into perspective on a three-point perspective grid: //Create a new document var mydoc = app.documents.add(); //Draw ellipse var myellipse = mydoc.pathItems.
6 Scripting with VBScript This chapter uses script examples and explanations to help you to become familiar with Illustrator scripting using VBScript. For more information Several extended sample scripts are in the /Scripting/Sample Scripts folder in your Illustrator CS5 installation directory.
CHAPTER 6: Scripting with VBScript Accessing and referencing objects 56 Adding features to “Hello World” Next, we create a new script that makes changes to the Illustrator document you created with your first script. The second script demonstrates how to: X Get the active document. X Get the width of the active document. X Resize the text frame item to match the document’s width. If you closed the Illustrator document without saving it, run your first script again to create a new document.
CHAPTER 6: Scripting with VBScript Accessing and referencing objects 57 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) VBScript indexes start at 1 for object collections; however, VBScript allows you to specify whether array indexes start at 1 or 0.
CHAPTER 6: Scripting with VBScript Working with text frames 58 Working with text frames To create a text frame of a specific type in VBScript, use the TextFrames method that corresponds to the type of frame you want to create: Set rectRef = docRef.PathItems.Rectangle(700, 50, 100, 100) ' Use the AreaText method to create the text frame Set areaTextRef = docRef.TextFrames.AreaText(rectRef) Threaded frames As in the Illustrator application, you can thread area path frames or path text frames.
CHAPTER 6: Scripting with VBScript Creating paths and shapes 59 Using x-y coordinates limits the path to straight segments. To created a curved path, you must create PathPoint objects. Your path can comprise a combination of page coordinates and PathPoint objects. Specifying a series of x-y coordinates To specify a path using page-coordinate pairs, use the SetEntirePath() method of the PathItems object.
CHAPTER 6: Scripting with VBScript Creating paths and shapes 60 Combining path-point types The following script sample creates a path with three points: Set appRef = CreateObject("Illustrator.Application") Set myDoc = appRef.ActiveDocument Set myLine = myDoc.PathItems.Add myLine.Stroked = True myLine.SetEntirePath( Array( Array(320, 475), Array(375, 300))) ' Append another point to the line Set newPoint = myLine.PathPoints.Add 'Using identical coordinates creates a straight segment newPoint.
CHAPTER 6: Scripting with VBScript Working with enumeration values 61 Creating a polygon Consider the following sample: Set appRef = CreateObject("Illustrator.Application") Set frontDocument = appRef.ActiveDocument ' Create a new polygon with ' top = 144, left side = 288, width = 72, height = 144 Set newPolygon = frontDocument.PathItems.
CHAPTER 6: Scripting with VBScript Working with the perspective grid 62 Working with the perspective grid The Perspective Grid is a new feature in Illustrator CS5 that enables you to create and manipulate art in a spatial environment using established laws of perspective. Enable the Perspective Grid using the View > Perspective Grid menu or the perspective tools in the toolbar. The SDK provides an API for working with the perspective grid programmatically, and your scripts have some access to this API.
CHAPTER 6: Scripting with VBScript Working with the perspective grid 63 Set docRef = appRef.Documents.Add() Rem Show the Perspective Grid defined in the document docRef.ShowPerspectiveGrid(); Rem Hide the Perspective Grid defined in the document docRef.
CHAPTER 6: Scripting with VBScript Working with the perspective grid 64 call pathItemRect.Resize(200, 200, True, False, False, False, 100, 2) call pathItemRect.Translate(-420, 480) Rem Draw ellipse in perspective Set pathItemEllipse = docRef.PathItems.Ellipse(60, -60, 30, 30, False, True) Rem Draw rounded rectangle in perspective Set pathItemRRect = docRef.PathItems.RoundedRectangle(90, -90, 30, 30, 10, 10, False) Rem Draw polygon in perspective Set pathItemPoly = docRef.PathItems.
CHAPTER 6: Scripting with VBScript Working with the perspective grid Rem Bring the star to the floor plane Call pathItemStar.
Index A actions, about, 6 Adobe Illustrator Plug-in Software Development Kit Function Reference, 32 aki properties, 30 anchor points, 32 AppleScript dictionary, 9 file extensions, 7 naming conventions, 19 application version, 26 applying styles, about, 24 attributes, about, 24 C centimeters, conversion, 30 character styles See also fonts about, 24 clipboard, clearing before quitting, 26 control bounds, 31 coordinates, about, 30 CS2 version changes, 16 fixed points, 30 fixed rectangles, 31 fonts See also c
Index 67 measurement values, 30 methods, using, 45 millimeters, conversion, 30 right direction, 32 O script examples creating a curved path, 38, 49, 59 creating a path, 38, 49, 59 creating a polygon, 40, 51, 61 creating a rectangle, 40, 51 creating objects, 47 selections, 57 scripting about, 6 using, 6 scripting samples creating a rectangle, 60 creating new objects, 57 scripts executing, 10, 11 file extensions, 7 installing, 10 menu, 7 support in Illustrator, 7 SDK, 32 selecting objects, 57 selections
Index 68 deleting, 25 using, 25 VBScript enumeration values, 61 file extension, 7 naming conventions, 19 type library, 10 versions of Illustrator, specifying, 26 visible bounds, 31 W width, maximum value allowed, 30 write-once, 39 X X axis, 30 Y Y axis, 30 Z zero point, 30