ドキュメントレトリバー®は、当社のソリューションの中核となるプロダクトです。基本的な構成は、図に示すようにユーザーごとに作成するドキュメントを管理するWebアプリケーションとドキュメントを編集するエディタ(Sheltie)から構成されています。
Webアプリケーション部分は、RDBによってユーザー情報、ユーザーが制作するドキュメントのファイルの所在、アプリケーションごとに異なるドキュメントのメタデータを管理します。一方、Sheltieはサーバ上のドキュメントを編集するエディタであり、JavaアプレットやFlash等のプラグインがなくてもブラウザ上で動作します。Sheltie自身はRDBと直接通信することはなく、Webアプリケーションからの指示で起動され、ドキュメントの編集機能と、PDFへの変換機能を提供します。
ドキュメントは、常にサーバ上で管理され、ユーザーのクライアントPCに保存されることはありません。ユーザーがダウンロードできるのは、PDF形式に変換されたドキュメントのみとなります。 レンダリングに必要なフォントデータは、サーバで保持します。高品位なフォントをすべてのユーザーで共有することができます。
提供するソリューションごとに管理すべきユーザー情報、メタデータは異なります。また、ドキュメントに自動的に流し込むべきデータを生成、管理するアプリケーションも必要となる場合はあります。したがって、Webアプリケーションの部分は基本的にカスタマイズして提供されます。標準的なレトリバーの機能については、デモサイトを用意しておりますので、ぜひご体感ください。
ドキュメントは、ページおよびレイヤー、ページ内に配置されるテキスト、画像、直線・矩形などの図形要素のレイアウト情報を階層的に保持します。表現としてXMLを利用します。
XMLは独自形式で、特に標準的な定義に従うものではありません。これまでいくつか標準的なグラフィックス表現のXMLが提案されてきましたが、いずれもオーバースペックであり、特殊なプラグインを必要とするなど、決して使い勝手のよいものではありませんでした。また、他のシステムとのデータ交換を必要としないため、必要最小限の独自形式を採用し、必要に応じて拡張するという方法を選択しました。
画像素材は、JPEG、PNG、PDFを利用することができます。特にPDF形式の素材は画像では、つぶれてしまいがちな細かい文字などを品質を保ったままで配置するのに役立ちます。
基本的には、管理者が提供するテンプレートに、ユーザーが必要な編集を施して最終的なドキュメントを作成することを想定しています。管理者はテンプレートに、編集してほしいところ/してほしくないところを設定できるようにしたいものです。このような作業をサポートする機能が豊富に用意されています。
ドキュメントはXML形式であるため、定めたルールに沿ってテンプレート上の素材にIDを付与することで、Webアプリケーションから既存のテキストを所望の文字列で置き換える、新たにテキスト素材を挿入する、画像素材を入れ替えるなど、自動処理が容易に実装することが可能です。
ユーザーが、画面上で仕上がりイメージを確認できるWYSIWYG(What You See Is What You Get)型のエディタです。ただし、テキストに関しては、タイピングを直接画面上に行うのではなく、ダイアログボックスを通じて入力、編集します。画像素材はサーバ上に登録されているものから選択することで指定しますが、ユーザーが独自にアップロードして配置することも可能です。
基本的なGUIのLook&Feelは、近年のWebページの操作に準拠したものであり、Microsoft©社のPowerPoint©などとほぼ同等の感覚で操作することが可能です。
Sheltieは、JavaScriptで動作し、常にサーバと通信しながら処理を進めます。起動すると、まずサーバ上のXMLファイルを読み込み、そこに含まれる要素を順にサーバにレンダリング処理の依頼をかけます。レンダリング処理はSVGを利用します。サーバは、テキスト要素の受け取った文字列とフォントを含む表示の指定を受けて、サーバに格納されているフォントの情報をもとに低レベルのグラフィックス表現に展開してクライアントに戻します。画像の場合、そのファイル名に合致した画像ファイルを転送します。通常編集時には通信時間を短縮したいので、あらかじめ素材登録時に用意してある低解像度の画像をクライアントに戻すようにします。
PDFへの変換はサーバサイドで行われます。基本的には、アプレットとの通信と同様に、フォントをグラフィックスに展開し、画像をPDFファイル内に配置することを行います。プレビュー用に低解像度の画像、最終印刷版下として高解像度の画像を挿入するという切り替えも指定することができます。このPDF変換処理は、JavaScriptから呼び出すだけではなく、サーバ内でWebアプリケーションから呼び出すこともできます。