[Acrobat]メタデータ文書情報を全て削除(ドロップレット)
AppleScript サンプルコード
行番号 | ソース |
---|---|
001 | #! /usr/bin/env osascript |
002 | ----+----1----+----2----+-----3----+----4----+----5----+----6----+----7 |
003 | # com.cocolog-nifty.quicktimer.icefloe |
004 | #前提条件 |
005 | # AcrobatでJavascripが有効に設定されている事 |
006 | # 別名で保存からアプリケーションでドロップレットになります |
007 | ----+----1----+----2----+-----3----+----4----+----5----+----6----+----7 |
008 | use AppleScript version "2.8" |
009 | use framework "Foundation" |
010 | use framework "AppKit" |
011 | use scripting additions |
012 | |
013 | property refMe : a reference to current application |
014 | ################### |
015 | #設定項目 対象のUTI |
016 | property strUTI : ("com.adobe.pdf") as text |
017 | |
018 | ################### |
019 | #Wクリックで実行 |
020 | on run |
021 | ###ダイアログを前面に出す |
022 | tell current application |
023 | set strName to name as text |
024 | end tell |
025 | if strName is "osascript" then |
026 | tell application "Finder" to activate |
027 | else |
028 | tell current application to activate |
029 | end if |
030 | #ダイアログ |
031 | set appFileManager to refMe's NSFileManager's defaultManager() |
032 | set ocidUserDesktopPathArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask)) |
033 | set ocidUserDesktopPath to ocidUserDesktopPathArray's objectAtIndex:0 |
034 | set listChooseFileUTI to {strUTI} as list |
035 | set strMesText to ("PDFファイルを選んでください") as text |
036 | set strPromptText to ("PDFファイルを選んでください") as text |
037 | set listChooseAliasFilePath to (choose file strMesText with prompt strPromptText default location (ocidUserDesktopPath as alias) of type listChooseFileUTI with invisibles and multiple selections allowed without showing package contents) as list |
038 | #サブルーチンに渡す |
039 | set boolDone to doAction(listChooseAliasFilePath) |
040 | #戻り値がエラーだったか? |
041 | if boolDone is false then |
042 | display alert "エラーが発生しました" message "エラーが発生しました" |
043 | return |
044 | end if |
045 | return "処理終了RUN" |
046 | end run |
047 | |
048 | ################### |
049 | #ドロップ |
050 | on open listDropAliasFilePath |
051 | #サブルーチンに渡すリスト |
052 | set listAliasFilePath to {} as list |
053 | #ドロップされたアイテムの数だけ繰り返す |
054 | repeat with itemDropAliasFilePath in listDropAliasFilePath |
055 | #エイリアス |
056 | set aliasItemFilePath to itemDropAliasFilePath as alias |
057 | tell application "Finder" |
058 | #Finder情報を取得して |
059 | set recordInfoFor to info for aliasItemFilePath |
060 | end tell |
061 | #UTIを取得 |
062 | set strItemUIT to (type identifier of recordInfoFor) as text |
063 | #UTIが対象ファイルならリストに追加 |
064 | if strItemUIT is strUTI then |
065 | copy aliasItemFilePath to end of listAliasFilePath |
066 | end if |
067 | end repeat |
068 | set numCntAliasList to (count of listAliasFilePath) as integer |
069 | if numCntAliasList > 0 then |
070 | #サブルーチンに渡す |
071 | set boolDone to doAction(listAliasFilePath) |
072 | else |
073 | display alert "エラーが発生しました対象のファイルではありません" |
074 | return "エラー終了open" |
075 | end if |
076 | #戻り値がエラーだったか? |
077 | if boolDone is false then |
078 | display alert "エラーが発生しました" message "エラーが発生しました" |
079 | return "エラー終了open" |
080 | end if |
081 | return "処理終了open" |
082 | |
083 | end open |
084 | |
085 | ################### |
086 | #実行されるのはこれ |
087 | to doAction(argListAliasFilePath) |
088 | #ファイルエイリアスリストを順番の処理 |
089 | repeat with itemAliasFilePath in argListAliasFilePath |
090 | set aliasFilePath to itemAliasFilePath as alias |
091 | try |
092 | #ここに処理内容 |
093 | tell application "Adobe Acrobat" |
094 | open aliasFilePath |
095 | delay 1 |
096 | tell active doc |
097 | do script ("this.info.Author = (\"\");") |
098 | do script ("this.info.Title = (\"\");") |
099 | do script ("this.info.Author = (\"\");") |
100 | ## do script ("this.info.Authors = (\"\");") Acrobat9専用 |
101 | do script ("this.info.Subject = (\"\");") |
102 | do script ("this.info.Keywords = (\"\");") |
103 | do script ("this.info.Creator = (\"\");") |
104 | do script ("this.info.Producer = (\"\");") |
105 | do script ("this.info.CreationDate = (\"\");") |
106 | do script ("this.info.ModDate = (\"\");") |
107 | do script ("this.info.Trapped = (\"\");") |
108 | close saving yes |
109 | end tell |
110 | end tell |
111 | on error |
112 | #エラーをログにする |
113 | refMe's NSLog("■■■: サブルーチンでエラーになりました") |
114 | return false |
115 | end try |
116 | end repeat |
117 | #全部エラーなく終わったらtrueを戻す |
118 | return true |
119 | end doAction |
AppleScriptで生成しました |
| 固定リンク