WPF 対応アプリケーション

XPS で強化された新機能の恩恵を得るには、Windows Presentation Foundation (WPF) 対応のアプリケーションを使う必要があります。Windows Vita が、2007 年 1 月にリリースはされたものの、WPF 対応アプリケーションが存在しない空白期間が長らく続いておりましたが、ここに来て、ようやく多くの WPF 対応アプリケーションが発表され始めております。以下の Web サイトでは、これら WPF 対応アプリケーションの一部を紹介しております。



http://channel9.msdn.com/wiki/default.aspx/WPF.ApplicationPortfolio
http://windowsclient.net/community/showcase.aspx
http://msdn2.microsoft.com/en-gb/netframework/bb330852.aspx
http://blogs.technet.com/james/archive/2007/06/15/where-are-all-the-wpf-applications.aspx

PostScript から PDF への流れ

PostScript 言語は、強力なグラフィックス機能を兼ね備えたインタープリタ型のプログラミング言語なのである。すんなり読んでしまうところではあるが、PostScript はなんと「Basic の様なインタープリタ型のプログラム言語」なのである。PostScript 言語は FORTH とよく似ており、オペレータの前にオペランドを置く逆ポーランド記法を採用している。これがまた理解を難解なものにしている。





PostScript には、オペレータと呼ばれる組み込みの「コマンド」がビルトインされており、PostScript インタープリタはオペランドスタックに積まれたオペレータを順次ポップし消費していく。オペレータは、必要に応じ必要な数のオペランドをオペランドスタックから取り出し処理する。通常処理結果はオペランドスタックにプッシュされる。オペレータの中には、算術オペレータもあれば、if や for などの制御オペレータ、そして PDL として必須となる描画オペレータなど、実に様々なオペレータが存在する。これらのオペレターを駆使することにより、再帰を使った PostScript プログラムを書くことさえ可能であり、小さなプログラムで、面白い幾何学模様を作ることさえ出来る。





このように、プログラマーにはとても興味をそそる機能を持つ PostScript 言語ではあるが、OS に搭載される PostScript プリンタドライバの出力する PostScript プログラムには、あまり複雑なものは無い。プリンタドライバの生成する PostScript ファイルは、通常プロローグとスクリプトに分かれており、プロローグ部分では、PostScript の辞書機能を使い、Windwos GDI が使用する機能とのインターフェイスが取りやすいように、便利な手続きを独自の名前で登録する。実際のページ記述は、スクリプト部分で記載されているが、プロローグで登録した独自手続きの名前を多用しており、さらに手続きの中でその他の手続きを参照するなど、実に読みづらい。PostScript エラーの解析では、この解析に多くの時間がとられる。したがって、プリンタドライバが生成する PostScript ストリングスは、複雑ではないが実に難解だ。





このように、PostScript 言語で記載された印刷ジョブは、頭のプロローグの部分を処理しないと、ページ部分の記述を処理することが出来ない。またプロローグの定義は、その後のページ記述で置き換えることも可能であり、特定のページだけを処理するには、少なくともそれ以前のページを総て適正に消費することが必要となる。





1980 年代初頭に初代 PostScript が開発され、その後レベル 2 とレベル 3 という 2 つのメジャーな改訂が行われました。 Adobe Systems 社 (以降 Adobe) の尊敬すべき点は、いずれのバージョンにおいてもリファレンス・マニュアルを本で提供たことである(日本語版もある)。最初の PostScript リファレンス・マニュアルは、表紙が赤であった為、レッド・ブックという愛称でも呼ばれた。最新の PostScript リファレンスマニュアル第3版は背表紙が黒を基調としているのは、私的にはとても残念だ。Adobe は、初代 PostScript リファレンス・マニュアルと共に、チュートリアル&クックブック(ブルー・ブック)というイグザンプルを多く含んだ解説書と、PostScript プログラム・デザイン(グリーン・ブック)というプログラミングのテクニックを纏めた本、さらには、Adobe Type 1 Font Format Version 1.1 (ブラック・ブック(またはホワイト・ブック))という Type 1 フォント形式について解説した姉妹本を発行した。





