月別: 2013年12月

Automatorを使ってMS Office 2011でPDFドキュメントへの変換をする

400くらいの数のPowerPointとWordのファイルから画像・写真を抜き出すはめになりました。
方法としては、

  • 1つずつ画像・写真をコピーしてPhotoshopに貼って新規保存する
  • 1つずつ画像・写真を選択して、画像フォーマットで保存する
  • それぞれのどキュメントをPDFファイルへ変換する

などでしょうか。どれにしても手間はかかりそうです。同じ名前でPDFファイルへ変換できるようであれば、これが一番バッチ処理を組みやすいでしょう。
OfficeスイートがAutomatorに対応しているということは聞いていましたので、なにが出来るか、Automatorを立ち上げてアクションを調べてみました。

■PowerPointのAutomatorアクション
PowerPointのアクションでは、「PowerPointプレゼンテーションの形式を変換」が使えそうです。

1

図のようにこのアクションだけで実行してみましたが、PowerPoint.appの最前面のドキュメントウィンドウに対しても何の動作もしません。このアクションへ処理対象を引き渡すアクションが必要なようです。
そこで、次のようにFinderから対象ファイルをPowerPoint.appへ引き渡してから「PowerPointプレゼンテーションの形式を変換」アクションに引き継ぐことにしてみました。当たりでした。

pptx

実行してみると、対象ファイルと同じフォルダに「同じ名前」+「.pdf」という名前で保存され、対象ファイルのウィンドウは自動的に閉じられます。
作成したワークフローは、スクリプトメニューの中に保存し、Finder上で対象ファイルを複数選択してからメニューバーからこのワークフローを実行する方法をとることにしました。
色々とやってみると、誤動作無しで処理が終了するのは、一度に10ファイルくらいが適当なようで、20ファイルを超えるとエラーが発生するようになりました。
この辺りは、マシンの搭載メモリ数にも関係しそうです。

■Word、Excelの場合
Word、Excelの場合には「形式を変換」というようなアクションがなく、「…保存」というアクションで対処するようです。
アプリケーションから別名で保存を実行したときのオプションが選択できるアクションです。そこで、次のようにそれぞれ設定して実行してみました。

word_excel

Excelでは成功しましたが、Wordからはファイルは出来るのですが、PDFファイルとしては正常に開けません。
マニュアルで、Wordから別名保存でPDF形式に書き出した場合は正常なPDFファイルが生成されるのですが….。

■まとめと課題
「PowerPointプレゼンテーションの形式を変換」アクションで作成したPDFファイルも、Excelから別名保存アクションで作成したPDFファイルも、Finder上で情報を見ると、OS Xの‘Quartz PDFContext’でエンコーディングされたという表示となっていますので、OS Xのシステム側の処理でPDFファイル化されているということが分かります。

quartz
残念なことに、この方法では、Windows環境+Adobe Acrobatの組み合わせのようにオプションで画像解像度やプロファイルを指定するということが出来ません。
DTPでの画像利用を考えると、アプリケーションの別名保存でのPDFファイルへの書き出し(その機能を使ったAutomatorのバッチ処理)では、解像度やカラープロファイルの設定は出来ないということが分かっただけでした。
Adobe PDFファイルへの書き出しとバッチ処理を少し考えてみようと思います。

ヘルプウインドウを背面に移動できるようにする

ヘルプを参照することが多くなって、常に前面にくる設定になっているヘルプウィンドウが鬱陶しいので、どうにかできないか探していたのですが、キーワードが適当でなかったのかなかなか見つかりませんでした。
OS X 10.5 Leopardまでの設定は出てきたのですが、10.6以降では無効のようです。

で、漸く「S E C R E T S」<http://secrets.blacktree.com>という大層なタイトルのサイトを見つけました。該当ページはここ<http://secrets.blacktree.com/edit?id=157761>です。

10.6以降でヘルプウインドウを背面に移動できるようにするには、

$ defaults write com.apple.helpviewer DevMode -bool true

リセットするには、

$ defaults delete com.apple.helpviewer DevMode

‘-bool’キーですから、‘true/false’は‘YES/NO’でもどちらでもいいでしょう。

因に、OS X 10.5 Leopardで、ヘルプウインドウを背面に移動できるようにするには、

$ defaults write com.apple.helpviewer NormalWindow -bool YES

リセットするには、

$ defaults delete com.apple.helpviewer NormalWindow

どうもヘルプビューアの挙動がイマイチな気がしてならない場合は、ヘルプファイル自体はhtml形式のファイルなので、ヘルプファイル自体を見つけてそれをSafariで開いてしまうのも手です。
通常のアプリケーションでヘルプファイルを用意しているものは、大体はアプリケーションパッケージの中の‘Resources’フォルダ内に配置しているケースがほとんどですので、アプリケーションアイコンをコントロール+クリック(あるいは右クリック)してコンテキストメニューから「パッケージの内容を表示」し、‘Contents’フォルダ以下にある‘Resources’フォルダ内のヘルプフォルダを探してみるといいでしょう。
TextWrangler.appとBackupList+.appでは、次のディレクトリとなっています。

