MacOSXでPDFからJPEG(Automator編)

MacOSXでは、LeopardからAutomatorという機能があります。

このAutomatorとはWindowsでいうマクロのようなものなのですが、本日初めて使用して思いのほか強力で驚きました!

以前からこのブログでもPDFをJPEGに変換するネタは何回か取り上げていたが、何のことはないAutomatorを使用すれば簡単だったではないか!

ということで、Automatorで作成したソフトを公開します。

ダウンロード

ダウンロードして解凍したpdf2jpg.appアイコンにpdfファイルをドラッグアンドドロップをすると、フォルダを選択するプロンプトが表示されるので、フォルダを選択するとPDFがページごとにJPEG画像で出力されます。

なお、このアプリはAutomator.appにドラッグすると編集できますので、練習台としてもご利用ください。

Automatorについて

以下は今回ハマッたこと。

  • 各アクションに「入力を渡さない」のやり方が分からなかった。わかれば簡単で各アクションのタイトルバーを右クリックして「入力を無視する」を選択するだけだった。
  • 「シェルスクリプトを実行する」でシェルスクリプトに引数が渡せなくてハマったが、これは単純にAutomator内の入力エリアにPerlスクリプト等をそのまま書けばよいだけだったのを、外部のスクリプトを呼び出すのだと勘違いしていた。
  • 一部のアクションでは/private/var/folders以下にテンポラリフォルダを作成するのだが、バグ等でそのフォルダが残ったままになると次回以降実行が中断される。そのためコマンドラインでフォルダを削除する必要があった。(たぶん再起動等でも自動的に削除される?)
  • フォルダ名等に「変数」を指定する方法が分からなかった。これも下にある枠内からドラッグ&ドロップすればOKだった。

Automator内のアクションには、Perlスクリプトを直接書き込んだりもできるので、かなり利用範囲が広いかもしれませんね。

MacOSX(Snow Leopard)でPDFからテキストを抽出する

まずはじめに

PDFからテキストを抽出するには、pdftotextというコマンドをインストールする必要がある。

pdftotextをインストールするには、MacPortsが簡単なのであらかじめMacPortsをインストールすること。

MacPortsのインストールは以下のような手順で。

  • Snow LeopardのインストールDVDからXcodeをインストール
  • Snow LeopardのインストールDVDからX11をインストール
  • MacPortsの最新版を入手してインストール

pdftotextのインストール

pdftotextはxpdfというパッケージに含まれているのでそれをインストールする。

sudo port install xpdf

これだけだと日本語がうまく使えないので日本語のライブラリもインストールする。

sudo port install xpdf-japanese

設定

さらに、/opt/local/etc/xpdfrcに以下の3行を追加する。

textEncoding		UTF-8
cidToUnicode Adobe-Japan1 /opt/local/share/xpdf/xpdf-japanese/Adobe-Japan1.cidToUnicode
cMapDir Adobe-Japan1    /opt/local/share/xpdf/xpdf-japanese/CMap

参考

今日読んだ本

ちょっと古い本だけどBookOffで購入した。

なぜおいしいアイスクリームが売れないの? ダメな会社をよみがえらせる3つのレッスン (講談社BIZ)

一見、当たり前のことのようだけどこうやって分かりやすく説明してもらうと大切さを再認識できるいい本だった。

最近涙もろくて、最後のくだりはちょっと涙が出た。

Parallels4に64bit版のWindowsをインストール

いままで使っていたParallels上のWindows XPがどうにも重くなってしょうがないので、ひと思いに64bit版のWindowsをインストールした。

インストールしたのは以下の2種類のOS

  • Windows XP x64 Edition
  • Windows Vista Business x64 Edition

意外で驚いたのは、Windows Vistaがインストール直後は思いのほか軽快に動作したことだった。

ただし、これはぬか喜びで、Windows Updateを何回か繰り返してサービスパックのインストールが完了した頃には、起動に数分かかるレベルまで重くなってしまい、イラっときて削除した。(笑)

おもにWebアプリケーションのテストが目的なので、Vistaとは永久にバイバイだ。

64bit版と32bit版のWindowsの違い