PostScript Level 2 は、初代 PostScript のカラー拡張やコンポジットフォント拡張(OCF フォント)を取り込み、更に拡張したものである。CIE ベースのデバイス非依存カラースペースの対応も含まれている。PostScript 3 は、スムーズなシェーディング、CID フォントへの正式対応 (PostScript v2014 以前のものは、CSL (CID Support Library) を組み込むことにより対応可能)など、とても斬新な機能に対応し、多くの PostScript クローンベンダーを駆逐した。 しかしながら、PostScript は、現時点に至っても透過をサポートしていない。





PDF と PostScript は、同じ Adobe 社のイメージングモデルをベースにしているようである。PDF は PostScript 言語の大きな特徴でもあるプログラム能力は取り外された。 PostScript との大きな違いは、ページ毎に独立してアクセスできることである。ただし、PDF はページへのリンク情報が PDF の最後についており、基本的には PDF を一旦ファイルシステムに取り込んでから、RIP 処理を行うことになる。この点は、PostScript はファイルを受けながら処理(消費)ができるのに、残念だ。Adobe は、長い間 RIP 内部で PDF 形式を PostScript 形式に一度変換し、PostScript を処理していた。





PDF の機能は改訂を重ねるにつれ、次第に複雑なものとなり、PDF 1.4 で透過にも対応した。この時点で、上記変換プロセス(PostScript を中間ファイル形式とする)では透過に対応できないという大きな問題が露見した。しかしながら、長い間この問題は放置されてきた。 Adobe は、この問題に対処する為に、Adobe PDF Engine というものを開発し、PDF をネイティブに処理することにしたようだ。これにより、透過部分を分割・統合することなく処理が可能となった。この PDF のネイティブ対応は、これは何も画期的な機能ではなく、Harlequin RIP や Jaws RIP では初期の段階からネイティブに処理しており、むしろこの制約は Adobe の欠点とも言われていた。





現在、Adobe は、PDF 1.7 のフル仕様で、AIIM を通して ISO の標準化を進めている。国際標準なることは、PDF を生成するソフトウエアと PDF を処理するデバイス間での相互運用にとって好ましいことだ。 PDF にとっては、Acroabt Reader で開けるかどうかが唯一の、互換性の証明であり、実は仕様的におかしな、PDF も多く流通している。電子ドキュメントの形式は、囲い込みの時代からオープンな時代へと替わりつつあるようだ。





PostScript インタープリタは、言語仕様的にとても複雑で、私の知る限り天才的なプログラマーが開発している。また、その複雑さの為に、品質の高い PostScript プログラムを書き出すプリンタドライバの開発が難しく、また問題発生時に調査を行うのもひときわ困難なものであった。





※ 商標について
PostScript はAdobe Systems Incorporated の商標で、特定の法域で登録されている場合があります。
その他のブランド名および製品名は、各所有者の登録商標または商標です。

Global Graphics、XPS 標準化に向け最初の Ecma 技術ミーティングを主催

Global Graphics、XPS 形式を標準化するために結成された Ecma 国際技術委員会 (TC46) の第一回目のミーティングを主催





Global Graphcis の最高技術責任者 (CTO) である Martin Bailey が議長を務める TC46 委員会は、Microsoft® によりWindows Vista™ と共に導入された、新しい印刷とドキュメントの形式である XML Paper Specification に対する公式な業界標準を策定する作業を始めるために、UK ケンブリッジの Queens’College で初会合を開催。





TC46 委員会は、Autodesk, Inc., Brother Industries, Ltd., Canon Inc., Ecma International, FUJIFILM Corporation, Fujitsu Labs, Global Graphics Software Ltd., Hewlett-Packard Company, Konica Minolta Holdings, Inc, Lexmark International Inc., Microsoft Corporation, Panasonic, Quality Logic Inc., Ricoh Company Ltd, Software Imaging, Toshiba Corporation, Xerox Corporation とZoran Corporation. の代表から構成されております。





TC46 は、6 月28 日に開催された、Ecma International 総会で設立されました。Ecma は、次のように述べております。「ユーザーは、XPS の標準化により、多くの電子ペーパーシナリオを通して得られる利益を享受することが可能になります。これらには、改善されたドキュメントのアーカイブ、ドキュメント周辺機器とアプリケーション間のより良い統合、そして印刷パフォーマンスと忠実性の改善が含まれ、複数ベンダによる実装が完全に相互運用可能であることが保障されます。」





