昨日のGlassFish Night Seminar発表資料ですが、ようやくPDF化して公開することができました。「GlassFishで、作ってみた。」今回はずいぶんとIllustrator CS3と、Adobe Distiller 8、それにひょっとしたらMac OS X Leopardに苦しめられました。その苦労話を・・。

まず、昨日の段階で資料をPDFに変換しようとしたら、Adobe PDFプリンタがいっこうに動き始めません(というか、動き始めてすぐ止まる)。何回やっても一時停止になるし、テストページの印刷でも同じだし、Firefoxなど別のアプリケーションから印刷しても同じだったのでこれはIllustratorではなくて明らかにAdobe PDFプリンタ、つまりAdobe Distillerの問題でした。EPSONのプリンタへはふつうに印刷できましたのでOSのプリントスプール側の問題でもなさそうです。

強引にスプール上のジョブを再開しようとすると上図のように、Operation Could not be completed.とエラーになり全く進みません。Mac OS Xシステム環境設定の「プリントとファックス」でAdobe PDFプリンタを削除してから登録し直してもだめ。システム環境設定で削除しておいて、Adobe Acrobat Professionalのメニューで「ヘルプ」→「Acrobat インストールの修復」でPDFプリンタを入れ直してもだめ。しょうがなく、Adobe Acrobat Professionalを再インストールしてみましたがそれでもだめ。

途方に暮れている頃に思いついたのがコンソールのエラーログを見ること。そうすると思惑通り、というかやっぱりDistillerがコケていることがわかりました。DistillerのCrash Reportをみると原因はSIGBUSで、常にThread 2がこけていました。Thread 2はCrash Reportのスタックトレースによると
Thread 2 Crashed: 0 com.adobe.DistillerLib 0x01147b80 DistillerFontFolders::GetFontCachePath(char**) + 32 1 com.adobe.DistillerLib 0x01157695 DistillerPSRip::SetupPSParameters() + 767 2 com.adobe.DistillerLib 0x01157aba DistillerPSRip::PSInit(void*) + 224 3 ...ple.CoreServices.CarbonCore 0x90662d41 CooperativeThread + 309 4 libSystem.B.dylib 0x93a176f5 _pthread_start + 321 5 libSystem.B.dylib 0x93a175b2 thread_start + 34
というようにGetFontCachePathという関数で毎回こけているようです。海外のフォーラムで同様の現象を報告している人の中で、$HOME/Library/Application Support/Adobe/ 以下にあるFontCacheディレクトリのパーミッションを変えたら直ったという人がいて、試してみましたがだめでした。もっといろいろ情報集めをしていたところAcrobatの8.1.2アップデートに更新しろと書いている人がいました。Creative Suiteを入れたときに2〜3回Adobe Updaterでアップデートしていたので当然Acrobatも更新されているものだろうと思っていましたが、バージョンを確認したら意外にも8.0.0・・・。

Adobe Updater、どこみとってん!一言愚痴を言わせてもらうと、Adobe Updaterの品質の低さは異常です。品質というか、ユーザアンフレンドリーさは、たくさんあるアップデートセンター系システムの中でも最低だと思います。まあ、そんな愚痴を心の中でつぶやきながらアップデート。

毎回Safariのプラグインを入れるかきかれますが、ブラウザ中にPDF表示するのって大嫌いなので必ずオフにしています。Acrobatを入れて最初にやることはブラウザ上に表示させないように設定することです。Mac OS XのPreviewもSafari内にいたがりますが、
$ defaults write com.apple.Safari WebKitOmitPDFSupport -bool true
というようにdefaultsコマンドで設定をオフにしています。さて、Acrobat 8.1.2にアップデートしたことでようやくDistillerが快調に動き始めました。テスト印刷もばっちりです。では、Illustratorで・・・。

あれ?各ページが1/2のサイズになって、しかも前後のページが半分ずつ各ページに入っています。2ページ目には1ページ目と3ページ目の上下が、3ページ目には2ページ目と4ページ目の上下が・・・。なにこれ。

Illustrator上では今回、ドキュメントサイズは幅297mm、高さ4200mm (A4横の用紙を縦方向に20枚並べた大きさ)に設定し、プリントの設定として用紙サイズA4横、セットアップでタイルに「用紙サイズで区分ける」、トンボと裁ち落としで裁ち落としを天地左右 0mmとしてページ分割されるように設定しました。あとはメニューの「表示」→「ページ分割を表示」とすれば印刷サイズにあった罫線が表示されそのようにデザインしやすくなります。ページ分割が表示されているとおり印刷結果が得られるだろうと考えていましたし、実際Tigerで使っていた頃はそう結果がえられたので何も疑問なくやっていましたが、いざおかしくなるとどうしていいかわかりません。

結局悩みに悩んでうまく行った方法が、プリンタをAdobe PDF 8.0ではなく、Adobe PostScriptファイルとして、PostScriptでの結果をまず得て、その結果をAdobe DistillerでPDFに変換する方法です。Adobe PDF 8.0プリンタも中身はDistillerのはずなので、釈然としませんが、とりあえずうまくいったのでこれでよしとします。そもそも、複数ページ(しかも20ページとか・・)のデザインをIllustratorでやることはあまり想定されていないのでしょうがないところですね。ああ・・InDesignがほしい。そういえば、Creative Suite 4が発売になりましたが、InDesignやAfter Effects・Premiereを含むMaster Collectionへのアップグレードが今持っているCreative Suite CS3 Web Premiumからだと$1,199なんですよね・・・。日本での値段はまだわかりませんが、ちょっとほしくなってきました。