Menu

Skip to content
AppleScriptの穴
  • Home
  • Products
  • Books
  • Docs
  • Events
  • Forum
  • About This Blog
  • License
  • 仕事依頼

AppleScriptの穴

Useful & Practical AppleScript archive. Click '★Click Here to Open This Script' Link to download each AppleScript

月: 2023年7月

新発売:Keynote Scripting Book with AppleScript

Posted on 7月 29 by Takaaki Naganoya

Piymaru Softwareによる電子書籍の82冊目、「Keynote Scripting Book with AppleScript」を発売しました。PDF 434ページ+サンプルScript Zipアーカイブで構成されています。macOS標準装備のScript Menuに入れてKeynoteをコントロールするメニューScript集も添付しています。

→ 販売ページ



初級、中級、上級のScripting解説内容に加え、大量かつ強力なAppleScriptサンプルを掲載しています。これは、実際に筆者が自分のマシンにインストールして使っているものと同じものです。

実用編

 付録Script Menuスクリプトのインストール
 Script Menuスクリプトのインストール①
 Script Menuスクリプトのインストール②

TOCつきでPDF書き出し
 最前面の書類をTOCつきPDF出力①
 最前面の書類をTOCつきPDF出力②
 最前面の書類をTOCつきPDF出力③
 すべてデスクトップ上にPDF出力

クリップボードに入れたものを処理
 指定色でモノクロ化してクリップボードへ
 赤でモノクロ化してクリップボードへ
 水色でモノクロ化してクリップボードへ
 グリーンでモノクロ化してクリップボードへ
 マゼンタでモノクロ化してクリップボードへ

自動スライドめくり
 冒頭から末尾まで自動スライドめくり

表を処理
 表オブジェクトの重なり合い(2つ以上対応)を検出
 AppleScript Recordから表を作成
 選択中のセルの文字列長さを一覧表で表示
 全スライドの表で行番号入り表の連番修正
 現在のスライド上にある選択中の表のカラム幅を自動調整
 現在のスライド上にあるすべての表のカラム幅を自動調整
 選択中のページのオリジナル表のセル幅に以降の表のセル幅を統一
 選択中のページの表1のセル幅に以降の表のセル幅を統一
 現在のスライド上にあるすべての表のカラム幅を自動調整
 マル付き数字のインクリメント(+1)
 マル付き数字のデクリメント(ー1)
 マル付き数字のリナンバー

現在のスライドからテキストアイテムを色で選択
 x色系のみ選択

選択中の最前面の書類に対する処理
 連続する同一タイトルに子番号を振る
 スライド末尾にQRコードを追加

選択中の画像へのぼかしフィルタ処理
 選択中の画像にぼかし処理

選択中の各種オブジェクトへの処理
 オブジェクトの重なり合い(2つペア)を検出してグループ化
 テキストを座標値でソートしてまとめてクリップボードへ
 横幅を均等に変更
 数える
 選択中のオブジェクトのうちテキストだけ残す

現在表示中のスライドに対する処理
 テキストを上から順に連結してクリップボードに転送
 指定した文字で囲まれたキーワードの色を置換する
 PDFに書き出してオープン

選択中のテキストアイテムの処理
 AppleScriptとみなして、構文確認してスタイル付きテキストとして書き戻す
 AppleScriptとみなして、構文確認してスタイル付きテキストとして書き戻す(結果つき)
 それぞれ個別のAS書類として保存する
 まとめて1つのAS書類として保存する
 テキストアイテム中のURLにリンクを張って
 HTMLタグを外す
 文字の実際の幅でリサイズ
 文字の実際の幅と高さでリサイズ