Martin Bailey は次のように述べております。「TC46 は、完全にドキュメント化された明瞭なXML ベースの電子ペーパー形式の標準を開発するための方法に合意しました。また我々は、これから数ヶ月間にわたるロードマップを決めました。おおよそ、最初の会合は大変建設的で、目的のすべてを達成しました。」



PDF ファイルの作成方法

通常 Windows 環境上で、PDF ファイルを作成するには、以下の方法が使われます。



1.GDI 型のプリンタ ドライバを使用し、GDI 形式を PDF に変換する。



この方式では、GDI 型のプリンタ ドライバに GDI 形式から PDF に変換する変換エンジンを搭載し、アプリケーション ソフトウエアからの印刷で、PDF ファイルを作成します。GDI 形式のプリンタ ドライバでは、RGB カラースペースにしか対応できない為、RGB に限定された PDF ファイルとなります。また、PostScript をベースにしている EPS (Encapsulated PostScript) ファイルを取り扱うことが出来ません。



2.PostScript プリンタ ドライバを使用し、GDI 形式を一旦中間 PostScript 形式に変換し、その後 PDF に変換します。



この一連の変換処理は、シームレスに連携して動作するので、ユーザーは中間形式である PostScript を意識する必要はありません。ユーザーは、アプリケーション ソフトウエアから PostScript 形式のプリンタドライバに印刷を行うことにより、PDF ファイルを作成します。一部アプリケーションは、PostScript 形式を直接生成(GDI の仕組みを経由せずに)できるものもあり、パススルーの仕組みにより GDI の制限を受けずに PDF ファイルを作成できます。最新の PostScript 3 形式は、約 20 年前に開発された GDI 形式よりもリッチなグラフィックスに対応しており、また PDF は元々、PostScript 形式をベースにして開発されているので、パススルーにより品質の高い PDF ファイルを作成できます。CMYK カラースペースや EPS ファイルにも対応できます。



3.アプリケーション ソフトウエアから直接 PDF ファイルを作成する。



この方式では、PDF の能力をフル活用した PDF ファイルを作成できるが、開発には PDF の深い知識と多くの開発努力が必要です。グラフィックアートで使用されるプロフェッショナル アプリケーション ソフトウエアでは、多くのケースで直接 PDF ファイルを作成しております。この方式では、PDF ファイルの作成を直接制御できるので、PDF の様々なエコシステムを組み込むのに適しています。この方式では透過を含む最新のグラフィックスに対応した PDF ファイルを作成できます。



■ 次世代の PDF ファイル作成方法



Windows Vista 上で、Win32 アプリケーションを使う場合には上記 3 種類の PDF ファイル作成方法が引き続き使われます。しかしながら、Windows Presentation Foundation (WPF) アプリケーションでは、リッチなグラフィックスに対応した XPS ファイル (XPS Spool File) を直接生成するので、XPSDrv プリンタ ドライバで XPS 形式から PDF 形式に直接変換するのが、品質を保持する上で好ましいと考えられます。従来の GDI プリンタドライバ型の PDF ファイル作成も引き続き使用することも可能ですが、WPF 対応アプリケーション ソフトウエアからは XPS-to-GDI Conversion Path (XGC) を通す必要があり、せっかく XPS で強化されたリッチなグラフィックス、たとえば透過、RGB 以外のカラースペース、スムーズなグラデーション等が失われ、品質の高い PDF ファイルを作成することができません。 勿論、アプリケーション ソフトウエアから直接 PDF を作成する場合には、引き続き品質の高い PDF を作成できます。

HD Photo とは?

HD Photo は、新しいイメージ形式であり、ディテイルの再現性に優れ、広いガモットに対応できる広いダイナミックレンジのイメージ用にデザインされております。当初 Windows Media Photo (WM Photo) と呼ばれておりましたが、Vista がリリースされる直前に HD Photo と改名され、結果として現存するドキュメントで両方の名前が混在しております。



