Illustrator (Desktop) SDK/Scripting Issues
80 results found
-
[Typo] Document.SaveToCloud() of Illustrator JavaScript Reference.pdf
There is a typo in Document.SaveToCloud in Illustrator JavaScript Scripting Reference.pdf. The wrong function name is listed and developers and users cannot call SaveToCloud(). It would be helpful if it could be corrected.
According to my research, this is wrong from CC 2021 version to the current (2025 v1).
Expected Name:
Document.saveToCloud ("s" is lowercase -> saveToCloud)
Actual Name:
Document.SaveToCloud ("S" is uppercase -> SaveToCloud)
Attached Files:
- SaveToCloud.png
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 votesvar 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] app.tracingPresetList of Illustrator JavaScript Reference.pdf
There is a typo in app.tracingPresetList in Illustrator JavaScript Scripting Reference.pdf. The wrong property name is listed and developers and users cannot get tracingPreset. It would be helpful if it could be corrected.
According to my research, this is wrong from CS2 version to the current (2024 v1).
Expected Name:
app.tracingPresetsList (add "s" to Preset -> Presets)
Actual Name:
app.tracingPresetList ("s" is missing from Presets)
8 votes -
Broken embedICCProfile in export
For TIFF, PSD exports, there are new ExportOptionsPhotoshop() and new ExportOptionsTIFF() in the ExtendScript object model, and a Boolean attribute embedICCProfile that embeds a color profile in exports. But if we set it to true, the profile still won't be embedded.
I've explored versions of Adobe Illustrator. Illustrator CS6 - embedICCProfile property worked, but in the next version of CC (v17) embedICCProfile was broken and in the next versions it didn't change, it's been ten years!
How to test:
1) Rename exportTif.txt to exportTif.jsx and run it. The script will export the first artboard of the document in TIFF to…8 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-pleas8 votes -
[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 -
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 -
The ability to read/write bleed value
I would like Adobe to give some love to the Illustrator’s scripting API overall. So many things are missing.
Please give us the ability to read/write bleed.
There are some hacks we have to dance with around the problem — community.adobe.com/t5/illustrator-discussions/setting-the-bleed-in-ai-via-javascript/m-p/8975095 — but the solution is rather clunky.Original idea by Jean-Claude Tremblay
6 votes -
[Typo] app.OpenCloudDocument() of Illustrator JavaScript Reference.pdf
There is a typo in app.OpenCloudDocument in Illustrator JavaScript Scripting Reference.pdf. The wrong function name is listed and developers and users cannot call OpenCloudDocument(). It would be helpful if it could be corrected.
According to my research, this is wrong from CC 2021 version to the current (2025 v1).
Expected Name (Correct):
app.openCloudDocument ("o" in "open" is lowercase -> openCloudDocument)Actual Name (Wrong):
app.OpenCloudDocument ("O" in "Open" is uppercase -> OpenCloudDocument)Attached Files
* OpenCloudDocument.png6 votes -
When getting ink.name, encoding gets broken for non-Latin languages: Chinese, Japanese, Russian, etc.
A script cannot support Chinese, Japanese and other languages when getting ink.name, and it displays garbled characters.
var doc = app.activeDocument;
var inkList = doc.inkList;
var inkUsage = [];for (var i = 0; i < inkList.length; i++) {
var ink = inkList[i];
var inkName = ink.name;
inkUsage.push(inkName);
}alert(inkUsage.join("\n"));
$.write(inkUsage.join("\n"));This test script above gives a result like in the screenshot attached.
Problem found by Aprking
Original discussion:
https://community.adobe.com/t5/illustrator-discussions/how-to-make-the-script-support-chinese-japanese-and-other-languages-when-getting-ink-name/m-p/142477916 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.
-
[Typo] app.flattenerPresetList of Illustrator JavaScript Reference.pdf
There is a typo in app.flattenerPresetList in Illustrator JavaScript Scripting Reference.pdf. The wrong property name is listed and developers and users cannot get it. It would be helpful if it could be corrected.
According to my research, this is wrong from CS3 version to the current (2025 v1).
In addition, the return value type should be “array of string”, not “object”.

Expected name
app.flattenerPresetsList (add "s" to Preset -> Presets)
Actual name
app.flattenerPresetList ("s" is missing from Presets)
Attached files
- flattenerPresetList.png
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 -
firstLineIndent can’t be set to zero
Create a text object, type some text, keep it selected and run the script:
activeDocument.textFrames[0].paragraphs[0].paragraphAttributes.firstLineIndent = 20;
alert(activeDocument.textFrames[0].paragraphs[0].paragraphAttributes.firstLineIndent);activeDocument.textFrames[0].paragraphs[0].paragraphAttributes.firstLineIndent = 0;
alert(activeDocument.textFrames[0].paragraphs[0].paragraphAttributes.firstLineIndent);You have two alerts saying 20, while the second one should show and actually set the first line indent value to 0 — and it does not.
5 votes -
access opacity of TextRange
There is no way to access the opacity of a textRange. This TextFrame has 100% opacity, but it contains two textRanges, one of which is at 50% opacity. I don't believe that there is a way to make everything 100% opaque from javascript.
5 votes -
Scripting Bug: importFile() no longer works in CC2018
importFile() worked fine in CC2017, now in CC2018 it throws an "Illegal Argument" error.
here's a small JavaScript to test. Open any document or create a blank file before running the script
var f = File('c:/temp/Example File.pdf'); // to test, add a path to a valid file in your system
var idoc = app.activeDocument; // have any document open
idoc.importFile(f, false);
5 votes -
The ability to read/write live corner widget option
I would like Adobe to give some love to the Illustrator’s scripting API overall. So many things are missing.
Please give us the ability to read/write live corner widget option (as well as any other option in Ai, really).Original idea by Jean-Claude Tremblay
4 votes -
Move gradient swatch to swatch group
In new releases of Adobe Illustrator, it's now possible to move gradient swatches into swatch groups.
Previously, we expectedly got an error when trying mySwatchGroup.addSwatch(myGradientSwatch) >>> an Illustrator error occurred: 561402708 ('TSv!')
What's happening now...Same thing! The user can group gradients in the Illustrator interface, and the scripts are still unaware of this fix
Mac OS. Adobe Illustrator CC 2025 v29.3
4 votes -
Access to recent files via a script
Once upon a time, app.recentFiles returned an array of recently used files.
It would be nice to have that feature back4 votes -
Script cannot detect that app.openCloudDocument failed
en
When an error occurs during the execution of openCloudDocument, Illustrator forces a message in a dialog.
The message is something like this. Not sure what it would be displayed in English.
Cannot open file.
The current account does not have access permission to this file. Contact the owner for more details.
The message cannot be circumvented by enclosing it in a “try” syntax, nor can the error be caught in a “catch” statement. In other words, this message may stop the batch process.
The ideal behavior is to be able to catch an error…
4 votes
- Don't see your idea?