Illustrator (Desktop) Bugs
When reporting a bug, please provide a detailed description with the following:
- Details of your operating system
- The version of Adobe Illustrator (desktop)
- The steps you were taking when you experienced the issues
- Your expected result and the actual result
- Upload your Illustrator file or a video (screen recording or gif, this helps us most to reproduce the issue and resolve it)
83 results found
-
Illustrator JavaScript Scripting Reference.pdf Pages 46 (Documents Section)
"ArtBoard" or "artBoard" ???? There must be consistency in capitalization
[, numArtBoards]
[, artboardLayout]
[, artboardSpacing]
[, artboardRowsOrCols])1 vote -
[ExtendScript] PageItem.resize doesn't scale Live Paint strokes
While scaling Live Paint object correctly scales strokes if done via the UI, it fails to scale strokes if done via the PageItem.resize method in the scripting API.
MacOS 15.0.1 Illustrator 29.0.
Steps to reproduce:
1. New document
2. Create a Live Paint object including stroked areas.
3. Select the Live Paint object.
4. Run the following script:var item = app.activeDocument.selection[0]; item.resize(200, 200, true, true, true, true);
Expected result is that the Live Paint object's stroke widths would double. However they remain the same as before.
See this user post.
4 votes -
[ExtendScript] Cannot set Document.rulerUnits
There is no way via scripting to set a document's rulerUnits (pts, mm, inch, etc) because the property Document.rulerUnits is—erroneously, surely—read only.
If Document.rulerUnits was writable, we would simply do this:
var doc = app.activeDocument; doc.rulerUnits = RulerUnits.MILLIMETERS;
This is important because there is literally no way to set this via script, except to create a new document.
3 votes -
[ExtendScript] TextFrame cannot be selected after creating
In script, after creating a new TextFrame it cannot be selected the first time.
(function () { if (0 === app.documents.length) return alert('Please open a document and try again.'); var doc = app.activeDocument, results = ['Results:']; // experiment 1 var tf1 = doc.textFrames.add(); tf1.contents = '1. created, selected:'; tf1.selected = true; results.push(tf1.contents + ' ' + (tf1.selected ? 'PASS' : 'FAIL')); // experiment 2 var tf2 = doc.textFrames.add(); tf2.contents = '2. created, selected twice:'; tf2.selected = true; tf2.selected = true; results.push(tf2.contents + ' ' + (tf2.selected ? 'PASS' : 'FAIL')); alert(results.join('\n')); })();
Expected results: both tests would pass.
Actual results:…6 votes -
[ExtendScript] Cannot change `underline` value of some text ranges.
We cannot successfully set characterAttribute.underline to
false
in some textRanges.(MacOS 15.0 Adobe Illustrator 28.7.1)
Steps to reproduce:
1. New document
2. Make a text frame with contents "ab"
3. Set the "b" to a different fontStyle, eg. "italic"
4. Run the below script, and check the console output.Expected Result: all tests PASSED, meaning that the underline can be set to true and then to false successfully.
Actual result, test B on the "b" fails.
Script:
```
(function () {
…var doc = app.activeDocument, tf = doc.textFrames[0]; var results = ['Results:']; tf.textRanges[0].characterAttributes.underline = true results.push('textRanges[0] test A: ' +
4 votes -
Illustrator Version 28.7.1 - xmpfile does not have a constructor ( using Extendscript with Illustrator )
OS: macOS Sonoma 14.6.1 (23G93)
Illustrator version 28.7.1Prior to this update I have been able through extendscript to read XMP data from a file. After the update I get an error:
"XMPfile does not have a constructor".
on the line of code:
var xmpf = new XMPFile(.........Reverting to the prior version resolves the issue.
2 votesWe have fixed this issue in 29.0 and 28.7.2 releases.
-
XMPMeta is not defined on ILST 28.7.1 on MacOS #515
As of ILST 28.7.1 on MacOS, XMPMeta has stopped working. However, it works fine on:
- ILST 28.7.1 on Windows
- ILST 28.6 on MacOsThe issue also exists on ILST (Beta) 29.1 on MacOs.
Example code:
```
if (!ExternalObject.AdobeXMPScript) {
ExternalObject.AdobeXMPScript = new ExternalObject('lib:AdobeXMPScript');
}const xmp = new XMPMeta(app.activeDocument.XMPString); // throws XMPMeta does not have a constructor
```16 votesWe have fixed this issue in 29.0 and 28.7.2 releases.
-
Bug: exporting SVG's via exportFile(fileObjSingle, ExportType.SVG, svgOptions). has completely changed since 28.4
(macOS & Windows, latest versions) Beginning with Illustrator 28.4, SVG files exported via Javascript are in a very different format.
The following examples are exported with:
doc.exportFile(fileObjSingle, ExportType.SVG, svgOptions);
The SVG option for the format of the SVG is STYLEELEMENTS.
See attached captures for the differences.
There are many many changes:
- the style definitions are handled differently
- ID's now strip out characters like / or < instead of replacing them with entities
- the original names are included via data-name tags
- the comment from the 2nd line is now gone
- clipping paths are handled differently
I have built a complex program…
5 votes -
Unable to catch error that occurs when exporting empty artboard to PSD
en_US
When exporting Illustrator artboards to PSD using ExtendScript's exportFile, if the artboard does not contain valid PageItems, an error occurs and two alerts are displayed.
![error1.png](error1.png)
![error2.png](error2.png)The problem is that this error cannot be caught by a try syntax. It will stop the batch process with alerts.
Also, if
app.userInteractionLevel = UserInteractionLevel.DONTDISPLAYALERTS
is used to prevent the alert, it is not possible to provide detailed information to the script user as to why the artboard was not exported.Ideally, the design should be changed so that the error can be caught, or even an empty artboard can be…
12 votes -
[ExtendScript] Document.artboards wrongly returns artboards of active document
- MacOS 14.2.1
- Adobe Illustrator 28.0
- To reproduce:
(a) open two documents with differently named artboards
(b) run this script
for (var i = 0; i < app.documents.length; i++) { for (var j = 0; j < app.documents[i].artboards.length; j++) { $.write(app.documents[i].name + ' artboard ' + j + ': '); $.writeln(app.documents[i].artboards[j].name); } }
Expected result:
demo1.ai artboard 0: ALPHA
demo1.ai artboard 1: BRAVO
demo2.ai artboard 0: CHARLIE
demo2.ai artboard 1: DELTAActual result:
demo1.ai artboard 0: ALPHA
demo1.ai artboard 1: BRAVO
demo2.ai artboard 0: ALPHA
demo2.ai artboard 1: BRAVONote that Document "demo1.ai" is active. If I make demo2.ai active, I…
10 votes -
AI 28.0 preferences corrupted by 28.1 with some 3rd party plugins
When updating from Illustrator 28.0 to 28.1, some preference files may be corrupted if AI is running certain 3rd party plugins. These include any written with Hot Door's CORE and incorporating a WebView widget to display a web page, but I have received reports of this behavior with some SDK plugins as well.
The problem it creates is that new files are not added to the File > Open Recent Files list, and any change to a different workspace is not saved.
For my macOS Ventura with AI 28.1, deleting these preference files solved the problem: Plug-in Cache and plugincache.bin.
…
2 votes -
Error with app.executeMenuCommand('Adobe Stroke Palette')
en_US
In the Japanese version of Adobe Illustrator, when I execute a script that selects the Window > Stroke menu, an error occurs. It executes correctly in the English (North America) version.
![mrap.png](mrap.png)
Script to Execute
try { app.executeMenuCommand('Adobe Stroke Palette') ; } catch(e) { alert(e) ; }
Actual Result
The following error occurs.
エラー: an Illustrator error occurred: 1346458189 ('MRAP')
Expected Result
Stroke panel is displayed.
Steps to Reproduce
- Uninstall any non-Japanese version of Adobe Illustrator that is installed
- Launch Creative Cloud.app and set "Default install language" to Japanese in the Preferences
- Install and launch Adobe Illustrator
- Execute the…
10 votes -
The ignoreWhite property of tracingOptions does not work
Illustrator v 28.0 - Image Trace option check box for Ignore White has been replaced with Ignore Color and an eyedropper option. While I think this is a good addition for manual use, it appears to have somewhat broken the ability to use image trace properly in javascript as the change has made the original "tracingOptions.ignoreWhite = true" no longer work. I suspect there is now an additional option/variable responsible for the color to be ignored's selection but it doesnt appear to be refferenced in any of the current documentation. I've tried adding the method for Abutting (also undocumented) as…
8 votes -
app.preferences.setIntegerPreference() does not work
app.preferences.setIntegerPreference("rulerType", 0) changes the selection in the GUI but doesn't actually apply the change to the document.
I still have to go into the GUI preferences, change the units to something else, then back to inches and close for the change to actually apply to the current document.
3 votes -
Justification attribute to center text in Illustrator API
Why do Justification to aiCenter and Align Center produce different results?
Given myLabel string with at least one line break character in it, when I use JavaScript code like this...Set myFrame = textGroup.TextFrames.Add
myFrame.TextRange.CharacterAttributes.Size = defaultFontSize
myFrame.TextRange.CharacterAttributes.TextFont = appRef.TextFonts.Item(nameOfFont)
myFrame.Contents = myLabel
myFrame.Paragraphs(1).ParagraphAttributes.Justification = 2 ' aiCenter
myFrame.Position = Array(myXPos, myYPos)...the lines of text are not centered with respect to each other.
Is there a way, using the JavaScript API, to achieve text-centering of multiple lines in a text frame?
If not, I'd like to request a new paragraph attribute to the JavaScript API to accomplish this function.…2 votes -
[ExtendScript] RasterItem.colorize() does not accept SpotColor via script, but does via UI.
MacOS 13.3.1, Adobe Illustrator 27.4.1
The colorize() method of RasterItem doesn't accept a SpotColor via scripting, but can do via the UI, so there is no technical reason I can see why this it the case. It may be a simple bug. Also there is a workaround by using defaultFillColor which does apply a SpotColor to a RasterItem.
Steps to reproduce:
1. Start with document containing a bitmap (colourable) RasterItem and a SpotColor swatch.
2. script: (adjust the swatch index to match your SpotColor swatch index)app.activeDocument.rasterItems[0].colorize(app.activeDocument.swatches[4].color);
Expected result: colorizes the RasterItem.
Actual result: does nothing.2 votes -
[ExtendScript] Incorrect paragraph count when linefeeds are used.
MacOS 13.3.1, Adobe Illustrator 27.4.1
To see the issue, run this script:
```
(function () {var doc = app.documents.add(); var tf1 = doc.textFrames.add(); tf1.position = [100, 100]; tf1.contents = 'Paragraph one\u000DParagraph two'; var tf2 = doc.textFrames.add(); tf2.position = [200, 100]; tf2.contents = 'Paragraph one\u0003still paragraph one'; alert('Paragraph counts\n2 paragraphs: ' + tf1.paragraphs.length + '\n1 paragraphs with forced line break:\n ' + tf2.paragraphs.length);
})();
```I expect the left text frame to have 2 paragraphs and the right text frame to have 1 paragraph, but the right text frame is incorrectly shown to have 2 paragraphs.
This discussion revolves around…
3 votes -
[ExtendScript] Line feed \u000A character assigned to text contents is converted to carriage return
MacOS 13.3.1, Adobe Illustrator 27.4.1
Also reported on Windows same version of Illustrator.Steps to reproduce.
To see problem, run this script
```
(function () {var doc = app.documents.add(); var tf1 = doc.textFrames.add(); tf1.position = [100, 100]; tf1.contents = 'Break\u000Ame.'; alert('Linefeed (10)\n charCode = ' + tf1.contents.charCodeAt(5)); var tf2 = doc.textFrames.add(); tf2.position = [200, 100]; tf2.contents = 'Break\u0003me.'; alert('End-of-text (3)\n charCode = ' + tf2.contents.charCodeAt(5));
})();
```
I would expect the text on the left to have a line feed (u+000A) character, but it is converted to a carriage return (u+000D).
The text on the right is a workaround,…4 votes -
Incorrect word count via script
At some point (I think v27) Illustrator has changed its word counting/division algorithm.
So, where previously the results were sensible:
"This.Was.Four.Words" — word count: 4
"This.Is.3.Words" — word count: 4
"I.WF05f.07.AB.000" — word count: 5
"I.WF05f.AB.07.000" — word count: 5In version 27.4 the results are now confused:
"This.Was.Four.Words" — word count: 1
"This.Is.3.Words" — word count: 3
"I.WF05f.07.AB.000" — word count: 4
"I.WF05f.AB.07.000" — word count: 2For a discussion on the topic, and a testing script, see this thread.
Note: maybe this bug was introduced while fixing this bug.
6 votes -
getSystemPath using CSInterface throws URI Malformed error
I was trying to get the my documents folder path of the system using CSInterface getSystemPath function. It works in most of the cases. But it throws URI malformed error (refer the screenshot below), if the path of the documents folder contain characters from languages other than English.
I debugged the CSInterface.js file at line 521. And I found that the below piece of code returns the path of the folder without encoding the characters from languages other than English.
window.adobe_cep.getSystemPath(pathType)
IN MY CASE:
Path of documents folder: "C:\Users\sanjay\OneDrive - Élégante\Documents".
window.adobe_cep.getSystemPath(pathType)
// Returned value -…1 vote
- Don't see your idea?