HP Photo は、可逆(Lossless) 圧縮、高品位非可逆(Lossy) 圧縮、多くのカラー形式、整数値もしくは浮動小数点値による広いダイナミックレンジ対応、複数解像度、サブ領域、ICC プロファイルの埋め込み等多くの最新の機能に対応しております。HD Photo v1.0 の仕様は以下の Web サイトからダウンロードできます。



http://www.microsoft.com/whdc/xps/wmphoto.mspx



XPS は、HD Photo 形式をサポートしており、XPS 内部に組み込むことが可能です。XPS でサポートされる Media Photo 機能に関しては、XPS (XML Paper Specification) の仕様の 2.1.5.4 章を参照ください。XML Paper Specification (XPS) V1.0 の仕様は以下の Web サイトからダウンロードできます。



http://www.microsoft.com/whdc/xps/xpsspec.mspx



HD Photo 以下の2つの大きな特徴を持ちます:



● 最新のイメージ圧縮アルゴリズム、通常同じ品質にて JPEG ファイルに比較し、小さく圧縮が可能です。Microsoft は、HD Photo ファイルは、通常同等品質の JPEG ファイルに比べおおよそ半分のサイズになると説明しております。圧縮率の観点では、HD Photo は、JPEG 2000 に近い形式であると言えます。



● JPEG 形式よりも、細やかな色調の記録が可能になります。JPEG は、8 bit / color / pixel に制限されており、結果として 256 カラーレベルまでしか表現できません。一方、HD Photo は 32 bit / color / pixel までに対応でき、現存するデバイスが記録できるレベルよりも多くのカラーレベルに対応できます。



2007 年 3 月に、Microsoft は、HD Photo 仕様を、標準化のために国際標準化団体に提出しました。同時に、Adobe Photoshop で HD Phto イメージを読み書きするためのプラグインのベーター版をリリースしました。以下、Microsoft の Web サイトからダウンロードできます。



http://www.microsoft.com/downloads/details.aspx?FamilyID=b157ca0f-083f-4957-9aa3-4da1de3dc20b&displaylang=en



JPEG と比較して HD Photo が、より小さなファイルサイズに、そしてイメージ品質の向上が達成されるのであれば、デジタル カメラへの採用が促進されると思われます。

XPS と PDF との相違

もっとも顕著な相違点は、PDF は Adobe Systems (以後、Adobe) が開発した、ポータブルな電子ドキュメントの形式であり、XPS は Microsoft Corporation (以後、Microsoft) が開発した新しい印刷と電子ドキュメントの形式であるという点です。



PDF は、主に電子ドキュメント用のページ記述形式として使われており、一部 PDF ファイルを直接印刷デバイスに送り処理するデバイスもあるが、Acrobat Reder で一度 PDF ファイルを開いてから印刷するのがより一般的である。従来の Adobe PostScript RIP では、一度 PDF を PostScript 形式に変換してから処理していたが、最近リリースされた Adobe PDF Print Engine では、PDF を直接解釈し処理できるようだ(Harlequin RIP や Jaws RIP では、従来からネイティブに PDF を解釈し、処理している)。また PDF の構造から、一度印刷デバイス内のファイル システムに取り込んでから処理を開始する必要があり、そのためにストレージ デバイスが必要となる。一方、XPS の守備範囲は、Windows Vista における新しい印刷スプール形式、電子ドキュメント形式、そして印刷デバイスで解釈される PDL と、3 つのアスペクトからなる。また、ストリーマブル XPS 形式に変換することにより、ファイルを受けながら処理を開始することも可能である。



XPS は XAML (ザムル)のサブセットであり、Windows Vista 上の Windows Presentation Foundation (WPF) アプリケーションでは、XAML を使用してスクリーン表示をしているので、XPS 形式は、Windows Vista 環境でのスクリーン表示との大変相性が良い。 一方、PDF は、PostScript をベースとして開発された電子ドキュメントの形式であり、PDF のグラフィックス プリミティブは、PostScript のそれと基本的に同じである。したがって、当初 PDF 形式を PostScript 形式に変換して処理していたが、これは大変理にかなった方法であった。しかしながら、PostScript の進化が停滞する一方で、PDF は進化を続け、PDF 1.4 では透過 (Transparency) をサポートするに至り、PDF から PostScript への変換が必ずしも理にかなわないものとなった。一方、PostScript は、GDI の中でも特権階級扱いであり、Version 3 Driver 内に Pscript5 ドライバが組み込まれ、GDI の制限(例えば RGB) を許容できないアプリケーションでは、直接 PostScript を生成し、パススルーで直接プリンターに送ることもできた。しかしながら PostScript も GDI も何れも透過に対応できず、両者とも最新の WPF アプリケーションには適さない。