/Applications/TextWrangler.app/Contents/Resources/TextWrangler Help/index.htm
/Applications/backupList+.app/Contents/Resources/BackuplistOC Help/index.html

Backuplist+8.4にrsync 3.1.0をバインドしてみる

066f1

OS X 10.9 Mavericksでも、‘/usr/bin/rsync’のバージョンは2.6.9のままです。Backuplist+8.4<http://rdutoit.home.comcast.net/~rdutoit/pub/robsoft/pages/softw.html>にバインドされているrsyncは3.0.9となっています(‘/Applications/backupList+.app/Contents/Resources/RsyncBuilds/rsync’)。本家<rsync.samba.org>を見るとrsync 3.1.0が最新バージョンとなっていました。
3.0.9で不都合が出ている訳ではなく、また、3.1.0への変更内容(<http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0-NEWS>)が格別私の使用環境に影響するようでもないのですが、そこはそれです。通常に‘/usr/bin’あるいは‘/usr/local/bin’にインストールするだけでなく、Backuplist+8.4にバインドされているものを、rsync 3.1.0に置き換えてみました。

先ずは、rsync-3.1.0本体とパッチをダウンロードしてきます。
<http://rsync.samba.org/ftp/rsync/src/rsync-3.1.0.tar.gz>
<http://rsync.samba.org/ftp/rsync/src/rsync-patches-3.1.0.tar.gz>

■パッチの適用と、コンパイル、インストール
先ず、rsync-3.1.0.tar.gzを解凍して、rsync-3.1.0フォルダをデスクトップなりホームなり分かりやすい場所に置きます。
そして、rsync-patches-3.1.0.tar.gzも解凍し、中のpatchesフォルダをrsync-3.1.0フォルダの中に移動しておきます。
次に、ターミナルを起動して、cdコマンドでカレントディレクトリをrsync-3.1.0にします。例えば、

$ cd ~/Desktop/rsync-31.0

次に、Mac OS Xのメタデータを保護するためのパッチを適用します。

$ patch -p1 <patches/fileflags.diff
$ patch -p1 <patches/crtimes.diff

もう1つ、
hfs+ compressionのためのパッチを適用します。

$ patch -p1 <patches/hfs-compression.diff

そして、Configureしてmakeしてinstallです。

$ ./prepare-source
$ ./configure
$ make
$ sudo make install

これで旨く行けば、次にバージョンを確認します。

$ /usr/local/bin/rsync –version

無事3.1.0と表示されればOKです。

このインストールでは、rsyncは‘/usr/local/bin’に配置されるはずです。デフォルトの2.6.9は‘/usr/bin’にありますので、そのままの配置で3.1.0を呼び出すのであれば、‘/usr/local/bin/rsync’でパス指定する必要があります。2.6.9を名称変更して、3.1.0を移動し、‘/usr/bin/rsync’としてしまう方が簡単でしょう。

■Backuplist+8.4の‘rsync’を3.1.0に置き換える

$ cp -f /usr/local/bin/rsync /Applications/backupList+.app/Contents/Resources/RsyncBuilds/rsync

これで、Backuplist+8.4のデフォルトの動作は3.1.0で動作することになります。
デフォルトのオプション” -aHAXN –fileflags –protect-decmpfs –force-change –stats”でバックアップしてみたところ、3.0.9よりも”-X”での拡張属性の転送エラーが減っているようです。

NameChanger.appはなかなかパワフルなリネームツール

正規表現を使うまでもないけれどワイルドカードがあれば便利だという、図のような類いのリネーム作業が溜まってきたので、心当たりのあるリネーム用のアプリケーションをいくつか試してみました。
その中で、NameChanger.app<https://www.macupdate.com/app/mac/21516/namechanger>が、処理スピードも速く、使い勝手もよいという感触だったので、メモしておきます。

1

最新バージョンが2.3.3で2012年ですから、その頃入手したものだと思います。今回のように、少し手間を惜しまずにヘルプを読んでいれば、最初の段階でもう少し良い評価をしていたのでしょうが、正規表現のサポートを評価しながら、連番処理のところで拡張子の保持の設定が分からなくて個人的な評価を下げていたようです。今回、ワイルドカードで特定のパターンの文字列を検索/リネームするという作業の後で連番処理をする際にヘルプを見て漸く納得しました。
これもヘルプから図を拝借して載せますが、

2

設定ダイアログ内に拡張子に対するオプションがなく、プレビューでは拡張子が消えてしまうため、混乱していた訳です。
これは、もう1つオプションダイアログを開いて、「Hide Extensions」をチェックしておけば拡張子を保持できるということだったのです。言い訳じみていますが、「Hide Extensions」ではなく「Keep Extensions」とでもしてくれていれば早く理解できただろうと思います。
連番処理の際に、ファイルの順番を名前順、ファイルの変更日、EXIFデータの日付で並べられるオプションも便利です。

機能をリストアップすれば次の通りで、充実している部類です。

ScreenShot 2013-12-08 10.31.38

