Mozilla における Xprint
アップデート
ディスカッションフォーラムXprint に関するディスカッションは netscape.public.mozilla.unix ニュースグループで行われています。Mozilla Unix ニュースグループおよび Mozilla Unix メーリングリストにポストされたメッセージは相互転送されます。メーリングリストに subscribe あるいは unsubscribe できます(本文はブランクにしてください)。リンク
(注意:Xprint モジュールは RedHat の RPM ビルドでは明示的に使用不可になっています。- バグ 133534 を参照してください。) Xprint 出力サンプル |
偉大なる目標
当プロジェクトの主要優先事項は、Unix/Linux に非常に先進的なプリントモジュールを提供し国際的な印刷のニーズを満たすことです。(次のような言語およびアルファベットを含みます:アラビア語、中国語、キリル語、ギリシャ語、ヘブライ語、インド語(デーヴァナーガリー語、タミル語など)、日本語、韓国語、ポーランド語など)その他の目標は以下のようになっています:
- 接続されているローカルおよびリモートプリンタの自動設定と自動検出 (サポートしている全プラットフォーム上のスプーラシステム全てで動作するはずのもの - つまり CUPS、LPRng、AIX、*BSD、HP-UX、Solaris など)
-
プリントダイアログにプリンタがサポートする値のみを提供(例:プリンタが
DIN-A0印刷のみをサポートするのであれば、用紙サイズとしてDIN-A0だけを提供する -A0のみサポートしているポスタープリンタにDIN-A4印刷オプションが表示されることはもうありません) -
ローカリゼーション(l10n)およびロケール毎の設定の提供(例えば、
en_US(またはそれに類似の) ロケールならデフォルトの用紙サイズがUS-Lettterになり、de_DEの場合にはDIN-A4になる。 - MathML 印刷サポート
- TrueType およびプリンタ組み込み済みフォントの印刷サポート
- X11 サブシステムがサポートするフォント全て(例えば、TrueType、PS Type1、PCF、BDF など)での印刷サポート
- 必要なフォントがインストールされていないプリンタでの印刷サポート(例えば自動フォントダウンロード)
- PCL や PDF といった、PostScript以外の出力、およびプラットフォームあるいはサイト依存解釈のサポート
- 非常に融通のきく細かい、共通設定やユーザー毎の設定の提供(例えば、ユーザー毎、マシン毎、ネットワーク毎、ロケール毎など)
- 企業や大学などのようなエンタープライズ機能や、80000 アカウントを軽く超えるような非常に多くのアカウントを管理しなければならないような大規模サイトサポートの提供
- コードメンテナンスの簡易化(Mozilla の Xprint モジュールはメインの X11 ツールキットが使っているソースのうちの 95% までを共有しているので、このレイヤーに大きな変更があってもほとんどの場合に Xprint モジュールに直接適用するかちょっと手を加えるだけで移植できます。)
-
古くなっている PostScript モジュールの完全な置き換え(または替わり
:))の提供
現状
Mozilla 0.9.8 以降、Xprint モジュールは完全に実用的であり本格稼働に使用できる準備が整っています;Mozilla 1.0.1 以降、(注: Netscape 7.0 は Mozilla 1.0.1 を基にして作られています) 最後のメジャーな機能やバグフィックスは終了しています(詳細は bug 149768 にあります)。現在のメインの焦点は Xprint のサーバーサイド( xprint.mozdev.org を参照)を強化し新機能をもたせることです(Xprint の設計により、新しいバージョンのサーバーを使うと、サーバーサイドに付け加わった Xprint の新機能が既存のクライアントバイナリに自動的に「適用」されるようになります)。
Xprint を Mozilla での印刷に使用する
単に印刷してください!(Xprint サーバーサイドがインストールされて起動されているものと仮定しています。 Linux ユーザーは Xprint サーバーサイドを xprint.mozdev.org からもってきてください:)(詳細は usage ページにあります ... :)
インプリメンテーション
Xprint は二つの部分から成り立っています:-
クライアントサイド - Mozilla の Xprint モジュールのことです
クライアンドサイドは主に、Mozilla での Xprint コードとクラスプラットフォーム印刷コードの間のインタフェースを請け負います。Xprint API はコアの X11 プロトコルに非常に似ています(実は、X11 プロトコルを使用しています。さらに、X11 拡張機能を、グラフィックスカードとプリンタの差異に対応するために使用しています(例えば、グラフィックスカードへの出力では入りきらなかった内容は通常スクロールしますが、プリンタへの出力ではその代わりに複数ページに渡って印刷します))。したがって、ソースコードの大部分(95% まで)をメインのツールキットのソースと Xprint コードで共有することができ、メンテナンスや新機能を追加する際に大きく時間を節約することができます。
このコードレイヤーは、使用している OS および Xprint サーバーバージョンから独立しています。したがって、クライアントサイドとサーバーサイドのバージョンのどんな組合せも動作可能です。行き先(例えばプリンタ)がどのようにしてデバイス特有の項目を処理しているか、クライアントが知る必要がありません。こういったことは全て Xprint API に記述されていて、サーバーサイドにロードされます。
このアプローチには大きな利点が一つあります。サーバーサイドのアップグレードや新機能の追加(ドライバの追加や新しいフォントのサポート)をしても、古いバージョンのクライアントバイナリとでさえ動作するということです。さらに、様々なプラットフォーム上で動作している様々なバージョンのサーバーを同時に混在させることでさえ可能になります(一つのクライアントが使えるサーバー数は無限です。一つのサーバーが扱えるプリンタ数にも制限がありません)。 -
サーバーサイド - Xprint サーバーのことです(バイナリは「
Xprt」と呼ばれます)
Xprint サーバーサイド - 一つのデーモンプロセス(あるいは複数の - 必要な数だけ) - には、出力生成コード(例えば PostScript、PCL、PDF、など)およびプラットフォームあるいはドライバ特定のプリンタ、スプーラ、フォント、設定レポジトリコードが存在します。
しかし、これは mozilla.org のコードでも mozilla 特有のコードでもありません(例えば Xprint サーバーサイドは CDE/Motif/Qt などのアプリケーションからも使うことができます) - 詳細については http://xprint.mozdev.org/ にもっと良い情報がたくさんあります。...:-)
Roland Mainz により管理されています <roland.mainz@informatik.med.uni-giessen.de>