Windows Vista 上で、高品質な PDF を生成するには、アプリケーションから直接 PDF を生成するか、XPS 形式から PDF 形式に変換する方法が好ましい。一方、XPS の場合には、すべての WPF アプリケーションから高品質な XPS ファイルを MXDW (Microsoft Document Writer) を使用して生成できる。



次にファイル作成・表示環境の相違いについてコメントしたい。PDF の表示は、フリーで提供されている Acrobat Reader を Adobe の Web サイトからダウンロードすることによりだれでも PDF ファイルを表示できる。しかしながら、PDF の作成に関しては、PDF 作成アプリケーションを別途購入する必要があった。一方、XPS の場合、Windows Vista からは、プリインストールされた MXDW ドライバを使用して、だれでも XPS ファイルをフリーで作成することができる。また、表示に関しては、Vista にプリインストールされた Internet Expoler で表示することができ、さらにフリーの XPS Viewer EP というアプリケーションをインストールすれば、ズーム機能や検索などの機能が使えるようになる。



次に機能的な相違について少しコメントしたい。エコシステムに関しては、電子ドキュメントとして長年の経験・実績を有する PDF の方が、アプリケーションへの履行の面でかなり進んでいるが、印刷時の機能的な差異はさほどない。むしろ、PDF ではフォントを埋め込まない選択ができることにより、商業印刷の現場で数々の諸問題を引き起こしていたが、XPS では原則的にフォントの埋め込みとなる為、この種の問題は発生しない。むしろ、XPS は PDF/X-3 に近い形式と言える。さらに、XPS では、HD Photo (当初 Windows Media Photo (WM Photo) と呼ばれていた)のサポートにより、32 bit / pixel までのイメージのサポートが可能である。さらに、XPS は PDL としての位置付けも持つ形式なので、印刷デバイスを設定するコマンドをプリントチケットとして XPS に組み込むことも可能だ。



数的には定かではないが、非常に多くの PDF 作成アプリケーションが市場で使われていると想像されます。しかしながら、MXDW ドライバが Windows Vista に標準バンドルされるので、Windows 環境ではかなり早い時期に、XPS の作成エンジンの数が PDF 作成エンジンの数を上回るようになると思われます。ただし、今のところ XPS を開くことができるプラットフォームは、Windows Vista (XP と Server 2003) に限られており、一方、PDF では、Windows, Machintosh, Symbian, Palm OS, Windows Mobile, Linux, HP-UX, AIX, そして Sun Solaris 等多くのプラットフォームに対応したビューワを Adobe は提供している。その名前が示すように PDF は、ポータプルなドキュメント形式として既に定着している。



また、2006 年 6 月末、Ecma International は、XMLベースの電子文書形式と、XMLベースのページ記述言語の正式な標準を策定するために、技術委員会 46 (TC46) を立ち上げ、ISO での標準化に向けての作業を進めており、一方 Adobe は、2007 年 1 月 PDF 1.7 の全仕様を標準化団体である AIIM (Enterprise Content Management Association) に譲渡し、国際標準化機構(ISO)による標準化を目指している。



XPS のさまざまな印刷方法

