Illustrator (Desktop) SDK/Scripting Issues
131 results found
-
Unicode support for tool names & toolips
The AIAddToolData struct is still using char* for the title & tooltip members. I know it does some kind of localization, but that's really archaic when the rest of the SDK uses ai::unicode.
4 votes -
Update Samples to not require MFC
The Samples included with the SDK cannot currently be compiled on Windows unless MFC was installed as part of the Visual Studio installation procedure.
Making the Samples requires two small things:
- Add the following include below the SDKDef.h include in VersionInfo.rc
include "verrsrc.h"
- Change the "afxres.h" include in the .rc of all plugins to instead include "winuser.h"
Doing so will make MFC optional, and not required; ultimately, including 'afxres.h' is including the two headers outlined above so it's just introducing an unnecessary middle man who can be safely bypassed.
4 votes -
Applescript export PNG in 300 DPI
Using applescript, we can't export artwork in 300 DPI in format PNG.
in the last version, the export PSD is not as beautiful as the export menu.
Why ?4 votes -
Bug: Before and After Export Notifiers Do Not Fire When Export As is Used From the Menu
The below menu command notifiers do not fire when the export option is used:
kAIExportCommandPreNotifierStr "AI Command Notifier: Before Export"
kAIExportCommandPostNotifierStr "AI Command Notifier: After Export"Other menu notifiers do fire, such as "AI Command Notifier: Before Save As" and "AI Command Notifier: After Save As"
4 votes -
Updating annotation drawings as bezier control points are dragged
Hello,
I'm working on an Illustrator plugin to help visualise bezier curve continuity. Screenshot: https://i.imgur.com/rxgqDJL.png
I wanted to ask if there's a way to update artwork annotations as the user drags a bezier path control point? Currently my plugin only updates the annotation drawing once you let go.
I assume this is possible because Illustrator seems to be able to do it for showing useful information such as alignment as you edit curves.
Some extra technical details in case it helps... :)
I started this project using the Annotator example project from the sdk as a starter.
In my plugin…
4 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…
3 votes -
[Scripting API] Give access to a SymbolItem's "anchor" and matrix
It would be great to have access to a SymbolItem's "anchor" and matrix (as read/write properties). Setting a new anchor [x,y] would move the anchor (and the SymbolItem) to that point, and setting a new matrix would replace the SymbolItem's existing matrix.
3 votes -
Duplicating a group with a script does not change/update groupItems.length
When you duplicate a group via script (check the video and screenshots) activeDocument.groupItems.length is not reflecting that. It stays the same. app.redraw() is not helping. Only when you set the new group to .selected = true you can force an update. But that slows down everything when you have a lot of groups.
Video: https://drive.google.com/file/d/1dd0PyBRDBciNnUgnhGLV7Hf40rrG_vSb/view
Steps to Reproduce:
All with script!
1. Create a group (put something in that group)
2. Alert the activeDocument.groupItems.length (it's now 1)
2. Duplicate the group.
3. Alert the activeDocument.groupItems.length: it stays the same (1 instead of 2)
Please take a look at the script…3 votes -
DocumentRasterResolution - How do we set HighResolution? Please give an example of how to set and how to read document resolution. Thanks
DocumentRasterResolution - How do we set HighResolution? Please give an example of how to set and how to read document resolution. Thanks.
Example:
DocumentRasterResolution.HighResolution; //Does nothing So how to do? Why is this not an app.documents.add() function or method to begin with? Why is the app.document.add so limited in parameters? I would think there would be a huge parameter list but there is not.3 votes -
DocumentArtboardLayout under app.documents.add is broken
var aDoc = app.documents.add(DocumentColorSpace.CMYK, 612.0, 792.0, 3, DocumentArtboardLayout.GridByCol, 40.0, 1);
Running the above script.jsx GridByCol broken. I get two rows, should be a single column. Changed GridByCol to GridByRows and also outputs 2 rows of artboards. DocumentArtboardLayout is broken.
3 votes -
[Typo] View rotateAngle property in omv.xml
For several years, the same incorrect information about the document rotation property has been repeated in the omv.xml (Object Model Viewer) file in folder "Scripting Dictionaries CC". Checked in СС 2023, 2024, 2025
/Library/Application Support/Adobe/Scripting Dictionaries CC/Illustrator [vers.]/omv.xml
At the same time, the PDF documentation "Adobe Illustrator Scripting Reference: JavaScript", the property name is correct.
Expected Property Name:
rotateAngleActual Property Name in omv.xml:
rotate<classdef name="View" dynamic="true">
....
<property name="rotate">
<shortdesc>The rotation angle of this view.</shortdesc>
<datatype>
<type>number</type>
</datatype>
</property>
...
</classdef>3 votes -
Live Effect process loses spot color info in single spot color Raster
In a Live Effect, a kRasterArt element, which is a raster of a single spot color, loses color information between kSelectorAIEditLiveEffectParameters and kSelectorAIGoLiveEffect.
This especially becomes a problem when removing the Effect from the element.
Reproducible steps:
1. Rasterize an element with a spot fill, no stroke
2. Apply 'Outer Glow' Effect
3. Save, close, and reopen the document
4. Remove 'Outer Glow' EffectI've copied the TwirlFilter sample code from the 2024 SDK, called it TestFilter and simplified the code. It has only been built and run on macOS.
It demonstrates the color loss between these 2 selectors through…3 votes -
Bug: JavaScript unary operators "+" and "-" do not function as documented for UnitValue objects
According to the Illustrator ExtendScript documentation, applying the unary operators "+" or "-" to a UnitValue object should respectively produce the numeric value or the negated numeric value of the UnitValue. However, they instead respectively produce the UnitValue unmodified or the UnitValue with its value negated.
Either the documentation or the behaviour should be updated to reflect the other.
I observed this behaviour in Illustrator 28.5 on Mac OS Sonoma.
The behaviour may be quickly tested with the following script:
var uv = new UnitValue(2, "px");
alert(
"Results:" +
"\nUnitValue unmodified: \"" + uv + "\" (" + (typeof uv)…3 votesNihiltres, UnitValue is an object with properties
baseUnit - type of UnitValue data type
type - type of String data type
value - type of Numeric data type.
When using unary operator on object, the underlying value property of the object is modified.
Example:
var uv = new UnitValue(2, "px");
"-uv" will result in uv.value modified from "2" to "-2" and stays as Numeric data type.
Any unary operator on object as whole will return the object itself.
Alternatively you can achieve the result you expected by directly manipulating the value instead of the object
var uv = new UnitValue(2, "px");
"-uv.value" this will return the Numeric data type with negating the value, in this case it will convert the number 2 to -2
I do see it is working as documented, I would like to hear your view with the above information.
Unary operators (~, !,…
-
Vertically alignChildren in ScriptUI does not align properly
In the ScriptUI documentation, there is an alignChildren attribute: "Tells the layout manager how to align children of this container that are not of the same size in a column or row". The issue of vertical alignment of UI objects in the scripts dialog box persists from version to version of Illustrator.
As we can see in the image, only the top alignment seems to be correct. The center alignment is shifted up, and the bottom alignment does not reach the bottom. At the same time, native UI dialogs contain the correct alignment. Thus script interfaces always look less professional.
…
3 votes -
check a keyboard key state in SDK
I often need a way to check if a specific keyboard key is currently pressed. For example, while a tool is being dragged, allow users to press the 'W' or 'E' key as they would a modifier like Shift or Alt/Option.
3 votes -
Please update "Planet X" in backend to "Live Paint"
Actions read from API are named "Planet X".
In AI menu, they are "Live Paint"Additionally, there is one typo: "Marge Planet X" = "Merge Live Paint"
When Loupedeck reads the actions from API, they appear with outdated names in Loupedeck UI.
3 votes -
Update the VSCode ExtendScript Debugger
This is an essential tool.
Too many issues to mention here - and that's just on a PC. It doesn't work at all on ARMx64
The community needs this kept up to date!
3 votes -
Illustrator 25.2 missing scriptability Info.plist entry
Illustrator's Info.plist file no longer has an entry for
NSAppleScriptEnabled
. That means normal attempts to open its scripting dictionary fail.3 votes -
Commands from Special characters / Whitespace section gives an error
A simple script:
app.executeMenuCommand('~copyright')
gives an error 1200: 1346458189 ('PARM')3 votes -
Fails to retrieve file creation date | AI 2020, MacOS Catalina
This issue appears only on MacOS Catalina.
Steps to reproduce:
File(file_path).created.getTime()
3 votes
- Don't see your idea?