Vistaについて語るPart1

さて、Windows Vistaのコンシューマ向けリリースからもう1か月を過ぎました。もう家のマシンをVista環境にしてきた方も多いのではないでしょうか。私はVistaとはBeta1からの付き合いなのですっかりともう馴染んで業務でも家でもメインはVistaです。

今日はそんなことを思いつつ、Vistaまわりのネタをまとめようと思ったのですが、UAC、WRP、UIPIまわりをまとめたところで、『UACはWinLogonプロセスに始まりLSAでの認証時にトークンにフィルタをかけ、以降継承されるUserinit.exe、Explorer.exeから継承されるプロセスはそのトークンを引き継ぐから。。。』などということを言ってもつまらないし、皆さんご存じの方も多いと思います。なんで、今日は印刷まわりのネタをつれづれと書いていきます。

Vistaでは印刷まわりのアーキテクチャが大幅に変更されています。キーワードとしては、

  • XPS(XML Paper Specification)
  • PrintTicket, PrintCapabilities
  • Open Packaging Conventions
  • CSR(Client Side Rendering)
  • Windows Media Photo(XPSと直接関係ないですが)

というものがあげられると思います。

  1. XPS(XML Paper Specification)

XML Paper Specification では、XPS ドキュメントについて記述されています。XPS ドキュメントは、XML ベースの言語で記述される、ページ編集された電子ペーパーの表現形式です

これは、http://www.microsoft.com/japan/whdc/xps/default.mspxから抜粋させて頂いたものです。XPSは次世代の電子ドキュメントフォーマットです。これは、すべてのページレンダリング情報がXMLで記述されているものです。なんだ、PDFみたいなもんじゃん、となりますが、驚くのはここから。このフォーマットはスプーリングの際のデータフォーマットでもあるのです。つまりこのXMLデータは、PDFのような電子ドキュメントフォーマットでもあり、スプーラフォーマットでもあり、PDLでもあるのです。基本的にXPSドキュメントはそのフォーマットを維持したままプリンタハードで解析される、ということです。もちろんN-UPなどのハードのみの解析が難しいものについては、PDLへ変換されます(ここら辺はFilter Pipeline Hostにより部分的に変換されていくというイメージ)。
このフォーマットはPDFのオブジェクト構造と似たようなものになっていて、FixedDocumentSequenceをルートとしてFixedDocument、FixedPageに続きGlyph、Path、Canvasの要素で実際のページを表現していきます。これらXMLファイル群をOpen Packaging Conventionsの仕様に基づきZIP圧縮したものがXPSフォーマットとなります。このOpen Pakaging Conventionsでのパッケージングの際にデジタル署名を付与することができ、ドキュメントとして完全性を維持できたりRMSと連携が取れたりとセキュリティ面も考慮されているようです。詳しくは453ページ!にもわたるホワイトペーパーを読んでください;

  1. PrintTicket, PrintCapabilities

今までのDEVMODE情報(縦、A4、集約などの設定情報と思ってください)などもXMLで管理していこうというものです。今までのDEVMODEはベンダー固有の情報を考慮して可変な構造体になっており、それに伴いオーバーフローを発生させたり、ブルースクリーン発生の原因にもなっていました。PrintTicketはこれを解消するものです。ベンダー固有の情報についてはベンダー毎の名前空間を定義し拡張するようです。

  1. CSR(Client Side Rendering)

これは、XPSサポートに伴って今まではサーバ側でレンダリングされていた処理を、クライアントでもXPSに落とし込むことでレンダリング処理をしてしまおう、というもの。今までは、たとえばプリンタサーバを用意した運用だと、クライアントの印刷結果をEMF(GDIコマンドを列挙したもの)にして、サーバがそのEMFをレンダリングしていました(もちろんRAW送信も可です)。つまり、クライアントとサーバの保持しているシステムフォントが異なれば印刷されるフォントが異なってしまう場合も発生するのです。またEMFのバージョンの差異による影響なども。XPSのサポートによりこれが解決するものです。

  1. Windows Media Photo

Microsoftの新画像フォーマットであり、XPS内でもこれが採用されています。画像フォーマットあたりの仕様については勉強不足なためよくわかりません。離散コサイン変換?そんなのあったなーというレベルなもので;;
http://www.microsoft.com/japan/whdc/xps/WMPhoto.mspx

  1. プリンタパス

もちろん今までのGDIベースでの印刷も保証しなくてはならないので、これらXPS利用の際のプリンタパスとGDI利用時のプリンタパスは異なるものとなっています。途中でそれぞれへのコンバーターが用意されていて、その変換により、XPSDrvのプリンタに出したり、既存ドライバのプリンタに出したり、と、そのようになっているようです。


以上は、http://www.microsoft.com/japan/whdc/xps/xpsappdevs.mspxの下のWinHEC2006のセッション資料をまとめたものとなっています。まとめる過程で怪しい部分が多くあると思います(今回はあやしい部分かなりあり!ですご注意を)。間違ってたらすいません、ご指摘ください。正しい情報が知りたい方はぜひ一読を!

まあ、このXPSですが今後PDFにとってかわるものとなるのでしょうか、確かここらへんはAdobeが訴訟を起こしていたような気が;例のごとくEU独禁法の訴訟問題と合せてMicrosoftにとっては厳しい問題となっているのですかね。この動向などを考えてもビジネスにするのにもなかなか先攻がきりずらいかな、と思ったりもします。ゼロックスあたりがプリンタ印刷結果をXPSに変換しそれを直接SharePointへ送り完成形ドキュメントとして保存する、というシステムも提案されていたような気もしますが。XPSの仕様が標準化になる見込みがついたらよいのですが。最近は標準化ということが重要となってくるんでしょうかね(CLIの標準化含め)。


最後に話は変わりますが、やはりブログに書くことで知識の整理ができるのはいいことですね。1時間くらいの時間を集中して情報の収集、整理、文章に書き起こす、という、この流れが重要みたいです。