やってみないと分からないもので、意外と互換性にいろいろあった。

互換性も含めた特筆すべき内容は以下の通り。

一部のソフトが2種類インストールされる

IEやMessangerなど一部のソフトウエアが32bit版と64bit版の2種類がインストールされることにちょっと驚いた。

よく見ると、Cドライブ以下のProgram Filesディレクトリも2種類あり、片方はProgram Files (x86)というフォルダ名になっている。

どうやら、32bit版のアプリケーションはこのディレクトリの中に保存されるらしい。

IEは、32bit版がデフォルトのブラウザになっており、64bit版をデフォルトにしたくていろいろと調べたのだが方法が分からなかった。

結局、Flashなどのプラグインが64bit版のIEに対応していないことに気がついたので、32bit版でしばらくは我慢することに。

ドライバの問題

これも考えてみれば当たり前なのかもしれないが、プリンタなどのドライバの互換性に気をつける必要があるようだった。

たとえば、9月に発売されたばかりのHP製のOfficeJet 7000は、Vistaの64bitには対応しているがXPの64bitには対応していないとのことで、インストールできなかった。

今回はParallelsだったからよかったが、そうでない場合は要注意。

その他

弊社の商売上、Webアプリケーションのテストができる必要があるので、以下のソフトもインストールしたが、これらは問題なく動作している模様。(現時点では!)

IE8以外のブラウザでは、[ヘルプ]でバージョンを見ようとするとエラーが出るが、それ以外は問題がなさそうだった。

まとめ

以上、XPの64bit版に関しては、Parallels上ではかなり軽快に動作しているがハードウエアには問題があるので、そこは我慢する必要がある。

Vistaに関しては、実用性ゼロ、ひどく重くてほんとにストレスがたまった。

ところで、なんでこのタイミングでXPとかVista?

WEB開発者がMacをつかうべき理由(2)

前回の記事に引き続きになるのですが、今回はちょっとまじめに。

ちなみに、ここでいうWEB開発者というのは、プログラマやサーバーエンジニアを指していて、デザイナーは含まれていないので悪しからず。

MacOSXは最も安く手に入る商用UNIXである?

正直言ってMacOSX = UNIXと呼ぶのは、つい最近までは正確ではなかったように思う。

少なくとも、現在のSnow Leopard(10.6)の一つ前のバージョンLeopard(10.5)からが正式なUNIXであって、それ以前のMacOSXはあくまでも自称UNIXであった。

と、余談はさておき。

Macでは統合開発環境が使えないからダメ?

PHPやPerlの開発を行う場合、多くの場合テキストエディタかEclipseなどの統合開発環境(IDE)を使用するのだが、私はIDEを使用することは個人的に良しとしていない。

その最も大きな理由が、IDEの使用方法そのものを覚えることが無駄に思えるからだ。
これからプログラマを学ぶ人にとって、このことは大きな負担になると考えている。

実際、テキストエディターから勉強させた方が遥かに早く覚えるという事例を何人も見た。

さらに、各個人々のIDEの設定やプラグイン等を統一させる必要があったりとか煩雑なルール作りが必要で、このことは生産性の低下につながると思う。

したがって、MacOSXを使用しないことの理由に、IDEの選択肢が貧弱であることがあげられるが、このこと自体はデメリットと感じていない。

MacOSX上での開発環境

IDEを使用しないという前提では、MacOSXはWindowsにくらべていくつかのすばらしい利点がある。

  • viやSubversionなどのコマンドが最初からインストールされており即座に利用できる。
  • pearコマンドやPerlモジュールのインストール、ソースのコンパイルなどが、実際のサーバーとほぼ同じように使用できる。(練習ができる!)
  • Apache+PHPがプリインストールされていることに加えて、MySQLも専用のバイナリが用意されている等、Windowsに比べてデフォルトで本番環境に近い。
  • 実際に本番環境で多用するであろうターミナルによるコマンドが充実している。

経験的にいうと、プログラミングの学習を最も困難にしているのは、その学習環境の構築にサーバー構築というさらに高いスキルが求められることだ。

これは、明らかに矛盾している。