Windows Vista では、新しい 「XPS プリントパス」(従来は GDI プリントパス)という次世代のプリント アーキテクチャを採用しました。フィルタベースの XPSDrv プリントドライバが、フィルタ パイプラインの中にフィルタとして組み込まれます。Windows Presentation Foundation (WPF) アプリケーションは、印刷時に WPF Print API を使用して、XPS Spool File を作成し、Print Spooler にスプールします。Print Spooler へのスプール処理が完了すると、Print Spooler はシグナルを立て、Filter Pipeline Manger が、Filter Pipeline Configuration File 内の情報を使用して Filter Pipeline を構築します。Filter Pipeline の初期化が完了すると、Filter Pipeline Manager は、最初のフィルタに対し、XPS Spool File の読み込みを指令します。その後、パイプライン内のフィルターを Inter-filter Communicator (IFC) を経由しながら受け流し、最終的に印刷デバイスで処理可能なページ記述形式(PDL) もしくはラスタ形式に変換します。もし従来の GDI プリンタドライバしか利用できない場合には、XPS-to-GDI コンバージョン パスを通して EMF Spool File 形式に変換し、従来の GDI の仕組みを通して印刷させることも可能ではあるが、XPS をネイティブ(他の PDL 形式に変換せずに)処理することは、XPS の利益を最大化する上で重要です。



XPS を処理する方式を、以下に幾つか紹介します。



1.ホストベース型



フィルタパイプライン内の XPSDrv プリントドライバ内部に XPS RIP (Raster Image Processor) を搭載し、印刷デバイスで直接処理できるラスタ形式に変換します。XPS 形式は、従来の EMF Spool File 形式に比較して、重い形式なので、特にパフォーマンスの観点で高度にオプティマイズされた XPS RIP が求められます。



2.コンバージョン型



フィルタパイプライン内の XPSDrv プリントドライバ内部で、XPS Spool File を従来の印刷デバイスがサポートしている PCL や PostScript といったページ記述言語(PDL) に変換します。この場合、従来の PDL は、XPS よりも通常機能が低いので、品質や忠実性をいかに落とさないかが重要です。例えば透過をサポートしていない PDL の場合には、透過レイヤーをフラット化する処理を XPSDrv 内部で行う必要があり、XPSDrv 内部で XPS の RIP 処理が必要となります。この方式は、ページをすべてラスターイメージ形式に変換するよりも、開発の難易度は高いと思われます。その意味では、PDL に精通したエンジニアのみが開発可能である。



3.組み込み型



XPSDrv では、プリントチケットの処理のみを行い、XPS ファイルを印刷デバイスに送り、デバイス側に搭載された XPS RIP にて解釈しラスタライズさせます。XPS 形式は、従来の PostScript や PCL に比較し、処理が重い形式なので、パフォーマンスの観点で高度にオプティマイズされていることが特に重要です。また透過をサポートする為に、多くのメモリーリソースが必要となる。この組み込み型では、ディスクレス対応、リアルタイム OS 対応、RISC プロセッサーへの対応が求められます。通常、組み込み型では、複数の PDL に対応しているため、複数の PDL 形式にスケーラブルに対応できることが要求される。



4.スケーラブル型



これは、スケーラブル コンサンプションを使用する方式である。いろいろな履行シナリオが考えられるが、組み込み型コントローラのハードウエア コストを最小化できる良いアイディアである。例えば透過の処理を、印刷デバイスで行わなくて済むように、上流工程の XPSDrv プリンタドライバ内で前処理を行うことが考えられる。



5.サーバー型



これは、プリントサーバー内で XPS ファイルを処理し、印刷デバイスで印刷できるラスタ形式に変換する RIP 処理をサーバー上で行う方式である。XPS 形式だけでなく、PostScript や PDF に対応することで、プリント フォー ペイ市場に最適なソリューションとなる。なぜなら近い将来、Mac ユーザーは、PDF (PDF/Xを含む)で入稿し、Windows ユーザーは、XPS 形式で入稿するようになると予想されるからである。



この様に、多くのシナリオで XPS の印刷を履行できるが、高速な XPS RIP を使用することと、メモリーや CPU パワーをどれだけ削減できるかが、プリンタメーカーの大きなチャレンジだ。また、ネイティブに処理することで、XPS の利益を最大化できる。



