XML XMP

[XMP] dc:subjectとpdf:Keywordsの両方のキーワード項目を同じ内容にセットする


AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003(*
004Bridgeで付与されるダブリンコアのdc:subject
005Acrobatで付与されるプロパティとしてのpdf:Keywords
006この2つのキーワード要素を合算して
007dc:subject、pdf:Keywordsの両方の値として入れます
008XMPの全てのパターンを網羅しているわけではありませんので
009エラーになる場合もあります
010その場合はXML操作部分を改変してください
011*)
012#
013#  com.cocolog-nifty.quicktimer.icefloe
014----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
015use AppleScript version "2.8"
016use framework "Foundation"
017use framework "AppKit"
018use framework "PDFKit"
019use scripting additions
020
021property refMe : a reference to current application
022
023###############
024#Windowの有無
025tell application "Adobe Acrobat"
026  set numCntDoc to (count of PDF Window) as integer
027  if numCntDoc = 0 then
028    return "Windowがありません PDFを開いていません"
029  end if
030end tell
031
032###############
033#ドキュメントを開いているか
034tell application "Adobe Acrobat"
035  set numCntDoc to (count of document) as integer
036  if numCntDoc = 0 then
037    return "PDFを開いていません"
038  end if
039end tell
040
041###############
042#開いているファイルパス
043tell application "Adobe Acrobat"
044  tell front document
045    set aliasFilePath to (file alias) as alias
046  end tell
047end tell
048
049####################
050#キーワードの取得
051tell application "Adobe Acrobat"
052  tell active doc
053    set strScriptText to ("this.info.Keywords;") as text
054    log strScriptText
055    try
056      set strKeywords to (do script (strScriptText)) as text
057      log strKeywords
058    on error
059      set strKeywords to ("") as text
060    end try
061  end tell
062end tell
063
064####################
065#pdf:Keywordsをリストにしておく
066if strKeywords is not "" then
067  #STRING
068  set ocidKeywordsString to refMe's NSMutableString's alloc()'s initWithString:(strKeywords)
069  #Arrayに
070  set ocidTmpArray to ocidKeywordsString's componentsSeparatedByString:(",")
071  set ocidKeywordsArray to refMe's NSMutableArray's alloc()'s initWithArray:(ocidTmpArray)
072else if strKeywords is "" then
073  set ocidKeywordsArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
074end if
075####################
076#メタデータの取得XML
077tell application "Adobe Acrobat"
078  tell active doc
079    set strScriptText to ("this.metadata;") as text
080    log strScriptText
081    try
082      set strXML to (do script (strScriptText)) as text
083      log strXML
084    on error
085      set strXML to ("") as text
086    end try
087  end tell
088end tell
089
090####################
091#XMLDocまで
092#テキスト
093set ocidXMLText to (refMe's NSString's stringWithString:(strXML))
094#NSDATAに
095set ocidXMLData to ocidXMLText's dataUsingEncoding:(refMe's NSUTF8StringEncoding)
096#XMLDocに
097set ocidOption to (refMe's NSXMLNodePreserveAll) + (refMe's NSXMLDocumentTidyXML)
098set listResponse to refMe's NSXMLDocument's alloc()'s initWithData:(ocidXMLData) options:(ocidOption) |error| :(reference)
099if (item 2 of listResponse) = (missing value) then
100  log "正常処理"
101  set ocidXMLDoc to (item 1 of listResponse)
102else if (item 2 of listResponse) ≠ (missing value) then
103  log (item 2 of listResponse)'s code() as text
104  log (item 2 of listResponse)'s localizedDescription() as text
105  log "NSXMLDocumentエラー 警告がありました"
106  set ocidXMLDoc to (item 1 of listResponse)
107end if
108#XMLROOT
109set ocidRootElement to ocidXMLDoc's rootElement()
110# 対象エレメントを階層おって取得
111set ocidRDF to (ocidRootElement's elementsForName:("rdf:RDF"))'s firstObject()
112set ocidDescription to (ocidRDF's elementsForName:("rdf:Description"))'s firstObject()
113set ocidSubject to (ocidDescription's elementsForName:("dc:subject"))'s firstObject()
114#dc:subjectの項目があるか?
115if ocidSubject = (missing value) then
116  log "DCにキーワード未設定"
117  set boolSubject to false as boolean
118else
119  log "DCにキーワード設定済"
120  set boolSubject to true as boolean
121  # log ocidSubject's XMLString() as text
122  #dc:subjectの項目
123  set listResponse to (ocidDescription's nodesForXPath:("//dc:subject/rdf:Bag/rdf:li") |error| :(reference))
124  if (item 2 of listResponse) = (missing value) then
125    log "正常処理"
126    set ocidSubjectArray to (item 1 of listResponse)
127    #   log ocidSubjectArray's className() as text
128  else if (item 2 of listResponse) ≠ (missing value) then
129    log (item 2 of listResponse)'s code() as text
130    log (item 2 of listResponse)'s localizedDescription() as text
131    return "エラーしました"
132  end if
133  #キーワードがあればリストにしていく
134  repeat with itemSubject in ocidSubjectArray
135    #テキストを値として取得して
136    set strValue to itemSubject's stringValue()
137    #リストに追加
138    (ocidKeywordsArray's addObject:(strValue))
139  end repeat
140end if
141
142####################
143#PDFキーワードの付与
144#カンマ区切りテキストにして
145set strAddKeywords to (ocidKeywordsArray's componentsJoinedByString:("\",\"")) as text
146log strAddKeywords
147tell application "Adobe Acrobat"
148  tell active doc
149    #リスト形式で追加
150    set strScriptText to ("this.info.Keywords=[\"" & strAddKeywords & "\"];") as text
151    log strScriptText
152    try
153      set strResponse to (do script (strScriptText)) as text
154      log strResponse
155    on error
156      set strResponse to ("") as text
157    end try
158  end tell
159  #保存
160  #save active doc to file aliasFilePath
161end tell
162
163####################
164#キーワードのNODE追加
165#subject
166set ocidSubjectNode to (refMe's NSXMLElement's alloc()'s initWithName:("dc:subject"))
167#Bag
168set ocidBagNode to (refMe's NSXMLElement's alloc()'s initWithName:("rdf:Bag"))
169#キーワードの分だけ
170repeat with ItemKeyWords in ocidKeywordsArray
171  #rdf:liをテキストの値入りで作成して
172  set ocidAddNode to (refMe's NSXMLElement's alloc()'s initWithName:("rdf:li") stringValue:(ItemKeyWords))
173  #rdf:Bagに追加していく
174  (ocidBagNode's addChild:(ocidAddNode))
175end repeat
176#rdf:Bagができたらdc:subjectに追加
177ocidSubjectNode's addChild:(ocidBagNode)
178#元からsubjectがあったか?で分岐
179if boolSubject is false then
180  #現時点でsubjectがないからDescriptionに追加
181  ocidDescription's addChild:(ocidSubjectNode)
182else if boolSubject is true then
183  #現時点でsubjectがあるから入れ替え
184  set numCntCild to ocidDescription's childCount()
185  #Childを順番に見ていって
186  repeat with itemNo from 0 to (numCntCild - 1) by 1
187    set strChildName to ((ocidDescription's childAtIndex:(itemNo))'s |name|()) as text
188    #名前がdc:subjectになったら
189    if strChildName is "dc:subject" then
190      #今あるNODEを削除して
191      (ocidDescription's removeChildAtIndex:(itemNo))
192      #新しいNODEをセット
193      (ocidDescription's addChild:(ocidSubjectNode))
194    end if
195  end repeat
196end if
197##テキスト形式に
198set strOutPutXMLstring to ocidXMLDoc's XMLString() as text
199
200####################
201#XMPをPDFに戻す
202tell application "Adobe Acrobat"
203  tell active doc
204    #XMLをセット
205    set strScriptText to ("this.metadata = " & strOutPutXMLstring & ";") as text
206    log strScriptText
207    try
208      set strKeywords to (do script (strScriptText)) as text
209      log strKeywords
210    on error
211      set strKeywords to ("") as text
212    end try
213  end tell
214end tell
215
216####################
217#保存
218tell application "Adobe Acrobat"
219  save active doc to file aliasFilePath
220end tell
AppleScriptで生成しました

|

[xmp]XMPデータ書き出し


あくまでも参考にしてください

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

サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005#com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007use AppleScript version "2.8"
008use framework "Foundation"
009use scripting additions
010
011property refMe : a reference to current application
012
013set appFileManager to refMe's NSFileManager's defaultManager()
014
015#############################
016###ダイアログを前面に出す
017set strName to (name of current application) as text
018if strName is "osascript" then
019  tell application "Finder" to activate
020else
021  tell current application to activate
022end if
023############ デフォルトロケーション
024set appFileManager to refMe's NSFileManager's defaultManager()
025set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
026set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
027set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
028###ANY
029set listUTI to {"public.data"}
030set strMes to ("ファイルを選んでください") as text
031set strPrompt to ("ファイルを選んでください") as text
032try
033  ### ファイル選択時
034  set aliasFilePath to (choose file strMes with prompt strPrompt default location (aliasDefaultLocation) of type listUTI with invisibles and showing package contents without multiple selections allowed) as alias
035on error
036  log "エラーしました"
037  return "エラーしました"
038end try
039#入力ファイル
040set strFilePath to (POSIX path of aliasFilePath) as text
041set ocidFilePathStr to refMe's NSString's stringWithString:(strFilePath)
042set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
043set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:false)
044#出力ファイル
045set ocidBaseFilePathURL to ocidFilePathURL's URLByDeletingPathExtension()
046set ocidSaveFilePathURL to ocidBaseFilePathURL's URLByAppendingPathExtension:("xmp")
047set strSaveFilePath to (ocidSaveFilePathURL's |path|()) as text
048#コマンド
049try
050  set strCommandText to ("/usr/bin/awk  -v start=\"<x:xmpmeta\" -v end=\"</x:xmpmeta>\" '$0 ~ start, $0 ~ end' \"" & strFilePath & "\"") as text
051  set strResponse to (do shell script strCommandText) as text
052on error
053  return "エラーしました"
054end try
055#保存
056set ocidReadXMP to refMe's NSString's stringWithString:(strResponse)
057set ocidOption to (refMe's NSUTF8StringEncoding)
058set listDone to ocidReadXMP's writeToURL:(strSaveFilePath) atomically:(true) encoding:(ocidOption) |error| :(reference)
059#終了
060if (item 1 of listDone) is true then
061  log "正常処理"
062  return "正常処理"
063else if (item 2 of listDone) ≠ (missing value) then
064  log (item 2 of listDone)'s code() as text
065  log (item 2 of listDone)'s localizedDescription() as text
066  return "エラーしました"
067end if
068
069
AppleScriptで生成しました

|

[PDF]メタデータ タイトル設定


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

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
(*
exiftoolが別途必要です
https://quicktimer.cocolog-nifty.com/icefloe/2024/01/post-e7e51d.html

*)
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.6"
use framework "Foundation"
use framework "PDFKit"
use framework "Quartz"
use scripting additions

property refMe : a reference to current application


#####
#設定項目
# set strBinPath to ("/usr/local/bin/exiftool") as text --通常はこちら
set strBinPath to ("~/bin/exiftool/exiftool") as text


set objFileManager to refMe's NSFileManager's defaultManager()


##############################
#####ダイアログを前面に出す
tell current application
  set strName to name as text
end tell
####スクリプトメニューから実行したら
if strName is "osascript" then
  tell application "Finder"
activate
  end tell
else
  tell current application
activate
  end tell
end if
#######################################
#####ファイル選択ダイアログ
#######################################
###ダイアログのデフォルト
set ocidUserDesktopPath to (objFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
set aliasDefaultLocation to ocidUserDesktopPath as alias
tell application "Finder"
end tell
set listChooseFileUTI to {"com.adobe.pdf"}
set strPromptText to "PDFファイルを選んでください" as text
set listAliasFilePath to (choose file with prompt strPromptText default location (aliasDefaultLocation) of type listChooseFileUTI with invisibles and multiple selections allowed without showing package contents) as list

#######################################
## クリップボードの中身取り出し
#######################################
###初期化
set appPasteboard to refMe's NSPasteboard's generalPasteboard()
set ocidPastBoardTypeArray to appPasteboard's types
###テキストがあれば
set boolContain to ocidPastBoardTypeArray's containsObject:"public.utf8-plain-text"
if boolContain = true then
  ###値を格納する
  tell application "Finder"
    set strReadString to (the clipboard as text) as text
  end tell
  ###Finderでエラーしたら
else
  set boolContain to ocidPastBoardTypeArray's containsObject:"NSStringPboardType"
  if boolContain = true then
    set ocidReadString to ocidPasteboard's readObjectsForClasses:({refMe's NSString}) options:(missing value)
    set strReadString to ocidReadString as text
  else
log "テキストなし"
    set aliasFirstFilePath to (item 1 of listAliasFilePath) as alias
    tell application "Finder"
      set strFirstFileName to name of aliasFirstFilePath as text
    end tell
    set strReadString to strFirstFileName as text
  end if
end if
########################
##ダイアログを前面に出す
set strName to (name of current application) as text
####スクリプトメニューから実行したら
if strName is "osascript" then
  tell application "Finder" to activate
else
  tell current application to activate
end if
########################
##ダイアログ
set aliasIconPath to (POSIX file "/System/Library/CoreServices/Tips.app/Contents/Resources/AppIcon.icns") as alias
set strTitle to ("入力してください") as text
set strMes to ("タイトルを入力してください\r") as text
set recordResult to (display dialog strMes with title strTitle default answer strReadString buttons {"キャンセル", "OK"} default button "OK" cancel button "キャンセル" giving up after 30 with icon aliasIconPath without hidden answer)
if (gave up of recordResult) is true then
return "時間切れです"
else if (button returned of recordResult) is "キャンセル" then
return "キャンセルです"
else
  set strReturnedText to (text returned of recordResult) as text
end if
set ocidReturnedText to refMe's NSString's stringWithString:(strReturnedText)
########################
##改行を取る
set ocidReturned to ocidReturnedText's stringByReplacingOccurrencesOfString:("\r") withString:("")
set ocidReturnedText to ocidReturned's stringByReplacingOccurrencesOfString:("\n") withString:("")
set strSetText to ocidReturnedText as string
#####BIN path
set ocidBinPathStr to refMe's NSString's stringWithString:(strBinPath)
set ocidBinPath to ocidBinPathStr's stringByStandardizingPath()
set ocidBinPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidBinPath) isDirectory:false)
set strBinPath to ocidBinPathURL's |path| as text


#######################################
###ダイアログで選択した書類の数だけ繰り返し
#######################################
repeat with itemAliasFilePath in listAliasFilePath
  set strFilePath to POSIX path of itemAliasFilePath as text
  set ocidFilePathStr to (refMe's NSString's stringWithString:strFilePath)
  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath
  set strFileName to ocidFilePath's lastPathComponent() as text
  set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:ocidFilePath isDirectory:false)
  #####PDFDocumentとして読み込み
  set ocidActivDoc to (refMe's PDFDocument's alloc()'s initWithURL:ocidFilePathURL)
  ########################################
  #####暗号化チェック
  set boolEncrypted to ocidActivDoc's isEncrypted()
  if boolEncrypted is true then
    set strMes to "エラー:" & strFileName & "暗号化されています" as text
display alert strMes buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 3
return "暗号化されているので変更できません"
  end if
  ########################################
  #####ロック確認
  set boolLocked to ocidActivDoc's isLocked()
  if boolLocked is true then
    set strMes to "エラー:" & strFileName & "パスワードでロックされています" as text
display alert strMes buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 3
return "パスワードでロックされているので変更できません"
  end if
  ########################################
  #####アトリビュートを取得して
  set ocidAttributes to ocidActivDoc's documentAttributes()
  ######可変ディクショナリに格納
  set ocidAttrDict to (refMe's NSMutableDictionary's alloc()'s initWithDictionary:ocidAttributes)
log ocidAttrDict as record
  ###Titleキーの内容を設定
(ocidAttrDict's setValue:(ocidReturnedText) forKey:"Title")
(ocidAttrDict's setValue:"" forKey:"Creator")
  #####値を変更したレコードをセットする
(ocidActivDoc's setDocumentAttributes:ocidAttrDict)
  ##################
  ###保存
  ##################
(ocidActivDoc's writeToURL:ocidFilePathURL)
  ####解放
  set ocidActivDoc to ""
  set ocidDocAttrDict to ""
  ##################
  ### exifToolでXMPを削除
  ##################
  set strCommandText to ("\"" & strBinPath & "\" -m -overwrite_original -title=\"" & strSetText & "\" -xmp:Title=\"" & strSetText & "\" -xmp:dc:Title=\"" & strSetText & "\" -IPTC:ObjectName=\"" & strSetText & "\" \"" & strFilePath & "\"") as text
  try
do shell script strCommandText
  end try
end repeat


return "処理終了"






|

[exiftool]PDFのメタデータ全部削除


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

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
(*
exiftoolが別途必要です
https://quicktimer.cocolog-nifty.com/icefloe/2024/01/post-e7e51d.html

*)
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.6"
use framework "Foundation"
use framework "PDFKit"
use framework "Quartz"
use scripting additions

property refMe : a reference to current application


#####
#設定項目
# set strBinPath to ("/usr/local/bin/exiftool") as text --通常はこちら
set strBinPath to ("~/bin/exiftool/exiftool") as text


set objFileManager to refMe's NSFileManager's defaultManager()
#
set ocidBinPathStr to refMe's NSString's stringWithString:(strBinPath)
set ocidBinPath to ocidBinPathStr's stringByStandardizingPath()
set ocidBinPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidBinPath) isDirectory:false)
set strBinPath to ocidBinPathURL's |path| as text

##############################
#####ダイアログを前面に出す
tell current application
  set strName to name as text
end tell
####スクリプトメニューから実行したら
if strName is "osascript" then
  tell application "Finder"
activate
  end tell
else
  tell current application
activate
  end tell
end if
#######################################
#####ファイル選択ダイアログ
#######################################
###ダイアログのデフォルト
set ocidUserDesktopPath to (objFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
set aliasDefaultLocation to ocidUserDesktopPath as alias
tell application "Finder"
end tell
set listChooseFileUTI to {"com.adobe.pdf"}
set strPromptText to "PDFファイルを選んでください" as text
set listAliasFilePath to (choose file with prompt strPromptText default location (aliasDefaultLocation) of type listChooseFileUTI with invisibles and multiple selections allowed without showing package contents) as list
#######################################
###ダイアログで選択した書類の数だけ繰り返し
#######################################
repeat with itemAliasFilePath in listAliasFilePath
  set strFilePath to POSIX path of itemAliasFilePath as text
  set ocidFilePathStr to (refMe's NSString's stringWithString:strFilePath)
  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath
  set strFileName to ocidFilePath's lastPathComponent() as text
  set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:ocidFilePath isDirectory:false)
  #####PDFDocumentとして読み込み
  set ocidActivDoc to (refMe's PDFDocument's alloc()'s initWithURL:ocidFilePathURL)
  ########################################
  #####暗号化チェック
  set boolEncrypted to ocidActivDoc's isEncrypted()
  if boolEncrypted is true then
    set strMes to "エラー:" & strFileName & "暗号化されています" as text
display alert strMes buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 3
return "暗号化されているので変更できません"
  end if
  ########################################
  #####ロック確認
  set boolLocked to ocidActivDoc's isLocked()
  if boolLocked is true then
    set strMes to "エラー:" & strFileName & "パスワードでロックされています" as text
display alert strMes buttons {"OK", "キャンセル"} default button "OK" as informational giving up after 3
return "パスワードでロックされているので変更できません"
  end if
  ########################################
  #####アトリビュートを取得して
  set ocidAttributes to ocidActivDoc's documentAttributes()
  ######可変ディクショナリに格納
  set ocidAttrDict to (refMe's NSMutableDictionary's alloc()'s initWithDictionary:ocidAttributes)
log ocidAttrDict as record
  ###Titleキーの内容をブランクにする
(ocidAttrDict's setValue:"" forKey:"Title")
(ocidAttrDict's setValue:"" forKey:"Creator")
(ocidAttrDict's setValue:"" forKey:"Author")
(ocidAttrDict's setValue:"" forKey:"Keywords")
(ocidAttrDict's setValue:"" forKey:"Producer")
(ocidAttrDict's setValue:"" forKey:"Subject")
(ocidAttrDict's setValue:"" forKey:"ModificationDate")
(ocidAttrDict's setValue:"" forKey:"CreationDate")
  
  #####値を変更したレコードをセットする
(ocidActivDoc's setDocumentAttributes:ocidAttrDict)
  ##################
  ###保存
  ##################
(ocidActivDoc's writeToURL:ocidFilePathURL)
  ####解放
  set ocidActivDoc to ""
  set ocidDocAttrDict to ""
  ##################
  ### exifToolでXMPを削除
  ##################
  set strCommandText to ("\"" & strBinPath & "\" -overwrite_original -all= \"" & strFilePath & "\"") as text
  try
do shell script strCommandText
  end try
end repeat


return "処理終了"






|

apple-preview:Bookmarks

ちょっと前までは com.apple.Preview.bookmarks.plistでの紐付けだったが
今はXMPメタファイルになった

  <rdf:Description rdf:about=""
   xmlns:xmp="http://ns.adobe.com/xap/1.0/"
   xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
   xmlns:apple-preview="http://ns.apple.com/Preview/1.0/">
   <apple-preview:Bookmarks>
    <rdf:Seq>
     <rdf:li rdf:parseType="Resource">
      <apple-preview:PageIndex>0</apple-preview:PageIndex>
      <apple-preview:UUID>C0900257-4614-4736-98D7-6AFA344DAE19</apple-preview:UUID>
     </rdf:li>
     <rdf:li rdf:parseType="Resource">
      <apple-preview:PageIndex>1</apple-preview:PageIndex>
      <apple-preview:UUID>A9527326-1703-4DCC-8118-73693A7C658B</apple-preview:UUID>
     </rdf:li>
    </rdf:Seq>
   </apple-preview:Bookmarks>
  </rdf:Description>


apple-preview:UUIDで指定されるUUIDの生成方法がわからないため
自動生成はあきらめる

|

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe FDKO Adobe RemoteUpdateManager AppKit Apple AppleScript AppleScript do shell script AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript System Events AppleScript System Events Plist AppleScript Video Applications AppStore Archive Attributes Automator BackUp Barcode Barcode QR Barcode QR Decode Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome CIImage CityCode CloudStorage Color com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Device Diff Disk Dock DropBox Droplet eMail Encode % Encode Decode Encode UTF8 Error EXIFData ffmpeg File Finder Firefox Folder FolderAction Fonts GIF github Guide HTML HTML Entity Icon Illustrator Image Events Image2PDF ImageOptim iPhone iWork Javascript Jedit Json Label Leading Zero List locationd LRC lsappinfo LSSharedFileList m3u8 Mail MakePDF Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Mouse Music NetWork Notes NSArray NSArray Sort NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSColor NSColorList NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSPrintOperation NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth OneDrive PDF PDFAnnotation PDFAnnotationWidget PDFContext PDFDisplayBox PDFDocumentPermissions PDFImageRep PDFKit PDFnUP PDFOutline perl Photoshop PlistBuddy pluginkit postalcode PostScript prefPane Preview Python QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver SF Symbols character id SF Symbols Entity sips Skype Slack Sound Spotlight sqlite SRT StandardAdditions Swift System Settings TCC TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code Wacom webarchive webp Wifi Windows XML XML EPUB XML OPML XML Plist XML RSS XML savedSearch XML SVG XML TTML XML webloc XML XMP YouTube zoom