そんなときにMacOSXでは、いきなりプログラミングの学習ができるので、これから学習する人にとっては非常にメリットが大きい。

テキストエディタはダメ

実は、MacOSXで開発を行うには、テキストエディタに期待できないことを覚悟する必要がある。

率直に言ってMacOSX用に出ているテキストエディターは、Windowsの秀丸やEmEditorと比べると明らかに劣っている。

有名なJeditも同じくで、EmEditorを使用していた私からみて、とても快適とは言いがたいものがある。
(検索とか文字のエンコーディングの検出精度とかUIとか、はっきり言ってひどい。)

ただし、おもいきってviを使用するようにしたら劇的に改善した。

特にSubversionを使用していると、ひとつのウインドウで作業が完結するのはとても大きなメリットで、CakePHPなどのフレームワークを使用する場合の作業性の快適さはすばらしいと思う。

最後に

この記事ではIDEを使用しないことなどを前提として書いているが、別にIDEを全否定する訳ではない。

たとえば、フレームワークによってはIDEと組み合わせることで高い生産性を確保できるものもあり、そういう場合はWindows+IDEになるのが当然だと思う。

あくまでも、周りのスタッフのスキルや開発環境などに左右されるものなので、どっちがベストかは神のみぞ知るだと思うが、もしteratermを年がら年中使用しているWindowsユーザーはMacOSXを試してみる価値があると思う。

WEB開発者がMacをつかうべき理由

はじめに申し上げておきますが、今回の記事はあくまでもシャレです。

ちょと気分転換と弊社のデジタルカタログ制作サービスの宣伝もかねて作ってみただけです。

すこしでもニヤリとしてくれる方がいれば幸いです。

Macをつかうべき理由 - デジタルカタログ

追伸

Windowsバージョンを作ろうと思ったのだが、本気でネタがない。
本当にMacのほうがWEB開発に向いてるのかな?

Snow LeopardでのMacPorts

MacPortsで以下のようなエラーがでることに気がついた。

dyld: Library not loaded: /opt/local/lib/libjpeg.62.dylib
 Referenced from: /usr/local/bin/pdf2swf
 Reason: no suitable image found.  Did find:
 /opt/local/lib/libjpeg.62.dylib: mach-o, but wrong architecture
Trace/BPT trap

とか

dyld: Library not loaded: /opt/local/lib/libfreetype.6.dylib
Referenced from: /usr/local/bin/pdf2swf
Reason: no suitable image found.  Did find:
/opt/local/lib/libfreetype.6.dylib: mach-o, but wrong architecture
Trace/BPT trap

など。

いろいろと調べた結果、MacPortsでインストールされるバイナリのいくつかはユニバーサルバイナリで、それらのコマンドが別のライブラリを使用する際に、そのライブラリもユニバーサルライブラリである必要があるらしい。

but wrong architectureのあたりがポイント。

ユニバーサルライブラリのインストール方法

ユニバーサルライブラリをインストールするには、以下のように+uiversalと入力すればいいらしい。

sudo port install jpeg +universal

とか

sudo port install freetype +universal

など

Snow LeopardへのアップグレードとMacPorts

Amazonで注文していたSnow Leopardが本日届いたので、さっそくアップグレードにチャレンジした。

Mac OS X 10.6 Snow Leopard

噂通り、アップグレードはとてもスムーズで、ほぼ全自動で1時間もかからないうちに完了した。
スムーズすぎて、終わったのかどうかが不安で、再起動してしまうほど。

こういうところは、Macらしくてすばらしい。

動作自体も思ったよりははるかにスムーズで、起動やTime Machineが早くなったことは体感でも感じることができた。

しかしながら、全く問題がないわけではなかった。

Parallels3が起動しない

これは仕様らしいので仕方がない気もするが、正直言ってこれは想定していなかったので参った。

仕方がないのでネットでParallels4を購入して、アップグレードして解決した。

Parallels Desktop 4.0 For Mac

MacPortsの再インストール

これは予測していたことだが、portsコマンドが動作しなくなっていたので、一度アンインストールしてから最新版をインストールすることにした。