参考資料: Global Graphics の各種資料 (http://www.globalgraphics.com)
Microsoft の XPSDrv Configuration Module Implementation 資料
Microsoft の XPS XPSDrv Filter Pipeline 資料



XPS の構造

XPS (XML Paper Specification) は、Microsoft が Windows Vista と共に開発した、次世代の印刷スプール ファイル形式であり、電子ドキュメント形式であり、印刷デバイスで用いられるページ記述言語 (PDL) でもある。Windows Vista では、スクリーン表示に XAML (ザムル) と呼ばれる、GDI に置き換わるグラフィカル インターフェイスを採用し、リッチなグラフィックスをサポートしている。XPS は XAML のサブセット形式であり、固定ページ形式用にデザインされたものです。



XPS は、最先端のテキスト、ベクターグラフィックス、イメージ、そしてフォントやカラープロファイルなどの、リッチなドキュメントの表示・印刷に必要となるリソースを含め、様々なコンテンツを運ぶためのコンテナ形式です。さらに、注釈やメタデータなどの備えもある。ファイル内部のそれぞれのページは、独立した XML ストリーム(FixedPage) として保存されている。更にそのページは、ドキュメント(FixedDocument) に含まれ、それぞれのドキュメントは、独立した XML ストリームで、FixedPage ストリームを参照します。更に FixedPage ストリームは、ドキュメント、必要なリソースそして関連するメタデータ等で構成されています。それから、ドキュメントは、FixedDocument Sequence XML ストリームと呼ばれるジョブに含まれます。



これら、すべてのコンポーネントは、ZIP アーカイブに束ねられており、ユーザーは一つのファイルのみを扱うことになります。ZIP アーカイブの仕様とコンポーネントの構造は、Open Packaging Conventions (OPC) に規定されており、これは Microsoft Office 2007 で使われているドキュメントと同じコンテナ仕様(内容は異なる)となっている。この OPC の規定に従い、デジタル署名を付け、ドキュメントが改ざんされていないことを保障したり、Microsoft Rights Management System (RMS) と連携し、Digital Right Management (DRM) セキュリティを付加することも可能だ。 これには、大変柔軟なドキュメントへのアクセス制御が可能で、個人毎、時間、場所などにより制御が可能となる。これは、Microsoftの Office SharePoint Server (MOSS) 2007 などの製品に RMS を組み込むことにより実現できる。



それぞれのページ、ドキュメント、そしてジョブは、それぞれプリントチケットを持つことができ、印刷デバイスの設定を埋め込むことができる。ページレベルの印刷設定は、一般的にドキュメントレベルの設定を上書きし、またドキュメントレベルの印刷設定は、ジョブレベルの設定を上書きします。



このように、XPS は XML をベースとした、大変柔軟で拡張性の高いマルチパーパスの形式であり、現在 ECMA International で標準化が進められております。



GDI の問題点

XP と Server 2003 までの Windows では、Microsoft Windows Graphics Device Interface (GDI、正確には GDI+) と呼ばれるグラフィカル インターフェイスを、スクリーン表示と印刷スプールファイル形式 (スプールファイルは、EMF スプール ファイルと呼ばれる)に使用しておりました。GDI は印刷デバイス内部で用いられるページ記述言語 (PDL) としては多少使われました(1990 年代初頭から、GDI Direct という名称で使用されたこともありましたが、あまり普及しませんでした)が、電子ドキュメントとして使用されることはありませんでした。



初期の GDI は 20 年以上前に設計された言語であり、昨今の印刷デバイスの性能向上からの要件に対して、十分対応できないことが年を重ねるにつれ大きな問題となっておりました。そして Windows Vista で導入された、XAML / XML Paper Specification (XPS) がよりリッチなドローイング コマンドに対する高いレベルのサポートを提供し、グラフィカリにリッチなアプリケーションのデザインと印刷品質の向上を実現しました。



GDI は XPS やその他の最新 PDL 形式、例えば PDF や PostScript に比較して、グラフィックスの能力が限られておりました。例えば、GDI では、スムーズなグラデーションを直接サポートすることが出来ず(通常、同一の効果が発揮されるようにイメージで補ったり、非常に多くのオブジェクトを繋ぎ合わせ、色を少しづつ変えて同様の効果を演出したりしておりました。)、更に透過オブジェクトやイメージのマスクがサポートされておりませんでした。



したがって、アプリケーション内部で、グラデーションや透過の表現を、限られた GDI の機能を駆使して表現しなければならず、場合によっては正しく表現されていなかったり、大変遅い履行もありました。



更に、GDI は RGB スペースに制限されているということがあげられます。GDI は多くのカラー 印刷デバイスで使用されている CMYK カラースペースに対応しておらず、またモノクロ印刷デバイスで使用されるブラック カラー ナットにさえ対応しておりません。またスポット カラーや Hi-fi カラーそして Photo-ink ディバイス カラースペース(多くのインクジェットデバイス用)にも対応しておりません。



PostScript 言語対応プリンタを含むデバイスへの印刷時に、もしアプリケーション ソフトウエアが、プリンタ ドライバに頼ることなく、各ページを表現するために PostScript 言語ファイル等の印刷デバイス用のページ記述言語 (PDL)ファイルを生成できれば、これらの多くの制限は回避できました。この場合、アプリケーション側で生成された PostScript ファイルは、PostScript プリントシステムを通してプリンタに直接送られます。この方式は、パススルーと呼ばれプロフェッショナルな商業印刷用のアプリケーションにより広く実装されましたが、オフィス向けアプリケーションではあまりメジャーにはなりませんでした。



この様に、GDI は昨今の印刷デバイスの性能に対し、大変貧弱な仕様であり、昨今の印刷デバイスの品質と性能をフルに発揮できません。今後、Windows Presentation Foundation (WPF) 対応アプリケーションが普及するにつれ、リッチなグラフィックスの恩恵を最大化でき、印刷デバイスの性能を使いこなすアプリケーションが Windows Vista 用に現れると思われます。



XPS ドキュメントの生成と表示方法

■ XPS ドキュメントの生成



Windows Vista 環境では、すべてのアプリケーション ソフトウエアから XPS ファイルを生成できる。その方法は至極簡単で、すべての Windows Vista にプリインストールされている、Micorosoft XPS Document Writer (MXDW) プリンタに印刷すればよい。Windows XP と Windows Server 2003 環境でも、.NET 3.0 Framework をマイクロソフトの Web サイトからダウンロードし、インストールすることにより、MXDW ドライバが使用できるようになる。



もし Windows Vista、XP (SP2) もしくは Server 2003 環境で、Microsoft Office 2007 を使用しているのであれば、"2007 Microsoft Office プログラム用 Microsoft XPS 保存アドイン" もしくは "2007 Microsoft Office プログラム用 Microsoft PDF/XPS 保存アドイン" をマイクロソフトの Web サイトからダウンロードし、インストールすることによって、8 種類の 2007 Microsoft Office アプリケーションから XPS 文書形式でエクスポートまたは保存できるようになる。この方法による XPS ファイルの作成は、MXDW ドライバの印刷で XPS を作成するよりも、幾つかの点で優れている。例えば、幾つかの透過やスムース シェーディングを保持できる。これは、非 WPF アプリケーションからは、XMDW が GDI to XPS Conversion (GXC) パスを通すことを考えれば容易に理解できる。



■ XPS ドキュメントの表示



Windows Vista 環境では、XPS は Internet Explorer 7 に組み込まれている XPS Viewer により XPS ドキュメントを閲覧することができる。これは、.NET 3.0 Framework をインストールし、Internet Explorer 7 にアップデートすることにより、Windows XP や Server 2003 上でも利用可能である。Windows Vista、XP そして Server 2003 上では、XPS Viewer EP というビューアが、XPS Essentials pack をマイクロソフトの Web サイトからダウンロードし、インストールすることにより利用可能になる。



XPS Viewer EP では、XPS 文書の表示や印刷の他、検索が可能であり、さらにページの表示倍率はスライドバーで 10% から 3,000% までリニアに拡大縮小できる等なかなか快適に動く。スライドバーで縮小してくと、ページの縮小イメージを並べて表示し、サムネール感覚でクリックし、指定したページへ移動できる。



Microsoft XML Paper Specification Essentials Pack (version 1.0) は、以下のマイクロソフトの Web サイトからダウンロードしてインストールできる。



http://www.microsoft.com/downloads/details.aspx?FamilyID=b8dcffdd-e3a5-44cc-8021-7649fd37ffee&displaylang=ja