(57)【要約】【課題】  文書内部に保持される情報を参照することで、通常の表示処理ではセキュリティのために置換されて正しく表示されない情報であっても、印刷要求時に復元された状態で文書を正しく印刷することである。【解決手段】  セキュリティフィルタ１００３が、ファイル名でＦｉｘｅｄＰａｇｅを検索し、該当するＦｉｘｅｄＰａｇｅを見つける（Ｓ９０３）。次に、メタデータのＰｓｅｕｄｏ要素からＧＵＩＤの文字列を取得する（Ｓ９０４）。そして、セキュリティフィルタ１００３は、ＦｉｘｅｄＰａｇｅの中から、Ｇｌｙｐｈ要素を列挙し、メタデータの中のＵｎｉｃｏｄｅＳｔｒｉｎｇ属性の中に同じＧＵＩＤ文字列を見つけたら、ＦｉｘｅｄＰａｇｅのＧｌｙｐｈ要素をメタデータのＧｌｙｐｈ要素で置き換えて復元する（Ｓ９０５）ことを特徴とする。【選択図】  図１０
2009251803.tif 000002
【特許請求の範囲】
【請求項１】
文書情報を処理する情報処理装置であって、
前記文書情報の中から表示しない情報を指定する指定手段と、
前記指定手段により指定された情報から一意に決定される識別情報を生成する生成手段と、
生成された識別情報と、前記指定された情報を特定する情報を前記文書情報の中に保持させるためのメタデータを生成するメタデータ生成手段と、
前記文書情報の中で指定された情報を前記識別情報で置き換える置換手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記メタデータは、文書情報のページ位置を特定する情報を含むことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記メタデータは、通常のビューアに読み飛ばされるデータであることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記識別情報は、擬似乱数を含むことを特徴とする請求項１記載の情報処理装置。
【請求項５】
特定の情報に置き換えられて保持手段に保持されている文書情報を処理する情報処理装置であって、
印刷要求がなされた場合に、前記保持手段に保持される文書情報の中にメタデータが存在するかどうかを判断する判断手段と、
前記メタデータが前記文書情報の中に存在すると前記判断手段が判断した場合、前記メタデータの中から取得される識別情報、及び当該識別情報に対応付けられている情報に基づいて、前記文書情報で置き換えられている情報を元の情報に復元する復元手段と、
を有することを特徴とする情報処理装置。
【請求項６】
前記復元手段により復元された文書情報を印刷する印刷手段を備えることを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記文書情報は、ＸＭＬ形式の文書情報であることを特徴とする請求項１、２、５、６のいずれか１項に記載の情報処理装置。
【請求項８】
指定される情報は、文字列であることを特徴とする請求項１記載の情報処理装置。
【請求項９】
文書情報を処理する情報処理装置におけるデータ処理方法であって、
前記文書情報の中から表示しない情報を指定する指定ステップと、
前記指定ステップにより指定された情報から一意に決定される識別情報を生成する生成ステップと、
生成された識別情報と、前記指定された情報を特定する情報を前記文書情報の中に保持させるためのメタデータを生成するメタデータ生成ステップと、
前記文書情報の中で指定された情報を前記識別情報で置き換える置換ステップと
を有することを特徴とするデータ処理方法。
【請求項１０】
前記メタデータは、文書情報のページ位置を特定する情報を含むことを特徴とする請求項９記載のデータ処理方法。
【請求項１１】
前記メタデータは、通常のビューアに読み飛ばされるデータであることを特徴とする請求項９記載のデータ処理方法。
【請求項１２】
前記識別情報は、擬似乱数を含むことを特徴とする請求項９記載のデータ処理方法。
【請求項１３】
特定の情報に置き換えられて保持手段に保持されている文書情報を処理する情報処理装置におけるデータ処理方法であって、
印刷要求がなされた場合に、前記保持手段に保持される文書情報の中にメタデータが存在するかどうかを判断する判断ステップと、
前記メタデータが前記文書情報の中に存在すると前記判断ステップが判断した場合、前記メタデータの中から取得される識別情報、及び当該識別情報に対応付けられている情報に基づいて、前記文書情報で置き換えられている情報を元の情報に復元する復元ステップと、
を有することを特徴とするデータ処理方法。
【請求項１４】
前記復元ステップにより復元された文書情報を印刷する印刷ステップを備えることを特徴とする請求項１３記載のデータ処理方法。
【請求項１５】
前記文書情報は、ＸＭＬ形式の文書情報であることを特徴とする請求項９、１０、１３、１４のいずれか１項に記載のデータ処理方法。
【請求項１６】
指定される情報は、文字列であることを特徴とする請求項９記載のデータ処理方法。
【請求項１７】
請求項９〜１６のいずれか１項に記載のデータ処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文書情報を処理する情報処理装置に関するものである。
【背景技術】
【０００２】
昨今、文書が大量に流通されるようになり、第三者への漏えいを防止するためのセキュリティへの関心が高くなっている。そこで、情報処理装置において、機密情報を含む文書を表示する、もしくは印刷するといったときには、セキュリティが施されたシステムを構築し、文書を保護した状態で情報を管理するのが一般的である。
【０００３】
しかし、電子文書の場合は、比較的容易にコピーや改ざんが行われてしまう。そこで、電子文書自体にセキュリティ対策を施すことが一般的に行われている。
【０００４】
例えば、電子文書自体を暗号化し、秘密鍵を持っている人だけが復号化して読むことができるシステムや、電子文書に署名ファイルを添付し、署名ファイルが一致しないときには見たり印刷したりすることができないシステムなどが存在する。
【０００５】
しかし、このように電子文書全体にセキュリティ対策を施してしまうと、電子文書の一部分だけを保護し、大半の部分は一般に開示したいといったときには、電子文書を大きく編集し再暗号化しなければならなくなる。また、署名を付ける場合においては、編集作業が発生してしまうと、再度署名をつけなければならないので、手間が大きくかかっていたのが現状である。
【０００６】
また、プリンタの性能が上るにつれて、プリンタに電子文書をそのまま送りつけて印刷するダイレクトプリントという形態が増えてきた。
【０００７】
しかし、現状のプリンタの性能や規格では署名ファイルや暗号鍵方式に対応しているものがまだまだ少なく、せっかく施されているこれらの機能を無視して印刷してしまい、電子文書としては守られていても、機密データが紙という媒体では簡単に出力されてしまうことも珍しくなかった。
【０００８】
そこで、機密情報を保護するという観点では、前述したように電子文書そのものを編集してしまうのが最も有効である。例えば、ファイル内の機密情報部分を抽出し、アルファベットやイニシャル文字などファイル内に存在しない他の文字に置き換えるという技術が従来から存在する（特許文献１参照）。
【０００９】
しかし、置き変えてしまうと元のデータに戻すことができなくなってしまう。そこで、置き換える文字との変換テーブルを作ることで元の文書に戻すという方法がよく使われている（特許文献２参照）。この方法であれば、保護したい機密情報だけを置き換えることができるので、機密でない部分については容易に一般にも開示可能である。
【特許文献１】特開２００２−２５９３６３号公報
【特許文献２】特開２００７−１５６８６１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかし、前述した方法では、管理者が変換テーブルを管理していなければならず、機密文書が大量にあるケースでは、変換テーブルが同じ数だけ生成されてしまい、変換テーブルの管理が煩雑になっていた。
【００１１】
また、これを防ぐために同じ変換テーブルを使う場合は、１つの文書が解析されてしまうと、すべての文書に適用できてしまうという課題があった。
【００１２】
さらに、電子文書内に存在しない文字で置き換える場合、文書全体の文字をチェックしなければならない。電子文書では数百ページ、数千ページに上ることも当たり前のように存在するので、変換テーブル作成に時間がかかってしまっていた。また、電子文書内にほぼすべての文字が存在している場合は、変換テーブルを作りにくいといった問題があった。
【００１３】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、文書内部に保持される情報を参照することで、通常の表示処理ではセキュリティのために置換されて正しく表示されない情報であっても、印刷要求時に復元された状態で文書を正しく印刷する仕組みを提供することである。
【課題を解決するための手段】
【００１４】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
【００１５】
文書情報を処理する情報処理装置であって、前記文書情報の中から表示しない情報を指定する指定手段と、前記指定手段により指定された情報から一意に決定される識別情報を生成する生成手段と、生成された識別情報と、前記指定された情報を特定する情報を前記文書情報の中に保持させるためのメタデータを生成するメタデータ生成手段と、前記文書情報の中で指定された情報を前記識別情報で置き換える置換手段と、前記置換手段で置き換えられた情報を含む文書情報と、前記メタデータとを一体とする文書情報を保持する保持手段とを有することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、文書内部に保持される情報を参照することで、通常の表示処理ではセキュリティのために置換されて正しく表示されない情報であっても、印刷要求時に復元された状態で文書を正しく印刷できる。
【発明を実施するための最良の形態】
【００１７】
次に本発明を実施するための最良の形態について図面を参照して説明する。
【００１８】
＜システム構成の説明＞
〔第１実施形態〕
図１は、本実施形態を示す情報処理システムの構成を説明するブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ＬＡＮ、ＷＡＮ等のネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。また、本システムは、一般的なコンピュータを用いたシステム例である。
【００１９】
図１において、ＣＰＵ１０１はＲＯＭ１０２あるいはＲＡＭ１０３あるいは外部記憶装置１０５に格納されたプログラムに従って装置全体の制御を行う。
【００２０】
ＲＡＭ１０３はＣＰＵ１０１が各種処理を行う際のワークエリアとしても使用される。外部記憶装置１０５はオペレーティングシステム（ＯＳ）１０５４やアプリケーション１０５１等を記録する。ここで、外部記憶装置は、ハードディスク等の不揮発性の記憶装置で構成される。なお、外部記憶装置１０５には、印刷関連プログラム１０５２、プリンタドライバ１０５３、ＯＳ１０５４が記憶されている。
【００２１】
キーボード１０８やポインティング・デバイス１０９などの入力機器は、入力Ｉ／Ｆ１０４を通じて、ユーザがコンピュータに対して各種指示を与えるためのデバイスである。
【００２２】
出力Ｉ／Ｆ１０６は、データを外部に出力するためのインタフェースであり、モニタ１１０やプリンタ１１１に対してデータを出力する。プリンタ１１１とはローカルＩ／Ｏのみならず、ネットワークを通して接続されていてもよい。また、１０７はシステムバスで、共通データバスとして、それぞれのデータ間でデバイス間でデータのやりとりを行う。
【００２３】
図２は、本実施形態を示す情報処理システムの構成を説明するブロック図である。本例は、ＸＰＳＤｒｖ印刷システム例である。なお、ユーザはキーボード１０８やポインティング・デバイス１０９などといった入力装置を使用して、出力装置のモニタ１１０に映し出されたＷｉｎ３２アプリケーションプログラム２０１（以下、Ｗｉｎ３２アプリと略す）、もしくはWindows(登録商標) Presentation Foundationアプリケーションプログラム２０２（以下、ＷＰＦアプリと略す）から印刷処理を実行する。
【００２４】
印刷処理はプリンタの選択、印刷設定の作成、描画データの変換と３つの処理を順番に行うことで実行する。
【００２５】
まずは、ユーザは、モニタ１１０に表示されるユーザインタフェースを介して印刷したいプリンタ２１４の選択を行う。これは、ユーザがポインティング・デバイス１０９等を操作することにより、モニタ１１０に表示されるユーザインタフェース上で印刷を実行するプリンタに対応したプリンタドライバを選択することと同義である。
【００２６】
次に、プリンタドライバが印刷設定を作成する。ここで、印刷設定はアプリケーション１０５１が印刷設定用のメモリを確保し、アプリケーション１０５１かプリンタドライバ１０５３のコンフィギュレーションモジュール２０４が、機種依存ファイル２０５を利用して設定データを埋めるという形で行われる。
【００２７】
Ｗｉｎ３２アプリケーション２０１では印刷設定データとしてバイナリのＤＥＶＭＯＤＥ構造体２１５を用い、ＷＰＦアプリケーション２０２ではマークアップ言語のＸＭＬで記載されたＰｒｉｎｔＴｉｃｋｅｔ（プリントチケット）２０３を用いる。このＤＥＶＭＯＤＥ構造体２１５もしくはＰｒｉｎｔＴｉｃｋｅｔ２０３が印刷設定を保持しており、アプリケーションが直接書き換えることで印刷設定を変更する。プリンタ２１４に依存した専用の設定は、コンフィギュレーションモジュール２０４が持つプリンタドライバのユーザインタフェースを表示し、ユーザがユーザインタフェースを操作することで行う。
【００２８】
プリンタドライバ１０５３は、ユーザインタフェースの設定に従い、ＤＥＶＭＯＤＥ構造体２１５もしくはＰｒｉｎｔＴｉｃｋｅｔ２０３のプリンタ２１４に依存した設定を変更する。
【００２９】
ここで、印刷設定とは具体的に、出力する用紙サイズを「Ａ４」にする、両面印刷を行う、カラーとモノクロを切り替える、給紙段を指定するなどといった設定のことを指す。また、ＰｒｉｎｔＴｉｃｋｅｔ２０３はＸＭＬ形式で記述されているので、アプリケーション１０５１がすべての設定値を直接変更して書き換えることは容易だが、従来のようにプリンタドライバのユーザインタフェースを使って設定変更してもかまわない。
【００３０】
最後に描画データの変換を行う。印刷設定が確定したら、ユーザはアプリケーション１０５１から印刷処理を実行する。Ｗｉｎ３２アプリケーション（Ｗｉｎ３２アプリ）２０１から印刷する場合は、バージョン３プリンタドライバの形態を取るＧＤＩｔｏＸＰＳ変換モジュール２０６に描画データが送られ、ＸＰＳスプールファイル２０７が作成される。このときＧＤＩｔｏＸＰＳ変換モジュール２０６はコンフィギュレーションモジュール２０４を呼び出し、印刷設定をＤＥＶＭＯＤＥ構造体２１５からＰｒｉｎｔＴｉｃｋｅｔ２０３に変換する。
【００３１】
ＷＰＦアプリ２０２から印刷する場合は、ＸＰＳファイルをＷＰＦアプリ自身が生成するのと、オペレーティングシステム（ＯＳ）１０５４がＷＰＦアプリ２０２に命令に応じてＸＰＳファイルを生成するのと２通りの方法がある。どちらの方法によっても、ＸＰＳスプールファイル２０７が生成される。
【００３２】
このようにＸＰＳＤｒｖ印刷システムは、印刷時に必ずＸＰＳスプールファイル２０７を生成するのが特徴である。
【００３３】
ＸＰＳスプールファイル２０７が生成されたら、プリントフィルタパイプラインプロセスに処理が渡される。プリントフィルタパイプラインプロセスは複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル２０８でフィルタの数や順番を制御する。
【００３４】
プリントフィルタパイプラインプロセスで動作するフィルタパイプラインマネージャは、フィルタコンフィギュレーションファイル２０８に従って、本実施形態ではセキュリティフィルタ２０９、レイアウトフィルタ２１０、レンダラフィルタ２１１の順に処理を行う。
【００３５】
本処理はＸＰＳスプールファイル２０７をフィルタに受け渡すことで行われ、フィルタがそれぞれＸＰＳスプールファイル２０７を加工し次のフィルタに渡していくことで処理が進む。
【００３６】
そして、最後にはプリンタ２１４が理解できるデータ言語であるプリンタ制御言語（以下、ＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）と略す）となって出力される。もちろんプリンタ２１４がＸＰＳスプールファイル２０７を直接読み込めるのであれば、そのままでもよい。以下、各フィルタの機能について説明する。
【００３７】
セキュリティフィルタ２０９では、セキュリティ対策が施されたＸＰＳ復元する処理を行う。また、レイアウトフィルタ２１０では倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。
【００３８】
また、レイアウトフィルタ２１０では、ＸＰＳスプールファイル２０７に含まれる印刷設定ＰｒｉｎｔＴｉｃｋｅｔ２０３に従って動作するため、たとえば面付けの設定がＰｒｉｎｔＴｉｃｋｅｔ２０３に存在しないときは、レイアウトフィルタ２１０は何も動作せずフィルタをスルーして、次のフィルタにＸＰＳスプールファイル２０７をそのまま渡す。
【００３９】
最後のレンダラフィルタ２１１では、ＸＰＳスプールファイル２０７をレンダリングしてＰＤＬデータに変換する。そして、変換されたＰＤＬデータは印刷処理のスケジュール管理を行うプリントマネージャ２１２で管理され、キュー（待ち行列）に印刷ジョブが次々と登録される。
【００４０】
そして、プリンタ２１４が印刷できる状態になったら、キューに登録した順にＰＤＬデータをＩ／Ｏモニタ２１３を通して送信する。
【００４１】
このようにして、アプリケーション１０５１からの印刷データをプリンタ言語に変換することがプリンタドライバ１０５３の主な役目であり、実際の印刷処理が行われる。
【００４２】
図３は、図２に示したＸＰＳスプールファイル２０７の構造を示す図である。本例では、ＸＰＳスプールファイル２０７は３層構造からなる。
【００４３】
図３において、ＸＰＳスプールファイル２０７は、３層からなるＸＭＬファイルの集合で構成される。具体的には、第１層にFixed Document Sequense３０１（以下、ジョブと略す）が、次の層にFixed Document３０２（以下、ドキュメントと略す）が、最下層にFixed Page３０３（以下、ページと略す）が存在する。
【００４４】
なお、それぞれの階層はレベルとも呼ばれる。実際の描画データとなる文書の各ページはページレベルに置かれ、１つのドキュメントレベルの中に複数ページが含まれる。
【００４５】
また、１つのＸＰＳスプールファイル２０７の中に複数のドキュメントを持つことができるため、ジョブが複数のドキュメントを管理している。これらはすべてＸＭＬで記載されているが、リソースデータのようなバイナリデータはイメージ３０４、フォント３０５といった形で、そのままＸＰＳスプールファイル２０７の中に含まれている。
【００４６】
印刷設定であるPrintTicket３０６は、ジョブレベル、ドキュメントレベル、ページレベルのすべてのレベルで持つことができ、ページごとに印刷設定を切り替えることが可能になっている。
【００４７】
また、PrintTicket３０６の中にある印刷設定の機能１つ１つにも、どのレベルに対して適用するのかが示されており、機能名称の接頭辞（Prefix）で定義されている。
【００４８】
例えば、“Job”が機能の接頭辞としてつけば、ジョブレベルの機能設定ということになる。PrintTicketはプリンタやプリンタドライバが持つ機能をFeatureという要素で、機能の選択肢をOptionという要素で表している。ScoredPropertyやPropertyはOptionに付随する属性情報であり、ParameterInitは機能の値を表している。
【００４９】
サムネイル３０７は、最初のページのスナップショット画像ファイルになっており、ページをレンダリングしなくてもこの画像を使用することでページを見ることができるので、複数のＸＰＳスプールファイル２０７の一覧表示などに役立つ。コアプロパティ３０８は文書の属性（プロパティ）情報を持っていて、文書名、リビジョン、編集者などの情報が含まれている。
【００５０】
Ｄｏｃｕｍｅｎｔ  Ｓｔｒｕｃｔｕｒｅ３０９はドキュメントレベルに付属する情報で、ドキュメントの章の区切りが記載されている。これらのデータが圧縮され１つのファイルとなっているのが、ＸＰＳスプールファイル２０７である。なお、文書フォーマットのＸＰＳファイルもＸＰＳスプールファイル２０７とまったく同一の構造である。
【００５１】
以下、セキュリティ対策を施した電子文書としてＸＰＳファイルを書き換える方法と、元のファイルに戻して印刷する方法について、順を追って説明する。
【００５２】
外部記憶装置１０５には、アプリケーション１０５１として、機密処理アプリケーションと電子文書を作成する文書アプリケーション、そしてＸＰＳビューアの３つのアプリケーションがインストールされている。
【００５３】
ここで、機密処理アプリケーションは、セキュリティを施したＸＰＳファイルを作成するアプリケーションである。また、電子文書を作成する文書アプリケーションは、ユーザが編集したデータをＸＰＳファイルとして保存するアプリケーションである。ＸＰＳビューアは、ＸＰＳファイルを実際に印刷した場合のレイアウトを表示するもので、ＸＰＳファイルを直接印刷することができる(登録商標)dows Presentation Foundationアプリケーション２０２である。
【００５４】
また、作成したＸＰＳファイルは、外部記憶装置１０５に保存される。さらに、作成したＸＰＳファイルは、プリンタドライバ１０５３のＸＰＳドライバで印刷することで、セキュリティフィルタ２０９の処理によって復元することができる。
【００５５】
図４は、本実施形態を示す情報処理装置におけるＸＰＳファイルの一例を示す図である。
【００５６】
図４において、５０１はFixed Document Sequenseで、５０２がFixed Documentで、５０３はFixed Pageである。これらの５０１〜５０３は、ＸＰＳファイルフォーマットの第１層から第３層に相当するものである。
【００５７】
５０４はメタデータで、Fixed Page５０３のＧｌｙｐｈ文字をＧＵＩＤ５０５で置き換えることで生成される。
【００５８】
上記のように構成された出力処理システムにおいて、ユーザは、アプリケーションを実行して、対象となる電子文書ＸＰＳファイルを作成する。ここで、電子文書ＸＰＳファイルの中に機密事項、例えば、個人情報である氏名や住所、電話番号などが記載されている場合がある。このような場合、例えば氏名や住所などが掲載された書類、例えば住民票や身分証明書などの公的文書を作成したときなどに本実施形態を使用して機密情報を隠す。
【００５９】
また、解答を記載した試験問題を作成し、解答部分だけを隠すといったことにも使える。さらに、会社の組織図において、組織名や個人名を隠すといったことや、売り上げの粗利益や販売実績・シェアなどの数値の機密情報、開発プロジェクト名やコードネームなどにも使用できる。
【００６０】
本実施形態では、ユーザがアプリケーションを実行して作成した電子文書ＸＰＳファイルとして、プリンタドライバのテストページデータを、機密情報として、図７，図８に示すように、”Ｗｉｎｄｏｗｓ（登録商標）ＸＰ “という文字を対象にして作業を進める例を説明する。
【００６１】
まず、ユーザは、対象とするＸＰＳファイルを専用の機密処理アプリケーションで開く。機密処理アプリケーションは、セキュリティを施すアプリケーションであるが、ユーザが文字列を指定しやすいように、ＸＰＳファイルを読み取ってＸＰＳファイルのプレビューを行う機能も備えている。
【００６２】
以下、機密にしたい箇所を選択して、文字列を置き換える方法を、図５のフローチャートに従って説明する。
【００６３】
図５は、本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。本例は、機密にしたい箇所を選択して、文字列を置換える処理例である。なお、Ｓ４０１〜Ｓ４０７は各ステップを示す。各ステップは、ＣＰＵ１０１がアプリケーション１０５１を実行することで実現される。
【００６４】
まず、Ｓ４０１で、機密処理アプリケーションは、ＸＰＳファイルをモニタ１１０上にプレビューし、ユーザがポインティング・デバイス１０９を操作することによって選択された機密事項の文字を指定する。ここで、機密事項の文字を指定したら、機密処理アプリケーションはユーザの機密処理を行うボタンを押す動作によって、機密処理を開始する。
【００６５】
次に、Ｓ４０２で、最初の処理として機密処理アプリケーションは、ユーザによって選択された位置と文字列から、対象となるＸＰＳファイルのＦｉｘｅｄＰａｇｅのＸＭＬの中から、指定された文字を見つける。これは対象となるＧｌｙｐｈ要素を特定することを指す。ＦｉｘｅｄＰａｇｅのＸＭＬにおいて、文字はＧｌｙｐｈ要素というタグで記載されているため、指定された文字が記載されたＧｌｙｐｈ要素を特定する。Ｇｌｙｐｈ要素には文字列の位置と、文字列データが記載されている。文字列データはＵｎｉｃｏｄｅＳｔｒｉｎｇ属性で文字列がそのまま記載されている場合と、指定されたフォントの位置を示すＩｎｄｉｃｅｓ属性のどちらかで記載されている。
【００６６】
このようにしてＧｌｙｐｈ要素を特定したら、Ｓ４０３で、機密処理アプリケーションは、１２８ビットのＵＵＩＤ(universal unique identifier)としてＧＵＩＤ（Global Unique Identifier）を生成する（図４に示すＧＵＩＤ５０５）。ここで、ＧＵＩＤは、ＵＵＩＤの一種で、ソフトウェア"ソフトウェアで使用される擬似乱数で、世界で一意に決定される識別子として使用される１２８ビットの２進数値の識別情報である。
【００６７】
また、ＧＵＩＤは、対象となる機密文字、すなわちＧｌｙｐｈタグ１つにつき１つ生成し、ペアにして管理する。
【００６８】
次に、Ｓ４０４で、機密処理アプリケーションは、ＸＰＳファイルの中にメタデータ（図４に示すメタデータ５０４）があるかどうかを確認する。メタデータは、機密データとして保持するために使用するＸＭＬファイルで、図６の構造をしており、ＸＰＳファイルの中に分離された分離文字列ファイルとして保持する。なお、この分離文字列ファイルには、指定されて抽出されている情報、本実施形態では、文字列の対応するページ番号（ページ位置）と、対応するユニークなランダム文字列のテーブルを備える。
【００６９】
ここで、メタデータが存在しないと機密処理アプリケーションが判断した場合は、Ｓ４０７で、機密処理アプリケーションは、ＸＰＳファイルの中に新しくメタデータを生成し、Ｓ４０５へ進む。
【００７０】
一方、Ｓ４０４で、メタデータがすでに存在していると機密処理アプリケーションが判断した場合は、メタデータの中に新しい要素を追加していく形を取る。ここで、メタデータは、１つの文字列と１つのＧＵＩＤをＧｌｙｐｈＤａｔａという要素でそれぞれ管理しており、複数の機密対象の文字列とＧＵＩＤのペアを１つのメタデータで管理するように構成されている。
【００７１】
ＧｌｙｐｈＤａｔａ要素には機密対象となる文字列があるページのＵＲＩ、つまりファイル名が記載されている。また、ＧＵＩＤはＰｓｅｕｄｏ要素で記載され、その中に機密対象となる文字列のＧｌｙｐｈが、ＦｉｘｅｄＰａｇｅに記載されていたままの形で記載するようになっている。
【００７２】
次に、Ｓ４０５で、機密処理アプリケーションは生成したＧＵＩＤと、対象となるＧｌｙｐｈをＸＰＳファイルのメタデータに追加する。これで、機密対象の文字列とＧＵＩＤがペアで管理できる。機密処理アプリケーションは、ＸＰＳファイルのメタデータに追加したら、対象となるＸＰＳファイルの中に入れ込む。
【００７３】
このようにして、メタデータへの追加が終了すると、Ｓ４０６で、機密処理アプリケーションは、対象となるＸＰＳファイルの機密対象の文字列を、ＧＵＩＤで置き換え、本処理を終了する。
【００７４】
具体的にはＧｌｙｐｈ要素の中のＵｎｉｃｏｄｅＳｔｒｉｎｇ属性を、生成したＧＵＩＤで書き換える。なお、ＵｎｉｃｏｄｅＳｔｒｉｎｇ属性が存在しないＧｌｙｐｈの場合は、ＵｎｉｃｏｄｅＳｔｒｉｎｇ属性を新しく追加し、ＧＵＩＤの文字を記載する。
【００７５】
これにより、図４に示すようにＸＰＳファイルの文字「ａｂｃｄｅｆｇ」が書き換えられることになる。本実施形態ではこれ以降、書き換えたＸＰＳファイルを、セキュリティＸＰＳファイルと呼ぶ。
【００７６】
セキュリティＸＰＳファイルは、通常のＸＰＳファイルを表示することができるビューアを使って表示することが可能である。これは通常のＸＰＳファイルを表示するＸＰＳビューアは、メタデータは知らないデータとして読み飛ばす（解釈できない）ためである。
【００７７】
ここで、ＸＰＳファイルを書き換える前と後で、ビューアを使って表示したものを図７、図８に示す。
【００７８】
図７、図８は、本実施形態を示す出力制御装置で処理されるＸＰＳ文書ファイルの表示例を示す図である。本例は、ＸＰＳビューアでＸＰＳ文書ファイルを表示した例であって、図７は、セキュリティをかける前の元のＸＰＳファイルの表示であり、図８は、セキュリティをかけた後のＸＰＳファイルの表示である。
【００７９】
本実施形態では、書き換える前のＸＰＳファイルは図７のように表示されていたものが、書き換えた後のＸＰＳファイルは図８のように対象文字列がＧＵＩＤで表示される。
【００８０】
ここで、正常なＧＵＩＤ文字として表示されていないのは、文字を表示するためにＸＰＳファイル内に持つ埋め込みフォントデータが、新しく追加したＧＵＩＤの文字をすべて持っていないことからなる。
【００８１】
これによって、ＸＰＳファイルを表示するビューアからは機密にしたい文字が表示されなくなる。
【００８２】
次に、セキュリティＸＰＳファイルを機密処理した文字を復元して印刷する方法を、図９と図１０を参照して説明する。
【００８３】
図９は、本実施形態を示す情報処理装置を適用する情報処理システムの構成を説明するブロック図である。
【００８４】
図９において、セキュリティＸＰＳファイルを直接印刷するアプリケーション１００１が、印刷を開始する。セキュリティＸＰＳファイルはそのままＸＰＳスプールファイル１００２となり、プリントフィルタパイプラインに送信される。プリントフィルタパイプラインは、最初にセキュリティフィルタ１００３にＸＰＳスプールファイル１００２を渡す。本実施形態では、セキュリティＸＰＳファイルが描画データ１００４と分離文字列メタデータ１００５から構成されている。ここで、分離文字列メタデータ１００５は、図６に示すデータ構造であって、図５に示した処理で、生成される識別情報と、当該識別情報に対応付けられた情報を含んで構成されている。
【００８５】
次に、セキュリティフィルタ１００３の動作を図１０に示すフローチャートに従って説明する。ここで、セキュリティフィルタ１００３は、メタデータを生成するメタデータ生成機能を備え、描画データと、分離文字列メタデータとを以下のように生成する。
【００８６】
図１０は、本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。本例は、フィルタパイプラインマネージャによる処理例である。なお、Ｓ９０１〜Ｓ９０６は各ステップを示す。また、各ステップは、ユーザが実行するアプリケーションから印刷要求がなされた場合に、ＣＰＵ１０１が専用のプリンタドライバでプリントフィルタパイプラインを実行することで実現される。
【００８７】
Ｓ９０１で、セキュリティフィルタ１００３は、まず、渡されてきたＸＰＳスプールファイル１００２の中に、メタデータがあるかどうかを確認する。なお、メタデータは、図４に示す処理で生成されている。
【００８８】
ここで、メタデータが存在しないとセキュリティフィルタ１００３が判断した場合は、何も変更することなく、ＸＰＳスプールファイル１００２をスルーして、Ｓ９０６へ進み、次のフィルタに送信して、本処理を終了する。以下、図６に示すメタデータを参照して説明する。
【００８９】
一方、Ｓ９０１で、メタデータが存在するとセキュリティフィルタ１００３が判断した場合は、セキュリティＸＰＳファイル保存サーバ１００６にアクセスする。なお、セキュリティＸＰＳファイルは、描画データ１００４と、文書情報の中でユーザが指定した情報、本実施形態では、文字列を分離して、ＧＵＩＤで置き換えられたメタデータ（分離文字列メタデータ）が一体して構成されている。つまり、描画データ１００４と分離文字列メタデータ１００５とは同一のファイル内に保持される構成となっている。
【００９０】
そして、セキュリティＸＰＳファイルを保存するセキュリティＸＰＳファイル保存サーバ１００６にアクセスできたら、Ｓ９０２で、セキュリティフィルタ１００３は、渡されてきたＸＰＳスプールファイル１００２を送信し、セキュリティＸＰＳファイル保存サーバ１００６に保存する。
【００９１】
このとき、印刷したユーザ名と日時も同時に保存しておく。これで、セキュリティＸＰＳファイルのバックアップをセキュリティＸＰＳファイル保存サーバ１００６上に保存できるとともに、変換した履歴を残すことができる。
【００９２】
次に、セキュリティＸＰＳファイルの復元処理に入り、メタデータの中にあるＧｌｙｐｈＤａｔａ要素を１つずつ処理していく。そして、セキュリティフィルタ１００３は、ＧｌｙｐｈＤａｔａ要素のＰａｇｅ属性から、置き換えた文字列が存在するＦｉｘｅｄＰａｇｅのファイル名を取得する。
【００９３】
次に、Ｓ９０３で、セキュリティフィルタ１００３は、ファイル名が取得できたら、ＸＰＳスプールファイル１００２の中から、ファイル名でＦｉｘｅｄＰａｇｅを検索し、該当するＦｉｘｅｄＰａｇｅを見つける。
【００９４】
次に、Ｓ９０４で、図６に示したメタデータのＰｓｅｕｄｏ要素からＧＵＩＤの文字列を取得する。そして、セキュリティフィルタ１００３は、Ｓ９０３で見つけたＦｉｘｅｄＰａｇｅの中から、Ｇｌｙｐｈ要素を列挙し、図６に示したメタデータの中のＵｎｉｃｏｄｅＳｔｒｉｎｇ属性の中に同じＧＵＩＤ文字列があるかどうかを検索する。ここで、ＧＵＩＤ文字列は世界で一意の識別子のため、誤って置き換えた文字でないデータや、他の置き換えたＧＵＩＤを検索してしまうことはない。
【００９５】
このようにしてセキュリティフィルタ１００３が、ＦｉｘｅｄＰａｇｅに該当するＧＵＩＤを見つけたら、Ｓ９０５で、ＦｉｘｅｄＰａｇｅのＧｌｙｐｈ要素を図６に示したメタデータのＧｌｙｐｈ要素(Windows(登録商標)XP)で置き換える。これにより、ＧＵＩＤが「Windows(登録商標)XPに置き換えられた状態に復元される。
【００９６】
この操作を、メタデータのＧｌｙｐｈＤａｔａ要素すべてに対して行う。このようにして、元のＸＰＳファイルの状態に復元する。復元が終わったら、セキュリティフィルタ１００３は、Ｓ９０６で、次のフィルタにＸＰＳスプールファイル１００２を渡して、セキュリティフィルタ１００３の動作は終了となる。
【００９７】
そして、次のフィルタであるレイアウトフィルタ１００８とレンダラフィルタ１００９の処理を行って、最後はプリンタ１０１０に出力される。
【００９８】
このように、セキュリティフィルタが存在する専用のプリンタドライバを使って印刷すると、セキュリティＸＰＳファイルを復元して、機密情報を含んだ形で印刷することができる。もちろん、セキュリティフィルタが存在しないプリンタドライバを使う場合は、機密情報はＧＵＩＤの文字として印刷されるので、機密情報は守られる。
【００９９】
また、復元する際はセキュリティＸＰＳファイル保存サーバ１００６に履歴が残るので、機密情報を含んだ形で印刷されたものを特定することもできる。
【０１００】
また、ＧＵＩＤの文字をそのまま表示すると、図８のように文字のレイアウトが崩れてしまう。そこで、ＧＵＩＤの文字を付加するときは、ＧｌｙｐｈにＯｐａｃｉｔｙ属性を「０」にして、文字を全て透明にすると、表示されなくなり、レイアウトが崩れることもない。
【０１０１】
また、復元処理を常に行いたくないときは、以下のように処理する。セキュリティＸＰＳファイルの印刷設定であるPrintTicketのFeatureには、JobRestructSecurityXPSがある。そこで、JobRestuructSecurityXPSをＯＮにしておくと、セキュリティフィルタが復元処理を行うことができる。
【０１０２】
また、JobRestuructSecurityXPSをＯＦＦにしておくと、セキュリティフィルタは復元処理を行わない。すなわち、セキュリティフィルタは、メタデータを見ることなくセキュリティＸＰＳファイルをスルーする。
【０１０３】
なお、上記実施形態では、表示しない情報をユーザが指定する場合について説明したが、あらかじめ表示しない情報を特定するための情報テーブルを備え、その情報テーブルに登録されている情報とを比較して、自動的に表示しない情報を特定する構成としてもよい。
【０１０４】
以下、図１１に示すメモリマップを参照して本発明に係る情報処理装置で読み取り可能なデータ処理プログラムの構成について説明する。
【０１０５】
図１１は、本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【０１０６】
なお、特に図示しないが、記憶媒体に記憶されるプログラム群を管理する情報、例えばバージョン情報，作成者等も記憶され、かつ、プログラム読み出し側のＯＳ等に依存する情報、例えばプログラムを識別表示するアイコン等も記憶される場合もある。
【０１０７】
さらに、各種プログラムに従属するデータも上記ディレクトリに管理されている。また、各種プログラムをコンピュータにインストールするためのプログラムや、インストールするプログラムが圧縮されている場合に、解凍するプログラム等も記憶される場合もある。
【０１０８】
本実施形態における図５、図１０に示す機能が外部からインストールされるプログラムによって、ホストコンピュータにより遂行されていてもよい。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を出力装置に供給される場合でも本発明は適用されるものである。
【０１０９】
以上のように、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１１０】
この場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１１】
従って、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等、プログラムの形態を問わない。
【０１１２】
プログラムを供給するための記憶媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【０１１３】
この場合、記憶媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【０１１４】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、該ホームページから本発明のコンピュータプログラムそのもの、もしくは、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバやｆｔｐサーバ等も本発明の請求項に含まれるものである。
【０１１５】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１１６】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えばそのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行う。そして、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１７】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込ませる。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１１８】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
【０１１９】
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【図面の簡単な説明】
【０１２０】
【図１】本実施形態を示す情報処理システムの構成を説明するブロック図である。
【図２】本実施形態を示す情報処理システムの構成を説明するブロック図である。
【図３】図２に示したＸＰＳスプールファイルの構造を示す図である。
【図４】本実施形態を示す情報処理装置におけるＸＰＳファイルの一例を示す図である。
【図５】本実施形態を示す情報処理装置における第１のデータ処理手順の一例を示すフローチャートである。
【図６】本実施形態を示す情報処理装置で用いるメタデータの構造の一例を説明する図である。
【図７】本実施形態を示す出力制御装置で処理されるＸＰＳ文書ファイルの表示例を示す図である。
【図８】本実施形態を示す出力制御装置で処理されるＸＰＳ文書ファイルの表示例を示す図である。
【図９】本実施形態を示す情報処理装置を適用する情報処理システムの構成を説明するブロック図である。
【図１０】本実施形態を示す情報処理装置における第２のデータ処理手順の一例を示すフローチャートである。
【図１１】本発明に係る情報処理装置で読み取り可能な各種データ処理プログラムを格納する記憶媒体のメモリマップを説明する図である。
【符号の説明】
【０１２１】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  入力Ｉ／Ｆ
１０５  外部記憶装置
１０５１  アプリケーション
１０５２  印刷関連プログラム
１０５３  プリンタドライバ
１０５４  ＯＳ
１０６  出力Ｉ／Ｆ
１０７  システムバス
１０８  キーボード
１０９  ポインティングデバイス
１１０  モニタ
１１１  プリンタ
【図１】
2009251803.tif 000003
【図２】
2009251803.tif 000004
【図３】
2009251803.tif 000005
【図４】
2009251803.tif 000006
【図５】
2009251803.tif 000007
【図６】
2009251803.tif 000008
【図７】
2009251803.tif 000009
【図８】
2009251803.tif 000010
【図９】
2009251803.tif 000011
【図１０】
2009251803.tif 000012
【図１１】
2009251803.tif 000013