選択中のスライドの処理
 すべての表の文字色を黒にする
 タイトルをまとめてクリップボードに入れる
 現在のスライド以降の同じスライドレイアウト(同階層の)スライドのタイトルを取得してクリップボードへ
 現在のスライド以降の同じスライドレイアウト(同階層)のスライドのタイトルを取得して改行でまとめてクリップボードへ(末端レベルではないものが対象)
 選択中のスライドのグループアイテムをグループ解除
 選択中のスライド中の各テキストアイテムのうち指定フォントサイズのものの色を変更
 不透明度が100でないオブジェクトの透明度を解除
 選択スライド枚数を数える
 選択中のスライドのshapeのうち最も右上にあるものの座標を右上角に変更

目次作成
 クリップボードへ転送
 Numbersの表を作成

カレンダー作成
 指定月の日曜日はじまりカレンダーを表で作成

オブジェクトの詰め込み
 指定範囲にスライド上のオブジェクトを詰め込み①
 指定範囲にスライド上のオブジェクトを詰め込み②

2ページ間(現在、次)のオブジェクト整頓
オブジェクトの位置をそろえる

没スライドに対する処理
 現在の書類と同じ階層に没スライド入れを作成

Posted in Books news | Leave a comment

指定画像をbase64エンコード文字列に変換→デコード

Posted on 7月 29 by Takaaki Naganoya

指定画像をbase64でエンコードしたのちに、デコードして画像に戻すAppleScriptです。

base64文字列からのデコードだけをテストしたかったのですが、テストのために本来は不要な画像のエンコード部分を付け足しています。

macOS 13.5上で動作確認していますが、OSのバージョンやAppleScriptのバージョンに依存はしないことでしょう。

AppleScript名:指定画像をbase64エンコード文字列に変換→デコード.scptd
—
–  Created by: Takaaki Naganoya
–  Created on: 2023/07/29
—
–  Copyright © 2023 Piyomaru Software, All Rights Reserved
—
property NSData : a reference to current application’s NSData
property NSString : a reference to current application’s NSString
property NSImage : a reference to current application’s NSImage
property NSPNGFileType : a reference to current application’s NSPNGFileType
property NSBitmapImageRep : a reference to current application’s NSBitmapImageRep
property NSUTF8StringEncoding : a reference to current application’s NSUTF8StringEncoding
property NSDataBase64EncodingEndLineWithLineFeed : a reference to current application’s NSDataBase64EncodingEndLineWithLineFeed

use AppleScript version "2.8" — macOS 12 or later
use framework "Foundation"
use scripting additions

set aFile to choose file of type {"public.image"}
set aStr to base64StringFromImageFile(aFile) of me
–> "iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAKuWlDQ1BJQ0MgU……"

set aImage to decodeImageFromBase64String(aStr) of me
–> (NSImage)

–Base64 Decode
on decodeImageFromBase64String(aString)
  set restoreData to NSData’s alloc()’s initWithBase64EncodedString:aString options:0
  
set restoreImage to NSImage’s alloc()’s initWithData:restoreData
  
return restoreImage
end decodeImageFromBase64String

–Base64 Encode
on base64StringFromImageFile(aFile)
  set aPOSIX to POSIX path of aFile
  
set anImage to NSImage’s alloc()’s initWithContentsOfFile:aPOSIX
  
set imageRep to NSBitmapImageRep’s alloc()’s initWithData:(anImage’s TIFFRepresentation())
  
set aPNGdat to imageRep’s representationUsingType:(NSPNGFileType) |properties|:(missing value)
  
set base64Str to aPNGdat’s base64EncodedDataWithOptions:(NSDataBase64EncodingEndLineWithLineFeed)
  
set bStr to (NSString’s alloc()’s initWithData:base64Str encoding:(NSUTF8StringEncoding))
  
return bStr as string –or return NSString (delete as string) for speedy processing
end base64StringFromImageFile

★Click Here to Open This Script 

Posted in Image Text | Tagged 12.0savvy 13.0savvy | Leave a comment

PowerPointで最前面の書類をPDF書き出し

Posted on 7月 29 by Takaaki Naganoya

よくある、Microsoft PowerPointで、オープン中の最前面の書類を指定のパスにPDFで書き出すAppleScriptです。M1 Mac mini+macOS 13.5上で動作するMicrosoft PowerPointバージョン16.75で確認しています。

