Illustrator (Desktop) SDK/Scripting Issues
133 results found
-
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 -
Email newsletter for third-party developers
Could Adobe please offer an email newsletter updating third-party plugin developers of changes that may affect or even break their plugins? It's helpful that there is a "known issues" web page, which may or may not identify problems known only to Adobe, but rather than every small developer checking this page every day, perhaps someone at Adobe could send one message to all subscribed developers. Too often, changes quietly happen and developers must scramble to help each other.
One recent example is AI 28.1 corrupting some 28.0 preference files, and a major example would be when Mac AI 25.1 required…
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.
-
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 -
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
5 votes -
[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 -
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 -
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 -
When art is renamed, no notifier is sent
In CC2019, at least two notifiers should result from renaming art: kAIArtPropertiesChangedNotifier & kAIArtObjectsChangedNotifier, but neither is sent.
5 votes -
Align/Distribute support for AppleScript
It would be great if we could have support for Align/Distribute in AppleScript. I believe Illustrator's UI functionality in this area is the same as InDesign, so using the exact same terminology would be excellent.
A little nit—AppleScript is one word, not two, so that needs to be changed in the "Category" choices in this forum. Thanks!
5 votes -
[BUG] Extend script via Javascript document.importFile broken between CC2017 and CC2018
Currently this is producing an error in CC2018 Illustrator on Mac
var newFile = new File('/tmp/sample.rtf');
app.activeDocument.importFile(newFile, false);Works correctly in CC2017.
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 -
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 -
Variable font support in scripts
There doesn't seem to be any way to use variable fonts in scripts. There is an undocumented property TextFont.axisVector, but it is read-only. So there is no way to adjust the axes of a variable font via script, even though Illustrator has supported variable fonts for many years now.
Relevant thread:
https://community.adobe.com/t5/illustrator-discussions/scripting-variable-fonts-in-illustrator/td-p/98345144 votes -
Join command is unavailable when run from an action via a script
We have an action that works, when launched form the Actions panel.
Operations are simple:
1. Copy
2. Deselect All
3. Paste in Front
4. Join
5. Join
It is designed to create a new closed shape from two segments from different shapes.However, when we call this exact action from a script with a app.doScript, it doesn’t work, an error message 'The object "Join" is not currently available' is displayed.
Please see the video.
4 votes
- Don't see your idea?