ReadMe

記事の内容によっては、執筆時の内容が現在の事実と異なったりする場合があります。
内容の真偽は、ご自分でご確認ください。
また
プログラム類につきましても、意図する動作をするのか?は
ご自身でご確認の上、ご自身の責任において実行してください。

過去の記事に誤りがあっても
比較的その記事を修正しないで、修正版のみ掲載する傾向がありあます
留意ください

お問合せ等ありましたら
本記事のコメント欄にコメントを残してください。
返答のいる内容については、メールアドレス等の連絡先情報をお忘れなく。



投げ銭歓迎♪金額はお気持ちで♪

本BLOGの記事は
個別ページにおいて
別途指定していない記事やコンテンツは
CC0 1.0 全世界 (CC0 1.0)
パブリック・ドメインを選択しています。
(外部ライブラリやマテリアル等、個別のライセンス指定がある物もあります。留意ください)
https://creativecommons.org/publicdomain/zero/1.0/deed.ja




引用流用するときに記載してくれたら嬉しいですが、CC0 1.0を選択していますので必要はありません。



| | コメント (0) | トラックバック (0)

ユーザー辞書作成支援スクリプト(一括作成できるようにした)

こんな感じで色々出るようになります
202501060816321_768x806

ダウンロード - makeuserdict.v2.zip




AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004# com.cocolog-nifty.quicktimer.icefloe
005----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
006##自分環境がos12なので2.8にしているだけです
007use AppleScript version "2.8"
008use framework "Foundation"
009use framework "AppKit"
010use scripting additions
011
012property refMe : a reference to current application
013
014#####################
015#設定項目
016# 名詞 動詞 等 品詞名をお好みで
017set strLangLind to ("普通名詞") as text
018
019
020#####################
021#処理開始
022set appFileManager to refMe's NSFileManager's defaultManager()
023
024set aliasPathToMe to (path to me) as alias
025set strPathToMe to (POSIX path of aliasPathToMe) as text
026set ocidPathToMeStr to refMe's NSString's stringWithString:(strPathToMe)
027set ocidPathToMe to ocidPathToMeStr's stringByStandardizingPath()
028set ocidPathToMeURL to refMe's NSURL's alloc()'s initFileURLWithPath:(ocidPathToMe) isDirectory:(false)
029set ocidContainerDirPathURL to ocidPathToMeURL's URLByDeletingLastPathComponent()
030#保存先
031set ocidSavePlistDirPathURL to (ocidContainerDirPathURL's URLByAppendingPathComponent:("ユーザー辞書登録用PLIST") isDirectory:(true))
032#追加辞書用テキスト保存先
033set ocidSaveTextDirPathURL to (ocidContainerDirPathURL's URLByAppendingPathComponent:("追加辞書用テキスト") isDirectory:(true))
034#フォルダを作って
035set appFileManager to refMe's NSFileManager's defaultManager()
036set ocidAttrDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:0)
037(ocidAttrDict's setValue:(448) forKey:(refMe's NSFilePosixPermissions))
038set listDone to (appFileManager's createDirectoryAtURL:(ocidSavePlistDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference))
039set listDone to (appFileManager's createDirectoryAtURL:(ocidSaveTextDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference))
040#TSVのあるディレクトリ
041set ocidDataDirPathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:("Data") isDirectory:(true)
042#収集
043set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
044set ocidKeyArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
045ocidKeyArray's addObject:(refMe's NSURLPathKey)
046ocidKeyArray's addObject:(refMe's NSURLIsDirectoryKey)
047set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidDataDirPathURL) includingPropertiesForKeys:(ocidKeyArray) options:(ocidOption) |error| :(reference))
048set ocidSubPathURLArray to (item 1 of listResponse)
049set numCntArray to ocidSubPathURLArray's |count|()
050
051#順番に処理
052repeat with itemNo from 0 to (numCntArray - 1) by 1
053  set ocidItemPathURL to (ocidSubPathURLArray's objectAtIndex:(itemNo))
054  
055  #保存パス PLIST保存先
056  set ocidBaseFilePathURL to ocidItemPathURL's URLByDeletingPathExtension()
057  set ocidFileName to ocidBaseFilePathURL's lastPathComponent()
058  
059  #保存用のパスにしておく
060  set ocidSaveBasePlistFilePathURL to (ocidSavePlistDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(false))
061  set ocidSaveBaseTextFilePathURL to (ocidSaveTextDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(false))
062  set ocidSavePlistPathURL to (ocidSaveBasePlistFilePathURL's URLByAppendingPathExtension:("plist"))
063  set ocidSaveTextPathURL to (ocidSaveBaseTextFilePathURL's URLByAppendingPathExtension:("csv.txt"))
064  
065  #####################
066  #NSDATA
067  set ocidOption to (refMe's NSDataReadingMappedIfSafe)
068  set listResponse to (refMe's NSData's alloc()'s initWithContentsOfURL:(ocidItemPathURL) options:(ocidOption) |error| :(reference))
069  if (item 2 of listResponse) = (missing value) then
070    set ocidReadData to (item 1 of listResponse)
071  else if (item 2 of listResponse) (missing value) then
072    set strErrorNO to (item 2 of listResponse)'s code() as text
073    set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
074    refMe's NSLog("■:" & strErrorNO & strErrorMes)
075    return "エラーしました" & strErrorNO & strErrorMes
076  end if
077  #####################
078  #NSSTRING
079  set ocidReadString to (refMe's NSString's alloc()'s initWithData:(ocidReadData) encoding:(refMe's NSUTF8StringEncoding))
080  
081  #####################
082  #NSMutableArray's
083  set ocidPlistArray to (refMe's NSMutableArray's alloc()'s initWithCapacity:(0))
084  
085  #####################
086  #NSMutableString
087  set ocidCsvString to (refMe's NSMutableString's alloc()'s initWithCapacity:(0))
088  
089  #####################
090  #NSARRAY
091  set ocidStringArray to (ocidReadString's componentsSeparatedByString:("\n"))
092  #####################
093  #NSPredicateで空の項目を削除
094  set appPredicate to (refMe's NSPredicate's predicateWithFormat:"SELF != ''")
095  set ocidPredicateArray to (ocidStringArray's filteredArrayUsingPredicate:(appPredicate))
096  
097  #行テキストを順番に処理
098  repeat with itemLineText in ocidPredicateArray
099    #行テキスト=タブ区切りなのでタブで前後にわける
100    set ocidTabArray to (itemLineText's componentsSeparatedByString:("\t"))
101    #####################
102    #NSMutableDictionary
103    set ocidPlistDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:(0))
104    #前が入力値
105    (ocidPlistDict's setValue:(ocidTabArray's firstObject()) forKey:("shortcut"))
106    #後が変換値
107    (ocidPlistDict's setValue:(ocidTabArray's lastObject()) forKey:("phrase"))
108    #出来たDICTをARRYにセット
109    (ocidPlistArray's addObject:(ocidPlistDict))
110    #####################
111    #NSMutableString
112    (ocidCsvString's appendString:(ocidTabArray's firstObject()))
113    (ocidCsvString's appendString:(","))
114    (ocidCsvString's appendString:(ocidTabArray's lastObject()))
115    (ocidCsvString's appendString:(","))
116    (ocidCsvString's appendString:(strLangLind))
117    (ocidCsvString's appendString:("\n"))
118    
119  end repeat
120  
121  #####################
122  #NSPropertyListSerialization
123  set ocidFormat to (refMe's NSPropertyListBinaryFormat_v1_0)
124  set listResponse to (refMe's NSPropertyListSerialization's dataWithPropertyList:(ocidPlistArray) format:(ocidFormat) options:0  |error| :(reference))
125  if (item 2 of listResponse) = (missing value) then
126    set ocidPlistData to (item 1 of listResponse)
127  else if (item 2 of listResponse) (missing value) then
128    set strErrorNO to (item 2 of listResponse)'s code() as text
129    set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
130    refMe's NSLog("■:" & strErrorNO & strErrorMes)
131    return "エラーしました" & strErrorNO & strErrorMes
132  end if
133  
134  
135  ##########################################
136  ####【4】保存  ここは上書き PLIST
137  set ocidOption to (refMe's NSDataWritingAtomic)
138  set listDone to (ocidPlistData's writeToURL:(ocidSavePlistPathURL) options:(ocidOption) |error| :(reference))
139  if (item 1 of listDone) is true then
140    log "正常処理 PLIST"
141  else if (item 2 of listDone) (missing value) then
142    set strErrorNO to (item 2 of listDone)'s code() as text
143    set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
144    refMe's NSLog("■:" & strErrorNO & strErrorMes)
145    return "エラーしました" & strErrorNO & strErrorMes
146  end if
147  
148  ##########################################
149  ####【4】保存  ここは上書き TEXT
150  set ocidOption to (refMe's NSUTF8StringEncoding)
151  set listDone to (ocidCsvString's writeToURL:(ocidSaveTextPathURL) atomically:(true) encoding:(ocidOption) |error| :(reference))
152  if (item 1 of listDone) is true then
153    log "正常処理 TEXT"
154  else if (item 2 of listDone) (missing value) then
155    set strErrorNO to (item 2 of listDone)'s code() as text
156    set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
157    refMe's NSLog("■:" & strErrorNO & strErrorMes)
158    return "エラーしました" & strErrorNO & strErrorMes
159  end if
160  
161end repeat
162
163
164
AppleScriptで生成しました

|

[FoxIt]AirPrintでポスター印刷

こちらの回答編(さすがに他社製品なので)
アップルスクリプトでPDF分割する場合はこちら
縦長PDFをA4比率で複数ページのPDFに各ページを変換(CROP=トリミング)する
事前条件
プリンタの電源がONになっていて
利用可能な事

手順
1:対象のPDFを開く
2:印刷メニュー
3:画像で印刷をON
4:プリンタ選択
5:プロパティを開く
6:プリンタを選択
7:用紙を選択
8−1:紙に印刷するなら
8−2:PDFファイルに出力するなら
9:中央配置 をOFF
10:ページ分割を選択
11:タイルマークON
12:重なり値はお好みで(後で貼り合わせるなら0.5cmぐらいあるといい)
13:プレビュー画面を見ながら倍率調整
14:意図する分割内容になったら印刷

1:対象のPDFを開く
202501060611351_1630x1666
2:印刷メニュー
202501060611431_637x2502
3:画像で印刷をON
202501060611571_1772x1662
4:プリンタ選択
202501060611571_1772x16622
5:プロパティを開く
202501060611571_1772x16623
6:プリンタを選択
202501060612171_1062x1198
7:用紙を選択
202501060612171_1062x11982
8−1:紙に印刷するなら
202501060612171_1062x11983
8−2:PDFファイルに出力するなら
202501060612171_1062x11984
9:中央配置 をOFF
202501060612391_1772x1662
10:ページ分割を選択
202501060612471_1772x1662
11:タイルマークON
202501060612471_1772x16622
12:重なり値はお好みで
後で貼り合わせるなら0.5cmぐらい
貼り合わせないなら0でも良い
202501060612471_1772x16623
13:プレビュー画面を見ながら倍率調整
202501060612471_1772x16624
14:意図する分割内容になったら印刷
202501060612471_1772x16625

|

[bash][mdutil]対象のディレクトリがインデックスされているか?の判定


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#################################################
004STR_BUNDLEID="com.adobe.Reader"
005STR_RESPONSE=$(/usr/bin/mdutil -s /System/Volumes/Data/Applications)
006if [[ "$STR_RESPONSE" != *"enabled"* ]]; then
007  /bin/echo "インデックスされていないので判定できません"
008 exit 1
009fi
AppleScriptで生成しました

|

【Acrobat Reader】SCA(single client app) Unified App版判定

[Plist]Acrobat ReaderのSCA(single client app) Unified App版判定(その1 AppleScript:System Events)
https://quicktimer.cocolog-nifty.com/icefloe/2025/01/post-4673cd.html


[Plist]Acrobat ReaderのSCA(single client app) Unified App版判定(その2 AppleScript:ASOC)
https://quicktimer.cocolog-nifty.com/icefloe/2025/01/post-4b8def.html


[Plist]Acrobat ReaderのSCA(single client app) Unified App版判定(その3 bash:mdfind PlistBuddy)
https://quicktimer.cocolog-nifty.com/icefloe/2025/01/post-f60167.html


[Plist]Acrobat ReaderのSCA(single client app) Unified App版判定(その4 bash:defaults)
https://quicktimer.cocolog-nifty.com/icefloe/2025/01/post-66473a.html


[Plist]Acrobat ReaderのSCA(single client app) Unified App版判定(その5 bash:plutil)
https://quicktimer.cocolog-nifty.com/icefloe/2025/01/post-334815.html

|

[Plist]Acrobat ReaderのSCA(single client app) Unified App版判定(その5 bash:plutil)


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002# OSSCRIPTとplutilの組み合わせ
003#com.cocolog-nifty.quicktimer.icefloe
004#################################################
005STR_BUNDLEID="com.adobe.Reader"
006
007PATH_APPLICATION=$(/usr/bin/osascript <<EOF
008try
009tell application "Finder"
010  set aliasAppApth to (application file id "${STR_BUNDLEID}") as alias
011  set strAppPath to (POSIX path of aliasAppApth) as text
012  return strAppPath
013end tell
014on error
015  return "false"
016end try
017EOF
018)
019if [ "$PATH_APPLICATION" == "false" ]; then
020  /bin/echo "アプリケーションが見つかりませんでした"
021  exit 1
022fi
023PATH_PLIST="${PATH_APPLICATION}Contents/Info.plist"
024
025#バージョンチェック
026STR_VERSION=$(/usr/bin/plutil -extract CFBundleVersion raw -expect string "$PATH_PLIST")
027/bin/echo "CFBundleVersion: ${STR_VERSION}"
028
029STR_VERSION=$(/usr/bin/plutil -extract CFBundleLongVersionString raw -expect string "$PATH_PLIST")
030/bin/echo "CFBundleLongVersionString: ${STR_VERSION}"
031
032STR_VERSION=$(/usr/bin/plutil -extract CFBundleShortVersionString raw -expect string "$PATH_PLIST")
033/bin/echo "CFBundleShortVersionString: ${STR_VERSION}"
034
035#SCA判定
036STR_ISSCA=$(/usr/bin/plutil -extract AcroSCA raw -expect bool "$PATH_PLIST")
037/bin/echo "AcroSCA: ${STR_ISSCA}"
038if [[ "$STR_ISSCA" == "false" ]]; then
039  /bin/echo "従来版がインストールされています"
040  exit 1
041else
042  /bin/echo "SCA版がインストールされています"
043fi
AppleScriptで生成しました

|

«[Plist]Acrobat ReaderのSCA(single client app) Unified App版判定(その4 bash:defaults)