スクリプトエディタ上で動かしてみましたが、デスクトップ上にファイルを書き込もうとしたときに、初回のみPowerPointがデスクトップフォルダにアクセスしてよいか、OSが確認ダイアログを表示してきました。こういう動作はScriptからのコントロール時には困ります。自動処理を行う前にクリアしておきたい(あらかじめダイアログ表示+認証を済ませておきたい)ところです。


▲PowerPointから書き出したPDF

Microsoft PowerPointのAppleScript用語辞書を確認してみたところ、「export」コマンドが存在しません。情報をいろいろ調べてみたところ「save as PDF」で指定パスにPDFを保存するようです。

さらに、こうした場合にsaveコマンドで指定するファイルパスは、fileオブジェクトで指し示しますが、PowerPointでは少々事情が異なるようでした。fileを指定すると、書き出されません。HFS形式のパスをテキストで指定する必要がありました。どうもこのあたり、ところどころバグめいた実装が散見されます。

Excelへの画像貼り込みScriptのように、POSIX pathでPDF書き出し先を指定してみましたが、こちらはPOSIX pathで指定しても書き出せませんでした。

AppleScript名:最前面の書類をPDF書き出し.scpt
set theOutputPath to ((path to desktop folder) as string) & (do shell script "uuidgen") & ".pdf"

tell application "Microsoft PowerPoint"
  tell active presentation
    save in theOutputPath as save as PDF
    
–保存先のファイルパスを文字列で指定する必要がある
    
–fileオブジェクトで指定すると書き出されない(バグのような挙動)
  end tell
end tell

★Click Here to Open This Script 

Posted in file File path PDF | Tagged 13.0savvy PowerPoint | Leave a comment

電子書籍(PDF)をオンラインストアで販売中!

Google Search

Popular posts

  • macOS 13, Ventura(継続更新)
  • アラートダイアログ上にWebViewで3Dコンテンツを表示(WebGL+three.js)v3
  • UI Browserがgithub上でソース公開され、オープンソースに
  • macOS 13 TTS Voice環境に変更
  • Xcode 14.2でAppleScript App Templateを復活させる
  • 2022年に書いた価値あるAppleScript
  • ChatGPTで文章のベクトル化(Embedding)
  • 新発売:AppleScriptからSiriを呼び出そう!
  • iWork 12.2がリリースされた
  • 従来と異なるmacOS 13の性格?
  • 新発売:CotEditor Scripting Book with AppleScript
  • macOS 13対応アップデート:AppleScript実践的テクニック集(1)GUI Scripting
  • AS関連データの取り扱いを容易にする(はずの)privateDataTypeLib
  • macOS 13でNSNotFoundバグふたたび
  • macOS 12.5.1、11.6.8でFinderのselectionでスクリーンショット画像をopenできない問題
  • ChatGPTでchatに対する応答文を取得
  • 新発売:iWork Scripting Book with AppleScript
  • Finderの隠し命令openVirtualLocationが発見される
  • macOS 13.1アップデートでスクリプトエディタの挙動がようやくまともに
  • あのコン過去ログビューワー(暫定版)

Tags

10.11savvy (1101) 10.12savvy (1242) 10.13savvy (1390) 10.14savvy (586) 10.15savvy (434) 11.0savvy (277) 12.0savvy (185) 13.0savvy (55) CotEditor (60) Finder (47) iTunes (19) Keynote (98) NSAlert (60) NSArray (51) NSBezierPath (18) NSBitmapImageRep (20) NSBundle (20) NSButton (34) NSColor (51) NSDictionary (27) NSFileManager (23) NSFont (18) NSImage (41) NSJSONSerialization (21) NSMutableArray (62) NSMutableDictionary (21) NSPredicate (36) NSRunningApplication (56) NSScreen (30) NSScrollView (22) NSString (117) NSURL (97) NSURLRequest (23) NSUTF8StringEncoding (30) NSView (33) NSWorkspace (20) Numbers (56) Pages (37) Safari (41) Script Editor (20) WKUserContentController (21) WKUserScript (20) WKUserScriptInjectionTimeAtDocumentEnd (18) WKWebView (23) WKWebViewConfiguration (22)

