macOS 10.13/10.14+Keynote 9.0.1で指定のIDのテキストフレームを縦書き化するAppleScriptです。
Keynote 9でサポートされた文字の縦書き表示。しかし、肝心のAppleScriptでこれを操作する機能が備わっていなかったので、強引にGUI側から操作して縦書き化させてみました。
実行前に「システム環境設定」の「セキュリティとプライバシー」>「アクセシビリティ」にて、スクリプトエディタあるいはScript Debuggerに対してアクセシビリティ機能(「下のアプリケーションにコンピュータの制御を許可」)を許可しておく必要があります。
また、macOS 10.14上にてはじめてScript DebuggerからKeynoteを動かそうとした場合には、「オートメーション」項目でScript Debuggerの操作を許可しておく必要があります。
▲Before
▲After
▲2D Bin PackingのAppleScriptに、本ルーチンを組み込んで想定矩形座標内に文字を詰め込んでみた。日本語はフレームの回転ではなく縦書き表示できたほうが可読性が上がるかも
▲Keynote上でオブジェクトを選択状態にしてテキストフレームの「枠」を表示させてみるとけっこう詰まっていることがわかる
AppleScript名:Keynoteで指定IDのテキストフレームを縦書き化 |
set tmpID to 1
selectTextItemID(tmpID) of me set aRes to makeTextFrameVertival(tmpID, true) of me on makeTextFrameVertival(anID, aFlag) tell application "System Events" activate set aGSflag to UI elements enabled if aGSflag = false then return false end tell activate application "Keynote" tell application "System Events" tell process "Keynote" tell radio button "フォーマット" of radio group 1 of toolbar 1 of window 1 –*Localized* set aVal to value if aVal = 0 then click end if end tell tell radio button "テキスト" of radio group 1 of window 1 –*Localized* click end tell tell checkbox "縦書きテキスト" of scroll area 1 of window 1 –*Localized* set aVal to value if (aVal = 0) and (aFlag = true) then click else if (aVal = 1) and (aFlag = false) then click end if end tell end tell end tell return true end makeTextFrameVertival on selectTextItemID(anID) tell application "Keynote" tell front document tell current slide set anObj to a reference to text item anID properties of anObj end tell end tell end tell end selectTextItemID |
More from my site
(Visited 213 times, 1 visits today)