Pagesでオープン中の最前面の書類から、最大文字サイズのテキスト(文字ボックス/本文テキスト)を抽出するAppleScriptです。
Pagesでは、本文にテキストをベタ打ちしつつ、文字スタイルを適用していくワープロ的な作り方と、ボックスでテキストアイテムを配置して文字を入れていくDTP的な(?)作り方の2通りがあります(混在できます)。
両方取得して文字サイズが大きい方を採用します。
AppleScript名:テキストアイテムか本文テキストから最大文字サイズのテキストを返す.scptd |
— – Created by: Takaaki Naganoya – Created on: 2020/06/12 — – Copyright © 2020 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions property NSMutableArray : a reference to current application’s NSMutableArray set aRes to getMaxTextFromTextItemsAndBodText() of me –> {"テクノロジーが色彩(カラー)を決定している例は?"}–本文縦組みテキスト –> {"AppleScript"}–テキストボックス組みテキスト on getMaxTextFromTextItemsAndBodText() set aRes to getMaxTextFromTextItems() of me set bRes to getMaxTextFromBodyText() of me set aMax to maxSize of aRes set bMax to maxSize of bRes if aMax > bMax then return maxTextList of aRes else return maxTextList of bRes end if end getMaxTextFromTextItemsAndBodText on getMaxTextFromTextItems() tell application "Pages" tell front document set tmpList to every text item if length of tmpList > 0 then set szList to size of object text of every text item set aMaxPoint to calcMax(szList) of me –最大の文字サイズを取得 –文字サイズが最大のテキストアイテムを抽出 set resList to object text of every text item whose size of object text is aMaxPoint else set aMaxPoint to 0 set resList to {} end if return {maxSize:aMaxPoint, maxTextList:resList} end tell end tell end getMaxTextFromTextItems –本文テキストから最大文字サイズのテキストを取得する on getMaxTextFromBodyText() tell application "Pages" tell front document tell body text set tmpP to every paragraph if tmpP = {""} then return {maxSize:0, maxTextList:{}} end if –フォントサイズのみパラグラフ単位に取得 set szList to size of every paragraph set aMaxPoint to calcMax(szList) of me –最大の文字サイズを取得 –文字サイズが最大のパラグラフを抽出 set resList to every paragraph whose size is aMaxPoint –> {"テクノロジーが色彩(カラー)を決定している例は?"} return {maxSize:aMaxPoint, maxTextList:resList} end tell end tell end tell end getMaxTextFromBodyText on calcMax(aList as list) set nArray to (NSMutableArray’s arrayWithArray:aList) set maxRes to (nArray’s valueForKeyPath:"@max.self")’s doubleValue() return maxRes end calcMax |
More from my site
(Visited 59 times, 1 visits today)