Skip to content

Illustrator (Desktop) SDK/Scripting Issues

131 results found

  1. 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 votes
    How important is this to you?

    Nihiltres, 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 (~, !,

  2. Document.save() for eps/svg/pdf documents changes them to ai files

    en_US

    Document.save() is a method to save over a document. In keyboard shortcut, it is equivalent to command+S.

    However, when ExtendScript's save() is executed on a document that preserves Illustrator editing capabilities such as eps/svg/pdf, it will be saved as an ai document instead of being overwritten as its original format.

    For example, when save() is executed for the document 1.eps, the file 1.ai will be created in the folder where the eps is placed. If the file 1.ai already exists, it will be overwritten with the contents of 1.eps and the original 1.ai will be lost.

    Environment

    • macOS…
    15 votes
    How important is this to you?
  3. 2 votes
    How important is this to you?
  4. Executing the script throws the Error 1242: Illegal argument

    平素は誠にお世話になっておりますAdobe製品の機能評価をしております
    Adobe製品の機能評価をしておりますが対応策があれば教えていただければ幸いです
    [Windows11 Pro 22H2] Adobe Illustrator27.9で次のJavaScriptを実行するとError 1242:Illegal argument -argument 1のエラーとなりましたのでバグとして報告いたします

    var textValue = null;
    var selectedFont = null;
    // アクティブなドキュメントを取得
    var doc = app.activeDocument;
    // インストールされている書体のリストを取得する関数
    function getInstalledFonts() {
    var fontList = [];
    var fonts = app.textFonts;
    for (var i = 0; i < fonts.length; i++) {
    fontList.push(fonts[i].name);
    }
    return fontList;
    }
    var fontAll = getInstalledFonts();
    // ダイアログボックスの作成
    var dialog = new Window("dialog", "縦組テキストを配置", undefined, {resizeable: true});
    dialog.orientation = "column";
    // ダイアログボックスに「テキスト入力エリア」を追加
    var textArea = dialog.add("edittext", undefined, "", {multiline:true, scrolling:true});
    textArea.preferredSize = [500, 200]; // 幅500、高さ200
    // ダイアログボックスに「書体の選択」の追加
    var fontDropdown = dialog.add("dropdownlist", undefined, fontAll, {scrolling:true}); // インストールされている書体のリストを取得
    fontDropdown.selection =…

    1 vote
    How important is this to you?
  5. 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
    0 comments  ·  C++ SDK  ·  Admin →
    How important is this to you?
  6. 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-pleas

    7 votes
    How important is this to you?
  7. 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.

    7 votes
    2 comments  ·  C++ SDK  ·  Admin →
    How important is this to you?
  8. 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
    How important is this to you?
  9. 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
    0 comments  ·  C++ SDK  ·  Admin →
    How important is this to you?
  10. Change Adobe PDF settings without creating a PDF file

    Does anyone know if there is a way to change Adobe PDF settings without saving the current file into a PDF file? More specifically, is there a way to turn on/off the "Preserve Illustrator Editing Capabilities" option using C++ SDK?

    1 vote
    0 comments  ·  C++ SDK  ·  Admin →
    How important is this to you?
  11. weird unicode file names in CEP panel scripts

    Files with unicode names should report correctly in the documentAfterActivate and documentAfterSave events.
    I just noticed that there are not only strange sequences of escaped and unescaped characters, but they can even differt between these two events.
    A € sign produces 0x80 in the activate event and %e2 0x82 %ac in the save event

    1 vote
    0 comments  ·  CEP  ·  Admin →
    How important is this to you?
  12. Accessing Opacity Mask is impossible with scripting

    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…

    18 votes
    How important is this to you?
  13. [SDK Feature Request] Annotator option to draw selection annotation last.

    There is no option to draw the selection annotation last. Filled shapes and image annotations always block the selection annotation. See images for what i mean.

    2 votes
    0 comments  ·  C++ SDK  ·  Admin →
    How important is this to you?
  14. how can i call these functions in AI via script?

    -I would like to open a Multipage PDF with settings set to open "all pages" and "import pages as links".
    If the pdf has only one page import it also as a link (if possible do it)

    • Import an Illustrator *.ai file Multi-layouts by importing them as links across multiple layouts.

    • Set flattener presets:

    • preset name

    • various parameters...

    • Select all (Select / All)

    • Run the command: Object / convert transparency / Previously saved preset / OK

    • I saw among the commands that there is an openOptionsFreeHand could I create a script that opens the freehand files for me?

    How could…

    1 vote
    0 comments  ·  JavaScripting  ·  Admin →
    How important is this to you?
  15. settings raster effects value visible main screen

    I need to view somewhere in the Illustrator interface, the value set in the "raster effects settings" panel.

    Is there a scripted way to implement this?

    I've created actions that set this value to 72ppi / 300ppi so that I can change it when the document becomes heavy and unmanageable (thanks to using only 1 CPU CORE, thanks Adobe ❤).
    The problem is that if I save the file, I will probably save it at 72ppi, but for printing the effects are poor and you have to set them to 300ppi.
    So having the value always visible on the screen,…

    2 votes
    How important is this to you?
  16. exportFile doesn't work with NoUI document

    trying to create a "NoUI" document and export as SVG like this:

    opendoc = app.documents.addDocumentNoUI();
    opendoc.exportFile(file, ExportType.SVG);

    I get the attached error in AI

    I can't think of any other way to export an SVG via script. Obviously there are scripting things that don't work with NoUI documents, but it seems like this one should. Am I doing something wrong?

    2 votes
    How important is this to you?
  17. 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 votes
    How important is this to you?

    An 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.

  18. [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
    How important is this to you?
  19. 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…

    10 votes
    How important is this to you?
  20. AppleScript can't get character properties (ver26.4.1, ver26.5)

    tell character 1
    properties
    end

    ver26.3.1 get properties
    but, ver26.4.1, ver26.5 cant't get properties

    1 vote
    0 comments  ·  AppleScript  ·  Admin →
    How important is this to you?
  • Don't see your idea?

Illustrator (Desktop) SDK/Scripting Issues

Categories

Feedback and Knowledge Base