カテゴリー

  • 2D Bin Packing
  • 3D
  • AirDrop
  • AirPlay
  • Animation
  • AppleScript Application on Xcode
  • beta
  • Bluetooth
  • Books
  • boolean
  • bounds
  • Bug
  • Calendar
  • call by reference
  • Clipboard
  • Code Sign
  • Color
  • Custom Class
  • dialog
  • drive
  • exif
  • file
  • File path
  • filter
  • folder
  • Font
  • Font
  • GAME
  • geolocation
  • GUI
  • GUI Scripting
  • Hex
  • History
  • How To
  • iCloud
  • Icon
  • Image
  • Input Method
  • Internet
  • iOS App
  • JavaScript
  • JSON
  • JXA
  • Keychain
  • Keychain
  • Language
  • Library
  • list
  • Locale
  • Machine Learning
  • Map
  • Markdown
  • Menu
  • Metadata
  • MIDI
  • MIME
  • Natural Language Processing
  • Network
  • news
  • Noification
  • Notarization
  • Number
  • Object control
  • OCR
  • OSA
  • PDF
  • Peripheral
  • PRODUCTS
  • QR Code
  • Raw AppleEvent Code
  • Record
  • rectangle
  • recursive call
  • regexp
  • Release
  • Remote Control
  • Require Control-Command-R to run
  • REST API
  • Review
  • RTF
  • Sandbox
  • Screen Saver
  • Script Libraries
  • sdef
  • search
  • Security
  • selection
  • shell script
  • Shortcuts Workflow
  • Sort
  • Sound
  • Spellchecker
  • Spotlight
  • SVG
  • System
  • Tag
  • Telephony
  • Text
  • Text to Speech
  • timezone
  • Tools
  • Update
  • URL
  • UTI
  • Web Contents Control
  • WiFi
  • XML
  • XML-RPC
  • イベント(Event)
  • 未分類

アーカイブ

  • 2023年9月
  • 2023年8月
  • 2023年7月
  • 2023年6月
  • 2023年5月
  • 2023年4月
  • 2023年3月
  • 2023年2月
  • 2023年1月
  • 2022年12月
  • 2022年11月
  • 2022年10月
  • 2022年9月
  • 2022年8月
  • 2022年7月
  • 2022年6月
  • 2022年5月
  • 2022年4月
  • 2022年3月
  • 2022年2月
  • 2022年1月
  • 2021年12月
  • 2021年11月
  • 2021年10月
  • 2021年9月
  • 2021年8月
  • 2021年7月
  • 2021年6月
  • 2021年5月
  • 2021年4月
  • 2021年3月
  • 2021年2月
  • 2021年1月
  • 2020年12月
  • 2020年11月
  • 2020年10月
  • 2020年9月
  • 2020年8月
  • 2020年7月
  • 2020年6月
  • 2020年5月
  • 2020年4月
  • 2020年3月
  • 2020年2月
  • 2020年1月
  • 2019年12月
  • 2019年11月
  • 2019年10月
  • 2019年9月
  • 2019年8月
  • 2019年7月
  • 2019年6月
  • 2019年5月
  • 2019年4月
  • 2019年3月
  • 2019年2月
  • 2019年1月
  • 2018年12月
  • 2018年11月
  • 2018年10月
  • 2018年9月
  • 2018年8月
  • 2018年7月
  • 2018年6月
  • 2018年5月
  • 2018年4月
  • 2018年3月
  • 2018年2月

https://piyomarusoft.booth.pm/items/301502

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org

Forum Posts

  • 人気のトピック
  • 返信がないトピック

メタ情報

  • ログイン
  • 投稿フィード
  • コメントフィード
  • WordPress.org
Proudly powered by WordPress
Theme: Flint by Star Verte LLC