Illustrator (Desktop) SDK/Scripting Issues
112 results found
-
Transparency Mask
There is no way to work with the transparency mask in the Script SDK. This is the least of the problems. But when creating scripts to modify objects with masks, developers expect masks to be modified along with the parent object. After all, we see the "Linked to Art" icon in the Transparency panel.
But what we have all these years as script developers: resize(), position, translate() modify the object, and its mask remains as it was.
I've counted about 10 of my own scripts that use similar commands. I also have a large collection of other developers' scripts, where…
9 votes -
Drag-and-drop bug running scripts containing app.doScript()
Watch the "drag-and-drop-bug.mp4" video, which demonstrates a specific but with the Adobe Illustrator's JS engine handling scripts which are dragged to different areas of the screen in different ways.
In most cases, a drag-and-dropped script will work as intended. But for 10 years in CS6-CC 2023 versions there is a limited bug handling the script if dragged to the “wrong” area of the program window.
If the script contains an action and a user drags it onto the document window, it may not work correctly. If the script selects objects one by one and applies an action to them, it…
9 votes -
Adjusting one gradient causes changes to unrelated gradients on same document
adjusting one gradient causes changes to unrelated gradients on same document.
9 votes -
kAINamedStyleListChangedNotifier is not emitted when a Graphic Style is updated
If you hold ALT and drag some art into a Graphic Style, it updates, but the notifier is not sent. This has been happening since at least the original CC. It used to work before that.
9 votes -
addDocumentNoUI methods argument not selectable.
1.Your version of Adobe Illustrator
Illustrator ver.21 or later.2.The steps you were taking when you experienced the issues
When we run addDocumentNoUI method, we can set startupPreset.
However, It always sets "Web" preset.3.Your expected result
When we select "Art & Illustration" document open with appropriate preset.4.Your actual result
All the time we got a document made with "Web" preset.Here is a sample code of NoUI scripting.
var dc = app.documents.addDocumentNoUI("Art & Illustration");
//add some objects
dc.saveNoUI(File("~/Desktop/testNoUI.ai"));
dc.closeNoUI();After run it and open in Illustrator, we will find it used Web preset.
We want to choose appropriate…9 votesResolved (Comments Open) · AdminRama (Mgr, Software Quality Engineering, Adobe Illustrator) respondedvar dc = app.documents.addDocumentWithDialogOption(“Art & Illustration”, false);
//add some objects
dc.saveAs(File(”~/Desktop/testNoUI.ai“));
dc.close(SaveOptions.DONOTSAVECHANGES);Above script works for creating, saving and close the document without UI. The document preset is localized, if you are using locale other than english, you should pass the localized name of preset to addDocumentWithDialogOption method.
-
[Typo] Document.rearrangeArtboards() of Illustrator JavaScript Reference.pdf
There is a typo in rearrangeArtboards in Illustrator JavaScript Scripting Reference.pdf. It cannot execute as per the document. Please correct it.
I have checked and it was wrong from CS5 to current version (2022 v2 - Feb 2022).
Expected Name:
rearrangeArtboards
Actual Name:
rearrangeArboards ("t" is missing from Artboards)
8 votes -
More notifiers for live effects
Ai provides a live effect notifier that triggers when an object is scaled, but not when it’s moved. Same problem with rotating — the absence of these does not allow to recalculate effects properly, like one when an object with a shadow is rotated, and a user wants to rotate the shadow with the object (there is a quite popular request about this one already — https://illustrator.uservoice.com/forums/333657-illustrator-desktop-feature-requests/suggestions/32468149-effects-do-not-rotate-drop-shadow-or-scale-e-g)
8 votes -
kATEDocumentResourceChangedNotifier not sent when character/paragraph styles are changed
According to the documentation for kATEDocumentResourceChangedNotifier, it is supposed to be "Sent when ATE document resources, such as named style, have changed."
I have never found this to be true, in any version since the ATE was added. This has always been a serious pain point, because we build small previews of text styles and we have to rebuild them every time we open a UI that shows them, because we have no way of knowing if they have changed (or if they even still exist, or any have been added!).
Since it's never been sent before, there can't be…
8 votes -
Activating artboard with a script does not update the Artboards panel
If you click inside of an artboard with a mouse, it gets the 'active' flag and becomes selected in Artboards panel as well. So if you press Shift+O to pick Artboard Tool, you see its name and dimensions.
However, if you use method setActiveArtboardIndex() — the artboard still gets the active black border, but the panel stays unrefreshed, and if you pick the tool you get the information about a different artboard.7 votes -
Install new tools in toolbox by default
When a user adds a new third-party plugin, its tools should be added to the toolbox, where users expect to find it, rather than hidden in the drawer, which many users don't even know about. Hiding new tools creates frustration for users and extra support hassle for developers.
6 votes -
app.selectTool('Adobe Intertwine Zone Marker Tool') does not work
When I run the following script, the Adobe Intertwine Zone Marker Tool starts up and I can select the area where I want to change the overlap like the lasso tool. However, nothing happens after the selection.
app.selectTool('Adobe Intertwine Zone Marker Tool')
Expected Result
The overlap of the selected area is changed.
Actual Result
The line will remain as if it was drawn with the lasso tool. The overlap is not changed.
Enviroment
- macOS 11.7
- Illustrator 27.1.1
6 votesAn intended way of picking up the hidden Zone Marker tool via a script is to enter the Intertwine mode using these commands:
app.executeMenuCommand('Partial Rearrange Make') — when an intertwine object is not created yet, and
app.executeMenuCommand('Partial Rearrange Edit') — when the object already exists, as per comments by the OP.
-
Isolate/Unisolate commands
Commands:
//menu Other Object\Isolate Selected Object
app.executeMenuCommand('enterFocus');//menu Other Object\Exit Isolation Mode
app.executeMenuCommand('exitFocus');Return error:
an Illustrator error occurred: 1346458189 ('PARM').This applies not only to isolation, but also to some other commands.
6 votes -
Opacity Mask
Transparency / Opacity Mask - In layers pallet page item names look different with masks (underline) and opacity masks (dashed). It would be great if you could add this to properties of the page item like mask: none, opacity mask or mask. Identifying these objects is even harder then Envelopes which can only be identified by identifying as plugin object. Worst case putting info in the tag propery would be better then nothing when cresating it. I do not believe a opacity mask can be identified through any form of SDK/Script which makes identifying raster images in the file impossible.…
6 votes -
Executing Extendscript/Javascript from the C++ API
As far as I know there is no possible way to execute an Extendscript via the C++ API.
In InDesign we can do so by providing the script as a string and fetching simple output results.Our customers can customize our Plugins by providing their own script in our custom scripting language. Unfortunately our language does not cover all use cases and needs to be constantly expanded. With support for Extendscript/Javascript execution from the C++ API we could circumvent the problem and give the users a lot of flexibility and power.
6 votes -
CEP: Unique identifier for items and layers
Please provide unique identifiers for all page items and layers via script.
Right now it is not possible to save IDs of page items/layers in a variable or array and retrieve them at a later point in the script.
At first I could not believe it that there are no IDs. This is total basic and should be a no-brainer and default.
Thanks!P.S. Current workaround: set custom tag on items. This works only as long as the user is not duplicating an items. Than you have two items with the same tag and it is not unique anymore.
Workaround…6 votes -
Control the angle, length of gradients and other
ExtendScript does not allow you to control the length, angle, or other parameters of gradients. These are all read-only attributes. Script authors can only work with color stops.
For example, to rotate a gradient, we have to use the rotate() method, which has another problem. The angle of such a gradient is not copied to another object with the Eyedropper Tool: https://medium.com/@aiscripts/gradient-rotation-bug-24d7a6f6038f
The fillColor assignment commands (selection[1].fillColor = selection[0].fillColor) carry over the base gradient, losing other properties. This reduces the ability to automate gradients via ExtendScript.
Also ignores other Uservoices:
1) https://illustrator.uservoice.com/forums/908050-illustrator-desktop-sdk-scripting-issues/suggestions/44461230-adjusting-one-gradient-causes-changes-to-unrelated
2) https://illustrator.uservoice.com/forums/908050-illustrator-desktop-sdk-scripting-issues/suggestions/40296880-erroneous-fillcolor-type-one-shapes-with-freeform
3) https://illustrator.uservoice.com/forums/333657-illustrator-desktop-feature-requests/suggestions/38435974-gradient-swatch-includes-angle-and-position-pleas5 votes -
[Typo] ExportOptionsTIFF.IZWCompression of Illustrator JavaScript Reference.pdf
There is a typo in ExportOptionsTIFF in Illustrator JavaScript Scripting Reference.pdf, which fails to specify whether or not LZW compression is used. Please correct it.
I have checked and it was wrong from the CS6 version.
Expected Name: lZWCompression (begins with a lowercase L)
Actual Name: IZWCompression (begins with an uppercase i)The function name in the example is also wrong. exportFileToTIFF should be correct.
…Exporting to TIFF format // Exports current document to dest as a TIFF file with specified // options, dest contains the full path including the file name function exportFileToPSD (dest) { // <-- exportFileToTIFF if
5 votes -
Wrong short-discription in omv.xml
macOS10.14.7 / IllustratorCC 26.3.1
In the following omv file, the shortdesc(short description) of each property of the "TextAntialias" class in lines 833 to 865 is identical to the one for the previous "TextType" class.
(以下のomvファイル、833行目〜865行目の「TextAntialias」クラスの各プロパティのショートディスクリプションが一つ前のTextTypeのものと同一です。)/Library/Application Support/Adobe/Scripting Dictionaries CC/Illustrator 2022/omv.xml
...
<classdef name="TextAntialias" enumeration="true">
<shortdesc>The type of text antialiasing.</shortdesc>
<elements type="class">
<property name="NONE" rwaccess="readonly">
<shortdesc>Text from a point.</shortdesc>
<datatype>
<type>int</type>
<value>1</value>
</datatype>
</property>
<property name="SHARP" rwaccess="readonly">
<shortdesc>Text within an area.</shortdesc>
<datatype>
<type>int</type>
<value>2</value>
</datatype>
</property>
<property name="CRISP" rwaccess="readonly">
<shortdesc>Text on a path.</shortdesc>
<datatype>
<type>int</type>
<value>3</value>
</datatype>
</property>
<property name="STRONG" rwaccess="readonly">
<shortdesc>Text on a path.</shortdesc>
<datatype>
<type>int</type>
<value>4</value>
</datatype>
</property>
</elements>…5 votes -
Justification bug, cannot set 'center' in v24.2 using AppleScript
Running a script to set the justification of text works perfectly for left and right, but no longer works for center. Putting the example script given in the latest Illustrator CC Scripting Guide, page 122, into a Script Editor visually compiles centre differently to left and right and only works if you remove or comment out the line justifying to center.
5 votes -
Concerns about the future of CEP and UXP
I've been reading through the new information about UXP and the announcement that it will be replacing CEP.
If this happens it will likely mean the end of our current CEP extension, since the support provided in UXP does not cover our use case. To be specific we have problems with the following areas:
1) Most critical UXP is "not a browser" and as such will only support a subset of HTML. Our extension relies on being able to run another web application within the browser control supplied by CEP, in an iframe window. While there is currently no list…
5 votes
- Don't see your idea?