(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
可変印刷のドキュメントと、当該ドキュメントに含まれるメタデータに応じた条件付きの印刷設定とを受信する受信手段と、
前記受信手段により受信された前記ドキュメントに含まれるメタデータと前記条件付きの印刷設定との間で共通の情報を任意の情報にそれぞれ置換する置換手段と、
前記共通の情報が前記任意の情報に置換された前記ドキュメントと前記条件付きの印刷設定とを用いて印刷を指示する指示手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記置換手段は、前記条件付きの印刷設定の条件式を予め定められた文字列に変更することにより共通の情報を任意の情報にそれぞれ置換することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記文字列は、当該文字列にランダムな文字列を含むことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記文字列は、処理開始から前記文字列を変更するたびにインクリメントされる連番の数字を含むことを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記メタデータが置換対象か否かをユーザに指定させる指定手段を更に有し、
前記置換手段は、前記指定手段により置換対象に指定されたメタデータと前記条件付きの印刷設定との間で共通の情報を任意の情報にそれぞれ置換することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記指定手段により置換対象に指定されたメタデータが前記条件付きの印刷設定で直接利用されている場合、前記置換手段により当該メタデータの置換を行うとユーザが望んだ印刷設定結果とならない場合がある旨を前記ユーザに警告することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記指示手段は、プリンタ或いはプリンタコントローラに印刷を指示することを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
情報処理装置の処理方法であって、
受信手段が、可変印刷のドキュメントと、当該ドキュメントに含まれるメタデータに応じた条件付きの印刷設定とを受信する受信工程と、
置換手段が、前記受信工程において受信された前記ドキュメントに含まれるメタデータと前記条件付きの印刷設定との間で共通の情報を任意の情報にそれぞれ置換する置換工程と、
指示手段が、前記共通の情報が前記任意の情報に置換された前記ドキュメントと前記条件付きの印刷設定とを用いて印刷を指示する指示工程と、
を有することを特徴とする情報処理装置の処理方法。
【請求項９】
コンピュータを請求項１乃至７の何れか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メタ情報を含むドキュメントデータと、当該メタ情報への参照情報を持ち、当該メタ情報の内容に応じた条件付き印刷設定を有する印刷制御データとを処理する技術に関するものである。
【背景技術】
【０００２】
バリアブルデータ印刷（ＶＤＰ：Variable Data Printing）として知られる印刷方法が行われている。ＶＤＰでは、データを固定部分と可変部分とに分け、可変部分のデータをＲＤＢ（Relational Database）やＣＳＶ（Comma Separated Values）ファイルなどのデータソースから供給する。ここで、データソースの桁（フィールド）をテンプレート文書の可変部分と関連付け、データソースの行（レコード）毎に適用することで、レコード毎に異なる内容の印刷を行う。
【０００３】
ＶＤＰでは、例えば顧客情報に従って提供する商品情報を変えるダイレクトメールなどを作成することができる。また、一つのＶＤＰに必要なページレイアウトやデータソースなどの論理的な情報の集まりをＶＤＰドキュメントと呼ぶ。近年では、ＶＤＰドキュメントに受取人の情報（例：受取人を識別するためのＩＤ、性別、住所など）をメタデータとして埋め込めるフォーマットも登場してきている。
【０００４】
ＶＤＰドキュメントを印刷する際の印刷設定を制御する方法としては、一般にＪＤＦ（Job Definition Format）を利用する。ＪＤＦの仕様のうち、印刷の制御方法をデバイスに伝えるデータフォーマットとして、JDF JobTicketがある。近年では、ＶＤＰドキュメントに埋め込まれているメタデータと、そのメタデータを参照するJDF JobTicketを利用して印刷物の受取人毎に印刷設定を可変に設定し、印刷する方法が行われている。例えば、ＶＤＰドキュメントに受取人の「性別」をキーとするメタデータが含まれていた場合、JDF JobTicketに「性別」キーのバリューが「男性」であればマット紙、「女性」であれば光沢紙、といったように設定することが可能となっている。
【０００５】
このように、ＶＤＰドキュメントにメタデータを埋め込むことで多様な印刷設定ができる一方で、そのメタデータを第三者に閲覧されてしまうと個人情報の漏洩に繋がる恐れもある。例えば、印刷工程をアウトソーシングする場合に、アウトソーシング先で第三者によってＶＤＰドキュメントが外部に流出し、埋め込まれているメタデータ（印刷物の受取人の個人情報）が閲覧されてしまうことが考えられる。
【０００６】
このような印刷ジョブの内容の漏洩を防ぐための技術として、従来から印刷ジョブ全体を暗号化する技術が開示されている。特許文献１には、プリンタのホスト側で印刷対象のドキュメントを暗号化し、プリンタに非依存な中間データ化する。そして、プリンタ側で中間データを復号して印刷する手法が提案されている。
【０００７】
また、ドキュメント本文に機密情報が含まれている場合に、特定の機密文字列に対して難読化し、プリンタ側で機密文字列を復号する技術が開示されている。特許文献２には、ＸＰＳ（XML Paper Specification）ドキュメントに含まれる機密情報（文字列）の難読化を行う手法が提案されている。特許文献２では、機密情報となる文字列の指定をユーザから受け付け、当該文字列をGUID（Globally Unique Identifier）に置換し、そのGUIDとオリジナルの文字列をペアにしてＸＰＳのメタデータに記述する。ＸＰＳビューアにより当該ＸＰＳドキュメントを読み込む場合、メタデータ部分を読みとばすため、機密情報はGUIDに置き換わった状態で表示される。難読化されたＸＰＳドキュメントはプリンタ側で復元される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００６−２９４０１７号公報
【特許文献２】特開２００９−２５１８０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上記特許文献１のように暗号化を施せば、少なくとも暗号化から復号化までの間は情報の漏洩を防ぐことが可能になる。しかしながら、暗号化されたドキュメントに対して可変印刷設定を実施するためには、印刷工程の何れかの段階でメタデータの復号処理が必要になる。そして、復号したタイミング、例えば復号後のジョブがスプールフォルダに置かれたタイミングで個人情報が閲覧される可能性がある。
【００１０】
また、復号処理のための特別な装置を設けなければならない。例えば、プリンタ内部で復号を行うのであれば、プリンタ内部に復号するための特別な機能を追加しなければならない。更に、復号処理によっては時間がかかり、印刷パフォーマンスが低下するといったデメリットがある。また、暗号化を行う場合、暗号化アルゴリズムによっては暗号が解読される恐れがある。
【００１１】
また、上記特許文献２の場合、ドキュメントに含まれるメタデータ部分には平文で機密情報が記述されるため、ドキュメントの内容を解析されると機密情報が漏洩する可能性がある。
【００１２】
本発明は、可変印刷ドキュメントに含まれるメタデータの内容を第三者に知られることなく、メタデータに応じた可変印刷設定による印刷を指示する装置及び方法を提供する。
【課題を解決するための手段】
【００１３】
本発明は、情報処理装置であって、
可変印刷のドキュメントと、当該ドキュメントに含まれるメタデータに応じた条件付きの印刷設定とを受信する受信手段と、
前記受信手段により受信された前記ドキュメントに含まれるメタデータと前記条件付きの印刷設定との間で共通の情報を任意の情報にそれぞれ置換する置換手段と、
前記共通の情報が前記任意の情報に置換された前記ドキュメントと前記条件付きの印刷設定とを用いて印刷を指示する指示手段と、
を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、可変印刷ドキュメントに含まれるメタデータの内容を第三者に知られることなく、メタデータに応じた可変印刷設定による印刷を指示することができる。
【図面の簡単な説明】
【００１５】
【図１】本実施形態における印刷システムの構成の一例を示す模式図。
【図２】本実施形態におけるワークフローを説明するための図。
【図３】（Ａ）はクライアントＰＣのハードウェア構成の一例を示す図、（Ｂ）はプリンタコントローラのハードウェア構成の一例を示す図。
【図４】（Ａ）は難読化前、（Ｂ）は難読化後のＰＤＦ／ＶＴドキュメント及びＪＤＦジョブチケットを示す図。
【図５】ＰＤＦ／ＶＴドキュメントとＪＤＦジョブチケットとを難読化する処理を示すフローチャート。
【図６】難読化処理の詳細を示すフローチャート。
【図７】（Ａ）は処理対象のＰＤＦ／ＶＴドキュメントのDPart階層構造、（Ｂ）は当該ＰＤＦ／ＶＴドキュメントに対応する難読化メタデータ格納ツリーのデータ構造を示す概念図。
【図８】ＪＤＦジョブチケット及びＰＤＦ／ＶＴドキュメントの一例を示す図。
【図９】比較演算子についてPath属性の値、ValueList属性の値を変更した後のＪＤＦジョブチケットを示す図。
【図１０】難読化後のキー、バリューを格納した状態を示す図。
【図１１】一つ目の比較演算子に関して処理を完了した様子を示す図。
【図１２】Ｓ６０５で変更された比較演算子を示す図。
【図１３】難読化後のキー及びバリューを格納した状態を示す図。
【図１４】Ｓ６１０でメタデータが削除された状態を示す図。
【図１５】Ｓ６１１で難読化後のメタデータが追加された状態を示す図。
【図１６】難読化処理の変形例における詳細を示すフローチャート。
【図１７】メタデータと当該メタデータを直接参照するＪＤＦジョブチケット内の要素とのマップのデータ構造を表す図。
【図１８】処理対象のＰＤＦ／ＶＴドキュメントに含まれるキー及びバリューのデータ構造を表す図。
【図１９】置換対象を指定するためのＵＩを示す図。
【図２０】Ｓ１６０１の詳細な処理を示すフローチャート。
【図２１】変形例のＪＤＦジョブチケットとＰＤＦ／ＶＴドキュメントのスクリプトの一例を示す図。
【図２２】ＵＩ表示処理（Ｓ１６０３）の詳細な処理を示すフローチャート。
【図２３】警告ダイアログ２３０１の一例を示す図。
【発明を実施するための形態】
【００１６】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。
【００１７】
＜印刷システムの構成＞
図１は、本実施形態における印刷システムの構成の一例を示す模式図である。この印刷システムは、クライアントＰＣ１０２、ＤＢサーバ１０３、プリントサーバ１０４、プリンタコントローラ１０５、デジタル印刷機１０６からなり、ネットワーク１０１を介して接続されている。また、プリンタコントローラ１０５とデジタル印刷機１０６とは印刷機インタフェース（Ｉ／Ｆ）ケーブル１０７によって接続されている。
【００１８】
クライアントＰＣ１０２は、ＤＢサーバ１０３にアクセスし、ＤＢサーバ１０３に格納されているデータをＶＤＰテンプレートに流し込むことでＶＤＰドキュメントを生成する。そして、クライアントＰＣ１０２はＶＤＰドキュメントをプリントサーバ１０４に送信する。
【００１９】
プリントサーバ１０４では、クライアントＰＣ１０２からＶＤＰドキュメントを受信し、そのＶＤＰドキュメントに対する印刷設定をクライアントＰＣ１０２のユーザから受け付ける。具体的には、ユーザがＶＤＰドキュメントのジョブ全体に対する印刷設定や、ＶＤＰドキュメントに含まれるメタデータに応じた条件付きの印刷設定を行う。印刷設定が完了すると、その印刷設定はジョブチケットとして生成される。
【００２０】
更に、プリントサーバ１０４は、本発明に係る手法により、上述のＶＤＰドキュメントとジョブチケットとを難読化する。その後、プリントサーバ１０４が難読化されたＶＤＰドキュメントとジョブチケットとをプリンタコントローラ１０５に送信する。
【００２１】
一方、プリンタコントローラ１０５は、プリントサーバ１０４から難読化されたＶＤＰドキュメントとジョブチケットとを受信し、そのジョブチケットを解釈してデジタル印刷機１０６に印刷指示する。また、プリンタコントローラ１０５は、ＲＩＰ（Raster Image Processing）を行い、ＲＩＰ後のビットマップを印刷機インタフェースケーブル１０７経由でデジタル印刷機１０６へ送信する。
【００２２】
ここでは、ネットワーク１０１でそれぞれの装置が接続されている例を示しているが、接続形態はこの限りではなく、例えばＵＳＢメモリなどを使って装置間のデータ受け渡しを行うようにしてもよい。
【００２３】
＜ワークフロー＞
ここで、本実施形態におけるワークフローを、図２を用いて説明する。まず、ユーザがクライアントＰＣ１０２を用いて、ＶＤＰテンプレート２０１とデータソース２０２とを対応付ける作業を行う（２０３）。尚、ＶＤＰテンプレート２０１は、各受取人に共通なグラフィック、画像、テキストと、受取人の個人情報を流し込むためのコンテナを持ったデータである。また、データソース２０２は、ＤＢサーバ１０３に格納されているデータであり、例えば印刷物の受取人の個人情報が含まれる。
【００２４】
その後、ユーザがＶＤＰドキュメントの生成を指示すると、クライアントＰＣ１０２はＶＤＰテンプレート２０１のコンテナにデータソース２０２のデータを流し込み、ＶＤＰドキュメント２０５を生成する（２０４）。ＶＤＰドキュメント２０５のフォーマットとしては、ＰＤＦ／ＶＴ、ＰＰＭＬ（Personalized Print Markup Language）などがあるが、以降ではＰＤＦ／ＶＴを例に説明を行う。尚、このＶＤＰドキュメント２０５はＰＤＦ／ＶＴに限定されるものではなく、その他ＶＤＰドキュメントのフォーマットであってもよい。
【００２５】
このＶＤＰドキュメント２０５の生成と同時に、データソース２０２に含まれる受取人の個人情報がＶＤＰドキュメント２０５内に埋め込まれる。例えば、ＶＤＰドキュメント２０５のうち、受取人Ａさん向けの部分に関しては、受取人Ａさんの年齢や性別、住所といった情報が埋め込まれる。
【００２６】
ＰＤＦ／ＶＴでは、DPart（Document Part）階層構造と呼ばれるページオブジェクトの構造化機能、ＤＰＭ（Document Part Metadata）と呼ばれるメタデータ設定機能を有している。このＤＰＭには任意の「キー」と「バリュー」の組を設定することが可能であり、ＤＰＭによりDPartに対する意味付けをすることができる。これにより、ユーザは個々のページではなく、ＤＰＭに設定されたメタデータを条件にしてDPartに対して印刷設定が可能になっている。例えば、Ａさんが受け取るドキュメントに相当するDPartに、Ａさんの個人情報がＤＰＭとして埋め込まれる。
【００２７】
次に、ユーザがプリントサーバ１０４を用いて印刷設定を行う（２０６）。具体的には、ジョブ全体に関する印刷設定やＶＤＰドキュメント２０５に埋め込まれたメタデータに基づいて印刷設定の条件設定を行う。例えば、キーが「Gender」、バリューが「Male」であれば光沢紙を使う、といった設定を行う。
【００２８】
この設定を行った結果、ＪＤＦジョブチケット（JDF JobTicket）が生成される。ここでＪＤＦは、Job Definition Formatの略である。このＪＤＦチケットには、いまユーザが設定したジョブ全体に関する印刷設定やキーがGenderでバリューがMaleであれば光沢紙を使う、という条件付き印刷設定が含まれる。
【００２９】
次に、プリントサーバ１０４がＶＤＰドキュメント２０５及びＪＤＦチケットに対して難読化の処理を行う（２０７）。この難読化の方法に関しては、図４を用いて後述する。この結果、難読化が行われたＶＤＰドキュメント２０８とＪＤＦジョブチケット２０９とが生成される。
【００３０】
以上の説明では、クライアントＰＣ１０２上で流し込み（２０４）までの処理を行い、プリントサーバ１０４上で印刷設定（２０６）以降の処理を行う例を説明した。しかし、本発明はこれだけに限らず、例えば全ての処理をクライアントＰＣ１０２上で処理してもよい。その場合、プリントサーバ１０４は、ＶＤＰドキュメントとジョブチケットの中継のみを行う。また、印刷設定（２０６）までの処理をクライアントＰＣ１０２上で処理し、難読化の処理（２０７）のみプリントサーバ１０４上で処理してもよい。
【００３１】
＜クライアントＰＣの構成＞
次に、本実施形態におけるクライアントＰＣ１０２のハードウェア構成の一例を、図３に示す（Ａ）を用いて説明する。尚、クライアントＰＣ１０２はパーソナルコンピュータなどの情報処理装置である。クライアントＰＣ１０２のハードウェア構成は、様々な接続方法や様々なバスやインタフェースを有する構成が一般に知られており、ここで紹介するハードウェア構成は一例である。
【００３２】
ＣＰＵ３０１は、ＲＡＭ３０２に読み込まれた制御プログラムに従って装置全体の制御を行う制御部である。ＲＡＭ３０２は、ＣＰＵ３０１が実行する本装置の制御プログラムや文書、画像等のデータが読み込まれる内部記憶部である。ネットワークインタフェース（ＮｅｔＩ／Ｆ）３０３は、ＣＰＵ３０１の制御の元にインターネット等のネットワークとの接続を行いデータ等を送受信するネットワークインタフェースである。ＨＤＤ３０４は、クライアントＰＣ１０２の制御ソフトウェアを初め、様々なデータを保存するハードディスクドライブ（ＨＤＤ）である。ディスプレイ３０５は、本装置の状態や本装置への指示等を表示するものである。キーボード３０６及びマウス等のポインティングデバイス３０７は、本装置への指示を入力するものである。
【００３３】
尚、ＨＤＤ３０４に記憶されている各種ソフトウェアは、必要に応じてＲＡＭ３０２に読み込まれ、同じくＲＡＭ３０２に読み込まれているオペレーティングシステムの機能を必要に応じて使用し、ＣＰＵ３０１の制御によって実行される。
【００３４】
＜ＤＢサーバ、プリントサーバの構成＞
本実施形態におけるＤＢサーバ１０３、プリントサーバ１０４のハードウェア構成は、上述したクライアントＰＣ１０２のハードウェア構成と同様であり、ここでの説明は割愛する。尚、ＤＢサーバ１０３、プリントサーバ１０４も汎用のサーバコンピュータなどの情報処理装置である。
【００３５】
＜プリンタコントローラの構成＞
次に、本実施形態におけるプリンタコントローラ１０５のハードウェア構成の一例を、図３に示す（Ｂ）を用いて説明する。プリンタコントローラ１０５のハードウェア構成はクライアントＰＣ１０２と同様、様々な接続方法や様々なバスやインタフェースを有する構成が一般に知られており、ここで紹介するハードウェア構成は一例である。
【００３６】
ＣＰＵ３０８は、ＲＡＭ３０９に読み込まれた制御プログラムに従って装置全体の制御を行う制御部である。ＲＡＭ３０９は、ＣＰＵ３０８が実行する本装置の制御プログラムや文書、画像等のデータが読み込まれる内部記憶部である。ネットワークインタフェース（ＮｅｔＩ／Ｆ）３１０は、ＣＰＵ３０８の制御の元にインターネット等のネットワークとの接続を行いデータ等を送受信するネットワークインタフェースである。ＨＤＤ３１２は、プリンタコントローラ１０５の制御ソフトウェアを初め、様々なデータを保存するハードディスクドライブ（ＨＤＤ）である。ディスプレイ３０５は、本装置の状態や本装置への指示等を表示するものである。キーボード３０６及びマウス等のポインティングデバイス３０７は、本装置への指示を入力するものである。印刷機インタフェース３１１は、印刷機インタフェースケーブル１０７によってデジタル印刷機１０６と接続され、ＲＩＰ済データの送信に用いられる。
【００３７】
尚、ＨＤＤ３１２に記憶されている各種ソフトウェアは、必要に応じてＲＡＭ３０９に読み込まれ、同じくＲＡＭ３０９に読み込まれているオペレーティングシステムの機能を必要に応じて使用し、ＣＰＵ３０８の制御によって実行される。
【００３８】
＜難読化処理の概要＞
ここで、本実施形態における難読化処理の概要を、図４を用いて説明する。尚、実際の処理（難読化プログラム）は、図５及び図６に示すフローチャートを用いて後述する。
【００３９】
図４に示す（Ａ）は、難読化前のＰＤＦ／ＶＴドキュメント及びＪＤＦジョブチケットの概念を示す図である。ＰＤＦ／ＶＴドキュメント４０１には、Ｅさん向けドキュメントのメタデータ４０３として、キー「gender（性別）」にバリュー「female（女性）」が設定されている。更に、キー「age（年齢）」にバリュー「23」が設定されている。一方、Ｆさん向けドキュメントのメタデータ４０４として、キー「gender」にバリュー「male（男性）」が設定されている。更に、キー「age」にバリュー「40」が設定されている。
【００４０】
これに対して、ＪＤＦジョブチケット４０２には、メタデータを条件にした、条件付き印刷設定４０５が設定されている。この例では、キー「gender」のバリューが「male」であればコート紙を利用し、キー「age」のバリューが30未満であればサドルスティッチを適用する、というように設定されている。
【００４１】
尚、ＪＤＦでは、要素「MetadataMap」で参照先のメタデータとＪＤＦ内で利用される変数とのマッピング関係を記述している。また、ＪＤＦでは、その変数に応じた印刷設定ができるようになっており、この機能を用いてメタデータに応じた可変印刷設定を実現している。
【００４２】
プリンタコントローラ１０５が、上述のＪＤＦジョブチケット４０２を解釈した場合、条件付き印刷設定４０５のキー「gender」の条件に該当するＦさん向けドキュメントには、コート紙を利用して印刷が行われる。また、キー「age」の条件に該当するＥさん向けドキュメントにはサドルスティッチが行われる。
【００４３】
しかし、図４に示す（Ａ）のＰＤＦ／ＶＴドキュメント４０１、ＪＤＦジョブチケット４０２には、受取人の個人情報（年齢、性別）が含まれているため、このままでは第三者に受取人の個人情報が閲覧されてしまう恐れがある。
【００４４】
そこで、第三者が受取人の個人情報を閲覧できないよう、難読化した後のＰＤＦ／ＶＴドキュメント及びＪＤＦジョブチケットを図４の（Ｂ）に示す。
【００４５】
本実施形態における難読化処理では、ＰＤＦ／ＶＴドキュメントに含まれるメタデータのキーやバリューを元のキー、バリューが推測できないような予め定められた別の文字列に置換する。また、ＪＤＦジョブチケットの条件付き印刷設定の条件部分（MetadataMap）に関してもキー、バリューを予め定められた別の文字列に置換する。このとき、MetadataMapとメタデータとの参照関係が維持されるように、条件式を予め定められた文字列に置換する。具体的には、ＪＤＦジョブチケット４０７の条件付き印刷設定４１０に示すように、条件式を予め定められた文字列に置換する。
【００４６】
即ち、キー「fneoan」のバリューが“efaij”と等しければコート紙、キー「ofazc」のバリューが“pp1230”と等しければサドルスティッチという設定に難読化する。
【００４７】
この難読化に伴い、条件がマッチしていたＦさん向けドキュメントのメタデータ４０９もキー「fneoan」、バリュー「efaij」に置換して難読化する。また、条件がマッチしていたＥさん向けドキュメントのメタデータ４０８もキー「ofazc」、バリュー「pp1230」に置換して難読化する。更に、Ｅさん向けドキュメントのメタデータ４０８、Ｆさん向けドキュメントのメタデータ４０９から、MetadataMapから参照されないメタデータを削除する。即ち、メタデータ４０８に含まれるキー「gender」とメタデータ４０９に含まれるキー「age」を持つメタデータを削除する。
【００４８】
上述のような難読化処理を行うことで、元のメタデータの内容が第三者には分からなくなり、図４に示す（Ａ）と同様の印刷設定が適用される。即ち、Ｆさん向けドキュメントはコート紙を利用して印刷が行われ、またＥさん向けドキュメントはサドルスティッチが行われる。
【００４９】
上述のＰＤＦ／ＶＴドキュメントとＪＤＦジョブチケットとを難読化する処理を図５に示すフローチャートを用いて説明する。尚、本願のフローチャートは、ＣＰＵ３０１が、各フローチャートに関連するプログラムを読み出して実行することで実現される。
【００５０】
Ｓ５０１において、プリントサーバ１０４のＣＰＵ３０１がクライアントＰＣ１０２から受け取ったＪＤＦジョブチケットをＲＡＭ３０２上に読み込む。そして、Ｓ５０２において、ＣＰＵ３０１がクライアントＰＣ１０２から受け取ったＰＤＦ／ＶＴドキュメントをＲＡＭ３０２上に読み込む。
【００５１】
次に、Ｓ５０３において、ＣＰＵ３０１はＪＤＦジョブチケット内のMetadataMapと、ＰＤＦ／ＶＴドキュメント内のメタデータの難読化を行う。尚、この難読化処理の詳細に関しては、図６〜図１５を用いて後述する。
【００５２】
そして、Ｓ５０４において、ＣＰＵ３０１はＳ５０３において難読化したＪＤＦジョブチケットをプリントサーバ１０４のＨＤＤ３０４に書き出す。Ｓ５０５において、ＣＰＵ３０１はＳ５０３において難読化したＰＤＦ／ＶＴドキュメントをプリントサーバ１０４のＨＤＤ３０４に書き出す。
【００５３】
＜難読化処理の詳細＞
ここで、難読化処理の詳細を、図６〜図１５を用いて説明する。図６に示す処理の詳細を説明する前に、難読化後のメタデータを記憶するためのツリー型メモリのデータ構造を、図７を用いて説明する。このデータ構造を以下では「難読化メタデータ格納ツリー」と呼ぶ。
【００５４】
図６で示す処理では、難読化を行った後のメタデータを難読化メタデータ格納ツリーに格納しておく。そして、ＰＤＦ／ＶＴドキュメントに記述されている元のメタデータ（個人情報が含まれたメタデータ）を削除した後、難読化メタデータ格納ツリーに格納されている難読化後のメタデータをＰＤＦ／ＶＴドキュメントに反映する。
【００５５】
図７に示す（Ａ）は、処理対象のＰＤＦ／ＶＴドキュメントのDPart階層構造、図７に示す（Ｂ）は、当該ＰＤＦ／ＶＴドキュメントに対応する難読化メタデータ格納ツリーのデータ構造、を示す概念図である。
【００５６】
図７に示す（Ａ）のように、Ｒｏｏｔ要素７０１の下に、受取人ごとのDPart７０２が存在し、それぞれにＤＰＭ７０３（メタデータ）が記述されている。一方、図７に示す（Ｂ）の難読化メタデータ格納ツリーは、処理対象のＰＤＦ／ＶＴドキュメントのDPartと同様の構造を持つ。つまり、Ｒｏｏｔ要素７０４の下に、受取人ごとのＮｏｄｅ７０５が存在し、各Ｎｏｄｅに難読化後のメタデータ７０６が格納される。難読化後のメタデータ７０６はＰＤＦ／ＶＴドキュメントのＤＰＭ７０３（メタデータ）に相当する。
【００５７】
次に、難読化処理の詳細を説明する際に用いるＪＤＦジョブチケット及びＰＤＦ／ＶＴドキュメントの一例を図８に示す。このＪＤＦジョブチケット８０１には、キー「Gender」のバリューが“Female”であれば光沢紙を使い、キー「Gender」のバリューが“Male”であればマット紙を使う、という設定が記述されている。
【００５８】
ここで、ＪＤＦジョブチケットに記述されるMetadataMap要素の仕様を簡単に説明する。ＪＤＦジョブチケット８０１は、MetadataMap要素を持ち、その子要素として比較演算子８０３を持つ。ここでは、比較演算子８０３として、NameEvaluationという要素が記述されている。NameEvaluation要素は比較演算子を表現する要素の一つである。NameEvaluation要素はPath属性、ValueList属性を持ち、Path属性で指定されたＰＤＦ／ＶＴドキュメント内のメタデータキーがValueList属性の値に含まれていれば、Trueと評価される。この例では、Path属性にはＰＤＦ／ＶＴドキュメントのキー「Gender」を参照するように記述されており、キー「Gender」のバリューが「Female」であればこの比較演算子８０３はTrueと評価される。
【００５９】
比較演算子８０３がTrueと評価された場合、その比較演算子８０３の親要素であるExpr要素のName属性の値を変数とみなし、その変数にValue属性の値が代入される。この例では、valtemという変数に、“Pattern1”という値が代入される。一方、次の比較演算子（２つ目のNameEvaluation要素）に関しても同様に、キー「Gender」のバリューが「Male」であれば、valtemという変数に、“Pattern2”が代入される。
【００６０】
用紙を設定する箇所は、“Pattern1”であれば光沢紙、“Pattern2”であればマット紙が使われるように設定されている。これにより、メタデータのキー「Gender」のバリューが“Female”であれば光沢紙、キー「Gender」のバリューが“Male”であればマット紙を使う、という設定を実現している。
【００６１】
ＰＤＦ／ＶＴドキュメント８０２には、DPart階層構造が記述されている。尚、ＰＤＦ／ＶＴドキュメント８０２は、実際にはＰＤＦの文法に従って記述されるが、ここでは読み易さを考慮し、ＰＤＦ／ＶＴの仕様に従った等価なＸＭＬとして表現している。
【００６２】
ＰＤＦ／ＶＴドキュメント８０２には、３人の受取人に対するドキュメントに対応したDPartが定義されている。それぞれのDPartには、それぞれGender（性別）、Age（年齢）、Name（名前）のキーを持つメタデータが記述されている。
【００６３】
一人目の受取人のメタデータには、以下のキー、バリューが記述されている。
【００６４】
Gender =“Male”
Age =“21”
Name=“Tanaka”
二人目の受取人のメタデータには、以下のキー、バリューが記述されている。
【００６５】
Gender =“Female”
Age =“52”
Name=“Sato”
三人目の受取人のメタデータには、以下のキー、バリューが記述されている。
【００６６】
Gender =“Female”
Age =“73”
Name=“Suzuki”
ここで、プリンタコントローラ１０５が、このＪＤＦジョブチケット８０１とＰＤＦ／ＶＴドキュメント８０２とを解釈すると、一人目の受取人にはマット紙、二人目、三人目の受取人には光沢紙で印刷を行うことになる。
【００６７】
次に、難読化処理の詳細を、図６を用いて説明する。まず、Ｓ６０１において、ＣＰＵ３０１はＪＤＦジョブチケットを辿り、MetadataMap要素に含まれる最初の要素に移動し、その要素を処理対象要素とする。次に、Ｓ６０２において、ＣＰＵ３０１は図７に示す（Ｂ）の難読化メタデータ格納ツリーの初期化を行う。ここでは、ＲＡＭ３０２上に読み込まれているＰＤＦ／ＶＴドキュメントのDPartに基づき、メタデータ７０６が空の状態の難読化メタデータ格納ツリーを作成する。この難読化メタデータ格納ツリーはプリントサーバ１０４のＲＡＭ３０２上に記憶される。
【００６８】
次に、Ｓ６０３において、ＣＰＵ３０１は処理対象の要素が比較演算子か否かを判定する。ＪＤＦジョブチケットには、比較対象となるメタデータの型ごとに、異なる比較演算子が用意されている。例えば、メタデータのバリューを整数型とみなして比較したい場合には、IntegerEvaluationという要素を用いる。図８の例では、要素８０３が比較演算子（NameEvaluation）であり、メタデータをName型として比較する場合に用いられる。
【００６９】
Ｓ６０３で判定した結果、Ｙｅｓの場合（比較演算子であった場合）には、Ｓ６０４へ処理を進める。一方、Ｎｏの場合（比較演算子でなかった場合）には、Ｓ６０８へ処理を進める。このＳ６０４では、ＣＰＵ３０１はＰＤＦ／ＶＴドキュメントの内容を解析し、比較演算子にマッチするＰＤＦ／ＶＴドキュメント内のメタデータを見つける。
【００７０】
ＪＤＦジョブチケットにおいて、比較対象のメタデータは比較演算子のPath属性として記述される。このPath属性はXPath（XML Path Language）の形式で記述されている。また、Path属性の記述により、ＰＤＦ／ＶＴドキュメントの階層のうち当該比較演算子を表す要素の親要素として、どのメタデータのキーを参照するかが決定される。
【００７１】
また、ＪＤＦジョブチケットにおいて、比較の条件式を表現するための属性が用意されている。例えば、ValueList属性が記述されていた場合、その属性値として指定された値と、参照先のメタデータのバリューが完全一致すれば、Trueと評価される。
【００７２】
図８では、要素８０３のPath属性は、ＰＤＦ／ＶＴドキュメントの“DPart/DPM/KEY”という階層に付加されているキー“Gender”を参照するように記述されている。そのため、当該階層のＰＤＦ／ＶＴドキュメントのキー“Gender”まで辿っていく。図８の例では、評価対象のメタデータ８０４、８０５、８０６がそれぞれ要素８０３にマッチするかの評価を行う。比較演算子には、“Female”が含まれているか否かを評価するよう記述されているため、この例ではメタデータ８０５、８０６がマッチすると評価される。
【００７３】
次に、Ｓ６０５において、ＣＰＵ３０１は比較演算子の要素をStringEvaluationという要素に変更する。StringEvaluation要素とは、メタデータのバリューを文字列型とみなして比較するための要素である。この例ではStringEvaluation要素に変更しているが、この要素に限らず、メタデータのバリューを文字列の完全一致で比較できる比較演算子の要素であれば、何れの要素であってもよい。
【００７４】
次に、Ｓ６０６において、ＣＰＵ３０１はＳ６０５で変更したStringEvaluation要素のPath属性の値、ValueList属性の値を元の文字列が判別できない文字列に変更する。ここでは、１つのジョブ（ＰＤＦ／ＶＴドキュメントとＪＤＦジョブチケットのペア）で一意な文字列に変更する。この処理は、文字列変更後に、本来マッチすべきでないメタデータにマッチしないようにするためである。
【００７５】
文字列の変更方法としては、例えばランダムな文字列に変更し、ジョブ内での一意性をチェックするようにしてもよい。また、元の文字列に対してランダムな文字列をつなげ、その文字列から生成したＧＵＩＤに変更するようにしてもよい。もしくは、処理開始して最初に文字列を変更する際に、“UniqueStr0000”のように変更し、その後文字列を変更するたびに“UniqueStr0001”というように、末尾の数字をインクリメントさせた連番の文字列に変更してもよい。
【００７６】
ここで、比較演算子についてPath属性の値、ValueList属性の値を変更した後のＪＤＦジョブチケットを図９に示す。この比較演算子９０１では、Path属性の値である“Gender”を“03f39”という文字列に変更し、ValueList属性の値である“Female”を“f8098j”という文字列に変更している。尚、Ｓ６０６では、１つのジョブ内で一意な文字列に変更するため、異なるジョブ間では、同じキーを持つメタデータを処理した場合であっても、置換後の文字列が同じになるとは限らない。
【００７７】
次に、Ｓ６０７において、ＣＰＵ３０１はＳ６０４にて見つけたメタデータに相当する難読化メタデータ格納ツリーのノードに、文字列変更後（難読化後）のキー、バリューを追加する。図８の例では、上述したようにメタデータ８０５、８０６が比較演算子８０３にマッチする。そこで、難読化メタデータ格納ツリー内の、メタデータ８０５、８０６に相当するノードに、Ｓ６０６で変更したキー、バリューを格納する。
【００７８】
この難読化メタデータ格納ツリー内の、メタデータ８０５、８０６に相当するノードに、難読化後のキー、バリューを格納した状態を図１０に示す。図１０に示すように、キー及びバリュー１００１には、Ｓ６０６で変更したキー“03f39”及びバリュー“f8098j”がそれぞれ格納される。
【００７９】
一方、Ｓ６０８では、ＣＰＵ３０１はMetadataMapにおいて、次の処理対象要素が存在するか否かを判定する。判定した結果、次の処理対象が存在する場合はＳ６０９へ処理を進めるが、次の処理対象が存在しない場合はＳ６１０へ処理を進める。このＳ６０９では、ＣＰＵ３０１はMetadataMapにおいて、次の要素に処理を移す。
【００８０】
ここまでの説明で、図８に記載のMetadataMapのうち、一つ目の比較演算子に着目して処理の流れを説明した。Ｓ６１０の説明の前に、もう一つの比較演算子についても処理の流れを説明する。このMetadataMapのうち、一つ目の比較演算子に関して処理を完了した様子を図１１に示す。図１１に示すように、このMetadataMapには、もう一つの比較演算子１１０１が存在する。比較演算子１１０１は、ＰＤＦ／ＶＴのキー“Gender”を参照し、バリューが“Male”であれば、Trueと評価する。ここで、比較演算子１１０１に関してＳ６０４の処理を行うと、メタデータ１１０２、１１０３、１１０４のうち、バリューとして“Male”を持つメタデータ１１０２がマッチする。
【００８１】
次に、比較演算子１１０１に関してＳ６０５において、図１２に示すように比較演算子１２０１がStringEvaluationに変更される。続いて、Ｓ６０６において、Path属性の値である“Gender”が文字列“21ajf90”に変更され、ValueList属性の値である“Male”が文字列“fea9j09”に変更される。
【００８２】
続いて、Ｓ６０７において、難読化メタデータ格納ツリーのノードのうち、図１１にて比較演算子１１０１にマッチしたメタデータ１１０２に相当するノードに、文字列変更後のキー及びバリューが格納される。この難読化メタデータ格納ツリー内のメタデータ１１０２に相当するノードに、難読化後のキー及びバリューを格納した状態を図１３に示す。図１３に示すように、ノードのキー及びバリュー１３０１には、Ｓ６０６で変更したキー“21ajf90”及びバリュー“fea9j09”が格納される。
【００８３】
ここまでの処理により、MetadataMapに含まれている比較演算子について、処理が完了したことになる。以下では、Ｓ６１０以降の処理を説明する。
【００８４】
Ｓ６１０において、ＣＰＵ３０１はＰＤＦ／ＶＴドキュメントのメタデータを削除する。図１４に示すＰＤＦ／ＶＴドキュメントに含まれているメタデータ１４０１、１４０２、１４０３がこの処理で削除される。次に、Ｓ６１１において、ＣＰＵ３０１はＳ６０９までの処理で作成した難読化メタデータ格納ツリーに基づき、ＰＤＦ／ＶＴドキュメントに難読化後のメタデータを追加する。図１４に関して、上述のＳ６１０、Ｓ６１１で処理された結果を図１５に示す。図１５に示すように、図１３に示す難読化メタデータ格納ツリーに格納されている難読化後のメタデータが、ＰＤＦ／ＶＴドキュメントのメタデータ１５０１、１５０２、１５０３として追加される。
【００８５】
以上のように、各受取人に適用される印刷設定結果を変えずに、ＶＤＰドキュメント（本実施形態ではＰＤＦ／ＶＴドキュメント）に埋め込まれていたメタデータを難読化することができる。
【００８６】
その結果、置換されたメタデータは印刷の最後まで復元する必要がないため、印刷の最後まで個人情報が閲覧される恐れはない。
【００８７】
また、復号処理が不要のため、復号のための特別な装置を設ける必要もなく、パフォーマンスを低下させることなく印刷を実行できる。更に、不可逆の難読化を行うため、解読される恐れのある暗号化よりも高いセキュリティ性が望める。
【００８８】
＜難読化処理の変形例の概要＞
上述の難読化処理では、ＶＤＰドキュメントに含まれる全てのメタデータに関して難読化を行った。しかし、ＪＤＦジョブチケットを利用する場合、ＶＤＰドキュメントに埋め込まれているメタデータ（受取人のＩＤなど）のバリューから印刷物検品用のバーコードを自動生成する場合も存在する。そこで、ＪＤＦジョブチケットがＶＤＰドキュメント内のメタデータの値を直接利用することを、以下では便宜的に「メタデータを直接参照している」と表現する。
【００８９】
メタデータを直接参照する要素がＪＤＦジョブチケットに記述されている場合、ＶＤＰドキュメントに含まれるメタデータのバリューをランダムな文字列に変更してしまうと、正しいバーコードが生成されないという問題がある。
【００９０】
そこで、この変形例では、図１９に示すようなＵＩ（ユーザインタフェース）をユーザに提示し、難読化対象のメタデータをユーザに選択させる機能を有する。更に、この機能に加えてＪＤＦジョブチケットにメタデータを直接参照する要素が記述されているか否かを識別し、難読化対象から外すようユーザに認知させる機能を設けている。
【００９１】
＜難読化処理の変形例の詳細＞
次に、難読化処理の変形例における詳細を、図１６〜図１８を用いて説明する。図１６に示すフローチャートを説明する前に、まず図１６の説明に必要な図１７、図１８を先に説明する。
【００９２】
図１７は、メタデータと当該メタデータを直接参照するＪＤＦジョブチケット内の要素とのマップのデータ構造を表す図である。以下、このマップを「メタデータ利用マップ」と呼ぶ。図１７に示すように、メタデータ利用マップには、メタデータのキー１７０１が格納される。メタデータのキー１７０１は、ＰＤＦ／ＶＴドキュメントが持つ階層のうち、メタデータのロケーションを表現するように、XPath表現で格納される。そして、メタデータのキー１７０１のそれぞれについてＪＤＦジョブチケットのどの要素で利用されているかを利用先の要素１７０２と関係付けている。
【００９３】
この例では、メタデータの“/DPart/DPM/KEY”という階層に付加されている“CustomerID”キーがＪＤＦジョブチケットのDynamicFieldという要素で利用されていることを示している。尚、DynamicField要素は、直接参照するメタデータのバリューから、例えば動的にバーコードを生成するための要素である。
【００９４】
次に、処理対象のＰＤＦ／ＶＴドキュメントに含まれるキー及びバリューのデータ構造を図１８に表す。以下では、このデータ構造のマップを「キーバリューマップ」と呼ぶ。キーバリューマップは、ＰＤＦ／ＶＴドキュメントに含まれるメタデータのキー１８０１と各メタデータを置換対象とするか否かを示す置換対象フラグ１８０２とを含む。ここで、置換対象フラグ１８０２は、TrueもしくはFalseの値をとる。このキーバリューマップは、それぞれのキーに対応するバリューが一覧（リスト）１８０３として関係付けられている。また、キーバリューマップは、プリントサーバ１０４が持つＲＡＭ３０２上に記憶される。そして、このキーバリューマップ及びメタデータ利用マップ（図１７）に基づき、図１９に示すようなＵＩをユーザに表示する。
【００９５】
ここで、難読化処理の変形例の詳細を図１６に示すフローチャートを用いて説明する。この変形例に関しても、上述した難読化処理と同様に、ＶＤＰドキュメントとしてＰＤＦ／ＶＴドキュメントを例に用いる。尚、図１６に示すＳ６０１〜Ｓ６０９、Ｓ６１１は、図６と処理が同様のため、ここでの説明を割愛する。また、ＰＤＦ／ＶＴドキュメント、ＪＤＦジョブチケットの入出力処理に関しては、図５と同様なので、説明を割愛する。
【００９６】
Ｓ１６０１において、ＣＰＵ３０１がＪＤＦジョブチケットの内容を解析し、メタデータを直接参照している要素を識別する。このＳ１６０１の詳細な処理は、図２０、図２１を用いて後述する。メタデータを直接参照している要素を識別した結果として、図１７に示すメタデータ利用マップを作成する。メタデータ利用マップは、プリントサーバ１０４が持つＲＡＭ３０２上に記憶される。
【００９７】
次に、Ｓ１６０２において、ＣＰＵ３０１はＪＤＦジョブチケットから直接参照されているメタデータが一つ以上存在するか否かを判定する。具体的には、Ｓ１６０１において作成したメタデータ利用マップのメタデータのキー１７０１に、一つ以上のメタデータのキーが格納されていればＹｅｓと判定し、Ｓ１６０３へ処理を進める。
【００９８】
一方、メタデータ利用マップのメタデータのキー１７０１に、一つもメタデータのキーが格納されていなければＮｏと判定し、図６のＳ６０１へ処理を進める。つまり、ＪＤＦジョブチケットから直接参照されているメタデータが一つも存在しない場合、全てのメタデータの難読化を行っても印刷設定の結果に影響はないので上述した難読化処理と同様に処理すればよい。これにより、ＪＤＦジョブチケットから直接参照されているメタデータが一つも存在しない場合は、ユーザが難読化対象のメタデータを指定する手間を省くことができる。尚、ユーザが難読化対象のメタデータを常に確認したいようなケースでは、Ｓ１６０２の処理を行わずに、常にＳ１６０３へ処理を進めるようにしてもよい。
【００９９】
このＳ１６０３では、ＣＰＵ３０１はＰＤＦ／ＶＴドキュメントを解析し、難読化対象のメタデータをユーザに選択させるためのＵＩを表示する。Ｓ１６０３の詳細な処理は、図２２を用いて後述する。また、ＵＩの詳細は図１９を用いて後述する。
【０１００】
次に、Ｓ１６０４において、ＣＰＵ３０１はＳ１６０３で表示したＵＩを通じてユーザから難読化対象のメタデータの指定を受け付ける。ユーザが難読化対象であると指定したメタデータに関して、図１８に示すキーバリューマップの置換対象フラグ１８０２にTrueの値を格納する。一方、難読化対象ではないと指定されたメタデータに関しては置換対象フラグ１８０２にFalseの値を格納する。
【０１０１】
次に、上述した難読化処理（Ｓ６０１〜Ｓ６０３）を行い、Ｓ１６０５へ処理を進めると、ＣＰＵ３０１は処理対象の比較演算子が参照しているメタデータが置換対象か否かを判定する。判定の方法は、図１８に示すキーバリューマップのメタデータのキー１８０１の中から、当該比較演算子が持つPath属性の値に一致するキーを探す。そして、そのキーに対応する置換対象フラグ１８０２がTrueであれば、置換対象と判定し、Ｓ６０４へ処理を進める。また、置換対象フラグ１８０２がFalseであれば、置換対象ではないと判定し、Ｓ６０８へ処理を進める。この判定処理により、処理対象の比較演算子が参照しているメタデータが置換対象であった場合にはＳ６０４〜Ｓ６０７の処理により当該比較演算子の条件式が難読化される。一方、処理対象の比較演算子が参照しているメタデータが置換対象でなかった場合には当該比較演算子の条件式が変更されずにそのまま残る。
【０１０２】
その後、Ｓ６０８からＳ１６０６へ処理を進めると、ＣＰＵ３０１は難読化対象のメタデータのみＰＤＦ／ＶＴドキュメントのメタデータを削除する。各メタデータに関して、図１８に示すキーバリューマップの置換対象フラグ１８０２を参照し、当該比較演算子が参照しているメタデータが難読化対象（True）であれば、ＰＤＦ／ＶＴドキュメントから当該メタデータを削除する。一方、難読化対象でなければ、当該メタデータを削除せずに残しておく。
【０１０３】
以上の処理により、ユーザから「難読化対象である」と指定されたメタデータに関しては難読化される。また、そのメタデータを参照するＪＤＦジョブチケット内の比較演算子の条件式も難読化される。一方、ユーザから「難読化の対象としない」と指定されたメタデータに関しては難読化されずにＰＤＦ／ＶＴドキュメントに残すことができる。また、ＪＤＦジョブチケットにおいて、そのメタデータを参照する比較演算子の条件式も難読化せずに残すことができる。
【０１０４】
＜置換対象を指定するためのＵＩ＞
ここで、置換対象を指定するためのＵＩを、図１９を用いて説明する。図１９において、テキストボックス１９０１は、ユーザから入力ファイル、出力フォルダのパスの指定を受け付けるためのものである。入力としては、置換対象のＶＤＰドキュメント（この例ではＰＤＦ／ＶＴドキュメント）とＪＤＦジョブチケットを指定する。また、出力としては、置換したＶＤＰドキュメントとＪＤＦジョブチケットを出力するためのフォルダパスを指定する。
【０１０５】
ボタン１９０２は、ユーザに対してテキストボックス１９０１に指定する入力ファイル、出力フォルダのパスをファイルシステムのフォルダツリーから指定させるためのものである。ここでボタン１９０２が押下された場合、ユーザにフォルダツリーを表示し、入力ファイル及び出力フォルダを指定させる。指定されたパスはテキストボックス１９０１に表示する。
【０１０６】
テーブル１９０３は、テキストボックス１９０１で指定された入力ＶＤＰドキュメントに含まれる各メタデータのキー、バリューの例、メタデータ直接参照の有無、置換対象か否かを表す。テーブル１９０３は、テキストボックス１９０１に指定された入力のＶＤＰドキュメントとジョブチケットを読み込むことで表示される。表示処理は図２２を用いて後述する。
【０１０７】
テーブル１９０３において、入力ＶＤＰドキュメントに含まれるメタデータのキーは、一覧フィールド１９０４に表示される。ここで、キー名としてメタデータのキー名をそのまま表示しているが、ＰＤＦ／ＶＴドキュメントのドキュメント階層におけるメタデータのロケーションをXPath形式で表示するようにしてもよい。
【０１０８】
一覧フィールド１９０４に表示されているキーに対するバリューの全て又は一部が次のフィールド１９０５に表示される。このフィールド１９０５を見ることにより、ユーザは各キーに対してどのようなバリューが格納されているかを確認することができる。
【０１０９】
一覧フィールド１９０４に表示されている各キーのバリューが、ＪＤＦジョブチケットから直接参照されているかをユーザに認知させるためのフィールド１９０６が表示される。ユーザは、このフィールド１９０６を見ることにより、各キーがＪＤＦジョブチケットから直接参照されているか（つまり、当該キーが難読化した場合に印刷設定に影響があるか）を確認することができる。
【０１１０】
具体的には、図１７に示すメタデータ利用マップのメタデータのキー１７０１に当該キーが存在していれば、フィールド１９０６にメタデータ直接参照「あり」と表示される。更に、利用先の要素１７０２を参照して利用先の要素を列挙して表示する。図１９に示す例では、CustomerIDキーは、ＪＤＦジョブチケットのDynamicField要素から直接バリューを利用していることが示されている。また、メタデータのキー１７０１に当該キーが存在していなければ、フィールド１９０６にメタデータ直接参照「なし」と表示される。
【０１１１】
チェックボックス１９０７は、ユーザに対してどのメタデータを難読化対象とするかを指定させるためのものである。このチェックボックス１９０７をオンにした場合、難読化対象とみなされ、オフにした場合は難読化の対象外とみなされる。このチェックボックス１９０７のオン、オフを行う操作は、図１６に示すＳ１６０４の処理に相当する。
【０１１２】
この図１９に示すＵＩを開いた時点のデフォルト表示では、フィールド１９０６にメタデータ直接参照「あり」と表示されているキーに関しては、チェックボックス１９０７がオフの状態で表示される。同様に、フィールド１９０６にメタデータ直接参照「なし」と表示されているキーに関しては、チェックボックス１９０７がオンの状態で表示される。これにより、ユーザがチェックボックス１９０７をオン又はオフする手間を省いている。チェックボックス１９０７のデフォルト表示に関しては、図２２を用いて後述する。
【０１１３】
尚、フィールド１９０６において、メタデータ直接参照「あり」と表示されているキーに対してユーザがチェックボックス１９０７をオンにした場合、ユーザに対して図２３に示すような警告ダイアログを表示するようにしてもよい。
【０１１４】
図２３は、警告ダイアログ２３０１の一例を示す図である。この例のように、「難読化を行うと、ユーザが望んだ印刷設定結果とならない場合がある。」旨を認知させるためのメッセージを表示する。ボタン２３０２は、置換対象として指定するためのものであり、ボタン２３０２が押下された場合には、チェックボックス１９０７をオンにする。また、ボタン２３０３は、置換対象として指定する操作をキャンセルするためのものであり、ボタン２３０３が押下された場合には、チェックボックス１９０７はオフのままにする。
【０１１５】
もしくは、警告ダイアログを表示する代わりに、図１９に示すテーブル１９０３の行のうち、当該メタデータに相当する行を赤く表示するなどして、ユーザに認知させるようにしてもよい。
【０１１６】
図１９に戻り、ボタン１９０８は、全てのメタデータのキーについてチェックボックス１９０７をオンにするためのものである。尚、フィールド１９０６において、メタデータ直接参照「あり」のメタデータが一つ以上含まれており、ボタン１９０８を押下した場合には、ユーザに対して警告ダイアログを表示するようにしてもよい。具体的には、「一つ以上の直接参照されているメタデータが含まれているが本当に全て難読化対象としてよいか」という旨の警告ダイアログを表示するようにしてもよい。
【０１１７】
また、ボタン１９０９は、全てのメタデータのキーについてチェックボックス１９０７をオフにするためのものである。更に、ボタン１９１０は、難読化の処理を開始するためのものである。そして、ボタン１９１０を押下することにより、図１６に示すＳ６０１の処理が開始される。ボタン１９１１は、置換を行わずに、このＵＩを閉じるためのものである。
【０１１８】
＜直接参照しているメタデータの識別＞
ここで、Ｓ１６０１での詳細な処理を、図２０、図２１を用いて説明する。図２０は、ＪＤＦジョブチケットを解析し、直接参照されているメタデータを識別する処理の詳細を示すフローチャートである。この処理により、「メタデータ利用マップ」が生成される。即ち、どのメタデータが、どのＪＤＦの要素から利用されているかの関係性が判別できるようになる。
【０１１９】
図２１は、MetadataMapがＰＤＦ／ＶＴドキュメントに含まれるメタデータを直接利用している場合のＪＤＦジョブチケットとＰＤＦ／ＶＴドキュメントのスクリプトの一例を示す図である。以下では、ＪＤＦジョブチケットのスクリプト２１０１と、ＰＤＦ／ＶＴドキュメントのスクリプト２１０２の例を用いて図２０に示す処理を説明する。
【０１２０】
まず、Ｓ２００１において、ＣＰＵ３０１はＪＤＦジョブチケットを辿り、MetadataMap要素に含まれる最初の要素に移動する。そして、Ｓ２００２において、ＣＰＵ３０１はメタデータ利用マップを初期化する。上述したように、メタデータ利用マップは図１７に示すような、メタデータと、ＪＤＦ内で当該メタデータを利用している要素とのマップである。尚、初期化処理は、メタデータ利用マップのメタデータのキー１７０１、利用先の要素１７０２に格納されているデータを削除する処理である。
【０１２１】
次に、Ｓ２００３において、ＣＰＵ３０１は処理対象の要素がメタデータを直接参照する要素か否かを判定する。ＪＤＦジョブチケットでは、子要素を持たないExpr要素がメタデータを直接参照する要素である。図２１に示す要素２１０３がメタデータを直接参照する要素に相当する。尚、この要素２１０３は、ＰＤＦ／ＶＴドキュメントのメタデータであるキー「CustomerID」の値を参照する。またメタデータ２１０４、２１０５、２１０６は、ＰＤＦ／ＶＴドキュメントの各受取人に対応し、これらが要素２１０３によって参照される。
【０１２２】
Ｓ２００３で判定した結果、Ｙｅｓの場合（直接参照する要素であった場合）には、Ｓ２００４へ処理を進める。一方、Ｎｏの場合（直接参照する要素でなかった場合）には、Ｓ２００７へ処理を進める。このＳ２００４では、ＣＰＵ３０１は処理対象要素が属するMetadataMapノName属性の値をプリントサーバ１０４のＲＡＭ３０２上に記憶する。図２１の例では、処理対象要素が属するMetadataMapのName属性の値に相当する「CustomerID」という文字列２１０７が記憶される。
【０１２３】
次に、Ｓ２００５において、ＣＰＵ３０１はＪＤＦジョブチケット内を走査し、Ｓ２００４で記憶した「CustomerID」を参照している要素を検索する。尚、検索の際に、複数の要素が見つかる場合や要素がまったく見つからない場合もある。
【０１２４】
図２１では、要素２１０８がＳ２００４で記憶した値を参照している要素である。この要素２１０８は、DynamicFieldという要素であり、Template属性で指定した値（CustomerID）を利用して、動的に文字列を生成し、バーコードやスラグラインとして印刷するための要素である。
【０１２５】
次に、Ｓ２００６において、ＣＰＵ３０１はExpr要素が参照するメタデータのキーと、Ｓ２００５にて検索された要素とを対応付けてメタデータ利用マップに記憶する。まず、Expr要素が参照するメタデータのキー（つまり、Expr要素のPath属性の値）をメタデータのキー１７０１に格納する。図１７に示す例では、“/DPart/DPM/KEY[@name=‘CustomerID']”というキーが格納されている。
【０１２６】
本実施形態では、ＰＤＦ／ＶＴドキュメントにおけるメタデータの記述位置をXPathの形式で記述している。尚、メタデータのキー１７０１に既に同様のキーが格納されている場合には、当該キーを重複して格納しないようにする。また、Ｓ２００５で一つも要素が検索されなかった場合には、当該メタデータはメタデータのキー１７０１には格納しないようにする。
【０１２７】
次に、ＣＰＵ３０１は当該メタデータのキーが格納されているエントリに対応する利用先の要素１７０２に、Ｓ２００５で検索された要素を格納する。このＳ２００５で複数の要素が見つかった場合には複数個の要素名を格納する。図２１の例では、利用先の要素１７０２に「DynamicField」が格納される。
【０１２８】
次に、Ｓ２００７において、ＣＰＵ３０１はMetadataMap要素以下の要素に、次の処理対象要素が存在するか否かを判定する。判定の結果、Ｙｅｓ（次の処理対象が存在する）であれば、Ｓ２００８へ処理を進め、Ｎｏ（次の処理対象が存在しない）であれば、この処理を完了する。一方、Ｓ２００８では、ＣＰＵ３０１はMetadataMap要素以下の、次の要素に処理を移す。
【０１２９】
Ｓ２００１乃至Ｓ２００８の処理により「メタデータ利用マップ」が完成する。ＣＰＵ３０１は、メタデータ利用マップを参照することにより、どのメタデータが、どのＪＤＦジョブチケットの要素から利用されているかを判別できるようになる。
【０１３０】
＜ＵＩ表示処理の詳細＞
ここで、ＵＩ表示処理（Ｓ１６０３）の詳細を、図２２を用いて説明する。この処理により、図１９に示すＵＩのテーブル１９０３を表示する。
【０１３１】
まず、Ｓ２２０１において、ＣＰＵ３０１は図１８に示すキーバリューマップを初期化する。この初期化は、図１８に示すメタデータのキー１８０１、置換対象フラグ１８０２、バリュー１８０３の内容を削除する処理である。
【０１３２】
次に、Ｓ２２０２において、ＣＰＵ３０１はＰＤＦ／ＶＴドキュメントを解析し、このＰＤＦ／ＶＴドキュメントに含まれるメタデータのキー、バリューをキーバリューマップに記憶する。具体的には、ＰＤＦ／ＶＴドキュメントに含まれるキーをメタデータのキー１８０１に格納する。具体的には、当該キーのロケーションをXPathの形式で格納する。そして、各キーに対応するバリューをバリュー１８０３に格納する。尚、置換対象フラグ１８０２には、全てのキーに対してTrueを格納しておく。
【０１３３】
次に、Ｓ２２０３において、ＣＰＵ３０１はキーバリューマップの最初のキー（即ち、図１８に示すメタデータのキー１８０１の一番上のエントリ）を処理対象とする。そして、Ｓ２２０４において、ＣＰＵ３０１は処理対象のキーが図１７に示す「メタデータ利用マップ」のメタデータのキー１７０１に存在するか否かを判定する。この処理は、言い換えると、処理対象のキーがＪＤＦジョブチケットのMetadataMapから直接参照されているか否かを判定する処理である。判定の結果、Ｙｅｓの場合（処理対象のキーがメタデータ利用マップに存在する場合）には、Ｓ２２０５へ処理を進める。一方、Ｎｏの場合（存在しない場合）には、Ｓ２２０６へ処理を進める。
【０１３４】
図１７、図１８に示す例では、キーバリューマップの最初のキーである「/DPart/DPM/KEY[@name=‘CustomerID']」は、メタデータ利用マップに存在する。つまり、当該キーは、MetadataMapから直接参照されているため、Ｓ２２０５へ処理を進める。Ｓ２２０５では、ＣＰＵ３０１は図１９に示すＵＩのチェックボックス１９０７をオフにし、図１８に示す置換対象フラグ１８０２をFalseに変更する。これにより、図１９に示すＵＩを開いたときに、デフォルト表示でチェックボックスがオフ状態となる。
【０１３５】
これに対して、Ｓ２２０６では、ＣＰＵ３０１は図１９に示すＵＩのチェックボックス１９０７をオンにし、図１８に示す置換対象フラグ１８０２をTrueに変更する。これにより、図１９に示すＵＩを開いたときに、デフォルト表示でチェックボックスがオン状態となる。
【０１３６】
そして、Ｓ２２０７において、ＣＰＵ３０１は処理対象のキーに関して、図１９に示すＵＩのテーブル１９０３にキー及びバリューを表示する。一覧フィールド１９０４には、「キーバリューマップ」のメタデータのキー１８０１に基づいてキー名を表示する。次のフィールド１９０５には、「キーバリューマップ」のバリュー１８０３に基づいて各キーに対応するバリューの一覧を表示する。そして、フィールド１９０６には、「メタデータ利用マップ」の利用先の要素１７０２に基づいて、ＪＤＦジョブチケットでの利用要素の一覧を表示する。
【０１３７】
図１９の例では、フィールド１９０５、１９０６に一覧を列挙しているが、フィールド１９０５、１９０６をダブルクリックした場合に別途ダイアログを表示して一覧表示し、視認性を高めるようにしてもよい。
【０１３８】
次に、Ｓ２２０８において、ＣＰＵ３０１はキーバリューマップに、次の処理対象キーが存在するか否かを判定する。判定の結果、Ｙｅｓ（次の処理対象が存在する）であれば、Ｓ２２０９へ処理を進めるが、Ｎｏ（次の処理対象が存在しない）であれば、この処理を完了する。一方、Ｓ２２０９では、キーバリューマップの次の要素に処理を移す。
【０１３９】
上述のＵＩ表示処理により、図１９に示すＵＩをユーザに提示する。そして、チェックボックス１９０７を通じて、どのメタデータを難読化するかをユーザから受け付けることで、ユーザが望んだメタデータのみ難読化を行うことができる。
【０１４０】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
0005930815.tif 000002
【図２】
0005930815.tif 000003
【図３】
0005930815.tif 000004
【図４】
0005930815.tif 000005
【図５】
0005930815.tif 000006
【図６】
0005930815.tif 000007
【図７】
0005930815.tif 000008
【図８】
0005930815.tif 000009
【図９】
0005930815.tif 000010
【図１０】
0005930815.tif 000011
【図１１】
0005930815.tif 000012
【図１２】
0005930815.tif 000013
【図１３】
0005930815.tif 000014
【図１４】
0005930815.tif 000015
【図１５】
0005930815.tif 000016
【図１６】
0005930815.tif 000017
【図１７】
0005930815.tif 000018
【図１８】
0005930815.tif 000019
【図１９】
0005930815.tif 000020
【図２０】
0005930815.tif 000021
【図２１】
0005930815.tif 000022
【図２２】
0005930815.tif 000023
【図２３】
0005930815.tif 000024