Illustrator 2022 (26.5.0) listStyle scripting issues
Starting with Illustrator 2022 (26.4.1), the ability to create bulleted and numbered lists has been implemented. Text to which lists are applied can be obtained in ExtendScript or AppleScript by using the listStyle property.
However, normal text that is not bulleted and numbered lists (hereinafter called "normal text") has no listStyle assigned to it, and referencing it causes an error. The following problem occurs.
Issue 1: ExtendScript and AppleScript cannot directly change lists to normal text
Expected state
For example, the following script (ExtendScript) can change a paragraph to normal text.
var doc = app.documents[0] ;
var targetParagraph = doc.selection[0].paragraphs[0] ;
var noListStyle = doc.listStyles.getByName('None') ; // no exists
targetParagraph.listStyle = noListStyle ;
Actual state
Indirectly change a paragraph to normal text by applying a predefined paragraph style, etc.
Issue 2: Cannot get paragraph properties in AppleScript
Steps to reproduce
- Prepare a text frame without lists applied in the document
- With it selected, run the following AppleScript
tell application "Adobe Illustrator"
set target_paragraph to paragraph 1 of (item 1 of (selection of document 1))
properties of target_paragraph -- error
end tell
Expected result
The properties of the target paragraph can be retrieved as record.
{character offset:1, length:11, contents:"Lorem ipsum"...}
Actual result
Exit with error.
error "Adobe Illustrator got an error: Internal error" number 1200
Environment:
- Illustrator 2022 (26.5.0)
- macOS 11.6.8
Illustrator 2022 (26.5.0) の箇条書きをスクリプトで扱うときの問題
Illustrator 2022 (26.4.1)から,箇条書きを作る機能が実装された。箇条書きが適用されたテキストは,ExtendScriptやAppleScriptではその形式をlistStyleプロパティで調べられる。
しかし,箇条書きでない通常のテキスト(以後通常テキストと呼ぶ)にlistStyleが割り当てられておらず,参照するとエラーが起こる。そして次のような問題を呼ぶ。
Issue 1: ExtendScriptやAppleScriptでは,直接箇条書きを通常テキストに変更できない
期待する状態
例えば次のようなスクリプト(ExtendScript)で通常テキストに変更できる。
var doc = app.documents[0] ;
var targetParagraph = doc.selection[0].paragraphs[0] ;
var noListStyle = doc.listStyles.getByName('None') ; // no exists
targetParagraph.listStyle = noListStyle ;
実際の状態
事前に定義した段落スタイルを適用するなどして,間接的に通常テキストに変更する。
Issue 2: AppleScriptで段落のpropertiesを取得できない
再現手順
- 書類に箇条書きが適用されていないテキストフレームを用意する
- それを選択した状態で,次のAppleScriptを実行する
tell application "Adobe Illustrator"
set target_paragraph to paragraph 1 of (item 1 of (selection of document 1))
properties of target_paragraph -- error
end tell
期待する結果
対象の段落のプロパティがrecordとして取得できる。
{character offset:1, length:11, contents:"Lorem ipsum"...}
実際の結果
エラーで終了する。
error "Adobe Illustratorでエラーが起きました: Internal error" number 1200
環境:
- Illustrator 2022 (26.5.0)
- macOS 11.6.8