GUIがもう少し整理されていて、リネームのアンドゥーが効けばいいのですが….

リネームツール自体があまり人気のあるジャンルではないのか、このところ動きのあるツールが殆どないように見えます。このNameChanger.appもこのまま消えてゆくかも知れませんが、現時点ではお勧めできるものだと思います。

10.9 MavericksのFinderあれこれ

10.9 MavericksでFinderがかなり変わりましたが、Finder周りのあれこれです。

■CPU占有率200%を超えるハッスル(暴走?)状態と反応低下

何故か突然、Finderでフォルダを開こうとすると、ウィンドウ枠だけが表示され内容がゼロ項目のままポインタがビーチボールになってしまいました。
Finder以外のプロセスもレスポンスが悪くなり、なんとか我慢しながらアクティビティモニタを開くと、FinderのCPU占有率が80〜200%くらいの範囲を彷徨っています。
Finderを強制終了してもすぐに症状が再発します。
強引にユーザを切り替えてみると、別アカウントのFinderは正常に動作しています。
ということは、システム系のエクステンションや起動項目関連が原因ではないようです。ユーザレベルの問題とすれば、問題のあるアカウントの初期設定ファイルが一番疑わしそうです。
そこで、

  • マシンを再起動して、別アカウントでログイン
  • 拙作の‘Quasi_Launcher.app’で2ペインのファイルブラウザ‘muCommander.app’<http://www.mucommander.com>を管理者権限で立ち上げ
  • 問題のあるアカウントの‘Library/preferences’フォルダから、‘com.apple.finder.plist’と‘ByHost’フォルダを削除
  • 問題のあったアカウントへログイン

といった手順でFinder関連(と思われる)初期設定ファイルをリセットしてみました。

上手くいったようです。
これで、原因が絞り込めてきました。
(メンテナンス用に管理者としての別アカウントを1つ作っておくとこんなときに便利です。また、ファイルブラウザを管理者権限で立ち上げれば、アカウントをまたいでファイル操作ができますし、システム関連ファイルも操作できます。‘Path Finder.app’<http://www.cocoatech.com/pathfinder/>などの高機能ブラウザであれば文句無しですし、無償のファイルブラウザも探せばいくつかあります)

少し落ち着いたので、「Mavericks Finder スロー」などのキーワードで検索すると、どうやら、10.9 Mavericksでかなりの確率で発生している症状<http://osxdaily.com/2013/11/13/fix-finder-slow-high-cpu-use-mac-os-x/>のようです。
このOS X Dailyの記事によると、犯人(?)は‘com.apple.finder.plist’のようで、対処策は私がやった方法よりも随分と直接的で簡単です。

$ rm ~/Library/Preferences/com.apple.finder.plist; killall Finder

ターミナルで、この1行でOKです。
(OS X Dailyの記事のコメント欄には、‘PRAM’のリセットで直るという書き込みもありますが、どうでしょう?)

■タブ機能のカスタマイズ

iOSとOS Xのシームレスな統合(?)への歩みなのかどうなのか、FinderをSafariのタブと相似したタブ機能を実装してきました。
(この辺りのことは、TidBITS日本語版の1198号<http://jp.tidbits.com/TidBITS-jp-1198.html#lnk5>に詳しい解説があります)
併せて、メニュー「ウインドウ」メニューに「前のタブを表示」「次のタブを表示」「すべてのウインドウを統合」などが追加になっています。
ショートカットもSafariと同じですが、私の環境では「コントロール+タブ」が別なショートカットとコンフリクトするので厄介です。
そこで、「システム環境設定」のキーボードからショートカットを書き換えました。

前のタブを表示→⌘+シフト+[
次のタブを表示→⌘+シフト+]

TextWrangler.appのタブの切り替えショートカットに合わせた次第です。
ついでに、

すべてのウインドウを統合→⌘+コントロール+M

-1

もう1つついでに、タブを追加する方法として、タブの右横にある「+」アイコンにフォルダをドロップすると、そのフォルダのタブが追加されます。

1

■スプリングフォルダの手動でのオン/オフ

Mac OS X Hintsの記事<http://hints.macworld.com/article.php?story=20131121010446605>で知りました。
スプリングフォルダは便利な機能ですが、フォルダの深い階層を辿っているときに意図しないフォルダウィンドウが開いてしまうことがあります。その動作をキャンセルさせるためにウィンドウの外にポインタをもって行くと、ウィンドウが閉じるのはいいのですが、アイコン表示の場合は一番最初の階層に戻ってしまうので、また最初からやり直しになってしまいます。ドラッグ&ドロップをマウスでやっているときには未だいいのですが、トラックパッドでこうなると辛いものがあります。
そこで、
最初から、Finderの環境設定(⌘+,)でスプリングフォルダをオフにしておきます。
そして、フォルダ/ファイルをドラッグしながら、目的のフォルダのアイコンの上で「スペースキー」を打ちます。

  • アイコン表示モードの時は1回、リスト表示の時は2回
  • スプリングフォルダが開きます

これは便利です。