2010/02/11

AIR 2ベータリリース!

Adobe Labsのこちらのページによると、今月2日にAIR 2のベータがリリースされたようだ。リリースノートを見ると、ネイティブプロセスサポートだの、トランザクションだの、盛りだくさんの機能強化のようだが、ビジネスアプリケーションを開発している者として一番ありがたいのは、印刷機能が相当に改善されたこと。


こっちのページに印刷の新機能紹介のビデオがあって、簡単なデモも見れる。これによると、今回追加された主な機能はだいたいこんなところだ。
  1.  Macでもベクタ印刷が可能になった(これまではWindowsだけ)
  2. ビットマップ印刷の品質が大幅に改善された
  3. プリンタの情報が取れるようになった
去年Flexで印刷と印刷プレビュー機能を持つプログラムを作ったのだが、Flexの印刷のあまりの低機能ぶりに悩まされたものだ。まずビットマップの印刷品質が良くない。ビジネスアプリケーションなので大した品質を要求しているわけではないが、Excelみたいな普通のWindowsアプリケーションと比べて明らかにしょぼい。ま、それは我慢するとしても、最悪なのは印刷前にプリンタの紙の大きさや向きが取得できないことだ。印刷するとき、ユーザーは普通、まずプレビュー画面でイメージを確認してから印刷する。しかしFlexでは印刷するときまで紙の大きさや向きがわからないから、プレビュー画面を正しく表示できない。しょうがないので、プレビュー画面では、プリンタとは無関係に用紙の大きさや向きを変えられるようにし、そこでユーザーが「印刷」ボタンを押したときに印刷ダイアログを表示して、ユーザにプレビューのときと同じ設定(たとえばA4縦)を選択して印刷してもらうことにした(この印刷ダイアログが印刷する瞬間まで出せないのだ)。もしこのとき、ユーザーがプレビュー画面とは異なる設定を選択してしまうと、プレビュー画面とはまったく異なる形で印刷されてしまうが、それはもうどうにもならない。

このときは幸いにも試作プログラムだったので、実際にお客さんに提供することはなく、文句を言われることもなかったが、ビジネスアプリケーションに印刷はつきものなのでここを何とかしてもらわないと、Flex/AIRはちょっと使えない。というわけで、今回AIRで印刷周りが大幅に機能強化されたのはとても心強い。

ただ残念なのは、機能強化されたのはAIRだけで、Flexは今までどおりということ。PrintJobクラスのベータ版のオンラインマニュアルを見ても、新機能はFlexでは使えなさそうだ。セキュリティの関係でブラウザにホストされたFlexアプリケーションからはプリンタにはアクセスできないのかもしれない。ActiveXコントロールであればブラウザにホストされていても(少なくともやろうと思えば)ローカルのプリンタにアクセスできるのだが、、、Macとかの他の環境だとダメなのか、それともやってやれなくはないがセキュリティ的に自粛しているのか、、、。