アンインストールは以下のサイトを参考にして行った。

http://trac.macports.org/wiki/FAQ#uninstall

インストールは普通に。

  • Snow LeopardのインストールDVDからXcodeをインストール
  • Snow LeopardのインストールDVDからX11をインストール
  • MacPortsの最新版を入手してインストール

ちなみにPythonがうまくインストールできないが、これは近日中に改善されそうだし、取り急ぎ必要なかったので、スルーすることにした。

Snow Leopardが発売されたようです。

ついにMacOSXの新バージョンである、Snow Leopardが発売されました。

Mac OS X 10.6 Snow Leopard

噂ではパフォーマンスが劇的に向上したとのこと。

それにしても、Appleさんは相変わらず表現がうまい。

抜群の互換性。

誰とでも仲良くするのは、とても大切なこと。コンピュータだって同じです。Mac OS Xでは、Microsoft Officeを利用し、業界標準プリンタやカメラと接続できるだけでなく、Windowsを実行することも可能です。

http://www.apple.com/jp/macosx/compatibility/より

だれが考えてるんだろう?いつも同じ人?

ちなみに、これはおすすめです。

Mac Box Set

Snow LeopardとiWorkがセットになってます。

たしかに、Officeがいらないとまでは言いませんが、ドキュメントを作るには十分ではないかと思います。

そのままではSubversionに登録できないのが致命的なんですけど。。。

ところで。。。

よくWindowsユーザーよりもMacユーザーの方が維持にお金をかけてるとの記事を見ますが。。。

確かにそうなんだと思う、でもこれはいい意味で。

私も含めて、なぜかMacユーザーはみずから囲い込み戦略にはまっていく。

多少アプリケーションの起動が重くても、なぜか待ってしまう。

Windowsなら購入と同時にOffにするデスクトップの演出も、Macならハデにカスタマイズしたくなる。

マウスやキーボードのかっこよさにお金をかけてしまう。

うーーーん、あやかりたい。

ちなみに、本気で安く使おうと思えば、絶対Macのほうが安く使えます。

ベースがUNIXなので、オープンソースの資源をフル活用できる分だけ、わざわざソフトを購入しなくても、できることが圧倒的に多いと思う。

MacOSX上のSubversionで日本語ファイル名が扱えるようになった。

MacOSXにプリインストールされているSubversionでは、ファイル名やディレクトリ名に濁点つきの日本語を使用していると、ファイル名の有無をうまく判別できなかった。

仕方がないので今まではParallels上のWindowsからTortoiseSVNを使ってコミットしていたのだが、最近になってようやくMacPortsで上記の問題を解決できるようになった。

$ sudo port -v install subversion +unicode_path

実は、私の環境では上記のコマンドをいきなり実行しても、「Berkeley DBが古いよ」みたいなエラーが出てうまくインストールできなかったので、以下のコマンドを実行してMacPortsをアップデートしてから実行したらうまくいった。

sudo port upgrade installed

XCodeのバージョンが古いと怒られるので、エラーが出たらADCでXCodeの最新版を入手してインストールしてからやり直しましょう。

Spotlightでファイルサーバーの全文検索

先日気がついたのですが、Google Docsってドキュメント内の全文検索が出来ないんですね。

ちょっと意外。

Gmailを使うと分かるんですが、全文検索ができるとフォルダ分けなどをしなくても、必要なメールがすぐに見つかるのでとても便利です。

そんなわけで、弊社では昔はNamazu+Mecabでファイルサーバーを全文検索できるようにしていたのですが、現在はこんなのを開発中

Spotlight Web Interface

View SlideShare presentation or Upload your own. (tags: spotlight mac)

MacOSXのSpotlightという全文検索エンジンをブラウザから利用可能にしたもので、共有ファイルをブラウザから検索して、必要なファイルをダウンロードなんてことが出来ます。

Jpegや動画などのメタデータなど広い範囲のファイルフォーマットに対応しているので、ファイルサーバーとして利用すればとても便利です。

正式にはまだ公開していないのですが、オープンソースにする予定です。

システム開発に関するお問い合せは、シータネットワークスまで。