(57)【特許請求の範囲】
【請求項１】
第１のしおりと第２のしおりを含む第１のＰＤＬデータをユーザーから受け付けて、前記第１のしおりの参照先のページと対応づいている第１のノードを作成して、前記第２のしおりの参照先のページと対応づいている第２のノードを作成して、階層構造に前記第１のノードと前記第２のノードを含めることにより、ページに対する前記階層構造を有する第２のＰＤＬデータを作成する制御手段を有し、
前記制御手段は、前記第１のしおりの参照先のページと前記第２のしおりの参照先のページが同一である場合に、前記第２のノードを作成せずに、前記第１のノードにさらに前記第２のしおりの参照先のページを対応付けることを特徴とする情報処理装置。
【請求項２】
前記第１のＰＤＬデータには前記第１のしおりの上位のしおりである第３のしおりが含まれており、
前記制御手段は、前記第３のしおりの参照先のページと対応づいている前記第１のノードの上位の第３のノードを作成して、前記階層構造に前記第３のノードを含めることにより、ページに対する前記階層構造を有する第２のＰＤＬデータを作成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記制御手段は、前記第１のしおりの参照先のページと前記第２のしおりの参照先のページが同一である場合に前記第１のしおりの名称と前記第２のしおりの名称を含む値を前記第１のノードのメタデータに追加することを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
第１のしおりと第２のしおりを含む第１のＰＤＬデータをユーザーから受け付けて、前記第１のしおりの参照先のページと対応づいている第１のノードを作成して、前記第２のしおりの参照先のページと対応づいている第２のノードを作成して、階層構造に前記第１のノードと前記第２のノードを含めることにより、ページに対する前記階層構造を有する第２のＰＤＬデータを作成する制御工程を有し、
前記制御工程では、前記第１のしおりの参照先のページと前記第２のしおりの参照先のページが同一である場合に、前記第２のノードを作成せずに、前記第１のノードにさらに前記第２のしおりの参照先のページを対応付けることを特徴とする情報処理装置の制御方法。
【請求項５】
コンピュータを請求項１乃至３のいずれか１項に記載の情報処理装置が備える各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法およびコンピュータプログラムに関する。
【背景技術】
【０００２】
電子写真方式やインクジェット方式のデジタルプリンタの高速化・高画質化に伴い、プリント・オン・デマンド（Print On Demand ：ＰＯＤ）市場が拡大している。ＰＯＤは、デジタルプリンタを使って電子データのプリントを行うサービスである。ＰＯＤによれば、オフセット印刷を行う場合に比べて、比較的小ロットの印刷ジョブを短納期で行うことができる。
【０００３】
ＰＯＤでは、電子データを用いる特性を生かして、バリアブルデータ印刷（Variable
Data Printing：ＶＤＰ）という印刷方法が行われている。一つのＶＤＰに必要なページレイアウトやデータソースなどの論理的な情報の集まりをＶＤＰ文書という。ＶＤＰ文書は、固定部分と可変部分とに分けられる。ＶＤＰの文書を印刷処理する情報処理装置は、可変部分のデータを、ＲＤＢ（Relational Database ）やＣＳＶ（Comma Separated Values）ファイルなどのデータソースから取得する。情報処理装置は、データソースの桁（フィールド）をテンプレート文書の可変部分と関連付け、データソースの行（レコード）毎に適用することで、少しずつ異なる内容の印刷を行う。
【０００４】
ＶＤＰの適用により、情報処理装置は、例えば、顧客情報に応じて提供する商品情報を変えるダイレクトメールなどを作成することができる。顧客情報に応じて提供する商品情報が変化する印刷を行うことにより、通常の印刷に比べて、宣伝効果が高い印刷をすることができる。
【０００５】
ここで、ＶＤＰ文書が物理的な電子データ形式となったものを、ＶＤＰデータという。また、ＶＤＰデータを作成するアプリケーションやシステムを、ＶＤＰデータ生成系という。また、ＶＤＰデータを解釈処理してデジタル印刷機で出力を行うアプリケーションやシステムをＶＤＰデータ処理系という。
【０００６】
ＶＤＰデータとしては、任意のページ記述言語（Page Description Language ：ＰＤＬ）で記述された電子データを採用することができる。しかし、ＶＤＰ専用のＰＤＬ（以下、ＶＤＰ言語と記述）で記述されたＶＤＰデータが、処理の効率の点で優れている。ＶＤＰ言語は、ＶＤＰ文書の固定部分のオブジェクト（以下、固定オブジェクトと記述する）を予め定義しておき、その固定オブジェクトを後から参照することを示す記述が可能だからである。ＶＤＰ言語をＶＤＰデータ処理系で印刷処理する場合、ＶＤＰデータ処理系は、個々の固定オブジェクトの解釈処理結果を保持しておき、当該固定オブジェクトが参照される度に解釈処理結果をコピーする。これにより、ＶＤＰデータ全体の処理が速くなる。
【０００７】
また、ＶＤＰ言語のうち、例えばＰＰＭＬ（Personalized Print Markup Language）は、文書の構造を階層を用いて表現することが可能である。この文書の構造は、文書内のページの意味的なまとまりを示したものである。例えば、文書の構造は、ＶＤＰにおける１つのレコードや、その中の表紙や本文、本文の中の章構成などを意味的なまとまりとして有する。
【０００８】
ＰＤＬが文書の構造を表現できることは、画像形成処理を行う情報処理装置のユーザが印刷の設定をする上で有効である。印刷の設定には、一般的にＪＤＦ（Job Definition Format）が使われることが多い。
【０００９】
ここで、文書の構造を表現できないＰＤＬにおいてユーザが印刷の制御を行う場合を想定する。印刷の設定にＪＤＦを用いるとすると、ユーザは、個々のページやページのグループに対して印刷設定を行う。例えば、複数の章からなる文書について、ユーザが「２章」に対して印刷設定を行いたい場合は、「２章」がどのページからどのページまでなのかを知った上で印刷設定を行わなければならない。
【００１０】
一方、文書の構造を表現できるＰＤＬにおいてユーザが印刷の制御を行う場合を想定する。印刷設定にＪＤＦを用いるとすると、ユーザは、文書の構造を利用して、意味的なまとまりに対して印刷設定を行うことができる。例えば、ユーザは、複数の章からなる文書について、「２章」と意味付けされたページだけを印刷したり、「表紙」と意味付けされたページだけに上質紙を使って他は普通紙を使う、といった印刷設定をすることが可能となる。
【００１１】
また、ＪＤＦを用いた印刷設定方法は、別の印刷設定で再印刷を行う場合であっても、新たなＪＤＦを作成する手間が少ない。すなわち、ＪＤＦを用いた印刷設定方法は、印刷設定を行うユーザが、どのページがどの章なのかといったことをいちいち調べる必要がないため、印刷設定を行うユーザにとって非常に便利である。つまり、文書の構造を表現できるＰＤＬは、文書の構造を表現できないＰＤＬよりも上位の概念で印刷設定が可能なので、ユーザにとって便利である。
【００１２】
ＰＯＤのワークフローでは、印刷用データとして、ＰＤＦ（Portable Document Format）を使うことが一般的である。従って、ＶＤＰにおいてもＰＤＦが使われる場合が多い。また、ＰＤＦに対して様々な制限を持たせることで、データ交換や印刷を容易にするＰＤＦ／Ｘと呼ばれるフォーマットが存在する。ＰＤＦ／Ｘも、印刷用データとして広く使われている。しかし、ＰＤＦやＰＤＦ／Ｘは、ＶＤＰ言語ではないため、高速な印刷処理や、上位概念を用いた印刷設定が不可能であった。
【００１３】
そこで、国際標準化機構（International Organization for Standard ：ＩＳＯ）は、２０１０年に、ＰＤＦ／Ｘをベースとして、ＶＤＰの機能を追加したＰＤＬであるＰＤＦ／ＶＴを策定した。
【００１４】
ＰＤＦ／ＶＴでは、描画オブジェクトの定義を文書内で複数回参照できるようにすることで、印刷処理系における処理の効率化が行える。また、ＰＤＦ／ＶＴは、ＤＰａｒｔ（Document Part）階層構造と呼ばれるページオブジェクトの構造化機能と、ＤＰＭ（DPart
Metadata）と呼ばれるメタデータ設定機能を持っている。ＤＰＭには、任意のキーと値の組を設定することが可能である。ＤＰＭにキーと値の組を設定することにより、ＤＰａｒｔに対する意味付けをすることができる。これによって、ユーザが、個々のページではなく、ＤＰＭに設定されたメタデータを条件にしてＤＰａｒｔに対して印刷設定することが可能である。
【００１５】
印刷データや紙文書に対して、既存のＰＤＦの機能を用いて、文書に意味付けを行う従来技術が提案されている。例えば、特許文献１は、印刷用データをＰＤＦに変換する際に、印刷用データを構成する画像、図形、テキスト等の構成要素毎に付加する付加情報を設定する方法を開示する。また、特許文献２は、読み込んだ原稿画像にユーザの希望通りの章分け箇所を設定し、章分け箇所にリンク情報を付加した原稿の電子文書をＰＤＦとして保存を行う画像形成装置を開示する。
【００１６】
しかし、印刷データや紙文書に対して、既存のＰＤＦの機能を用いて、文書に意味付けを行う従来技術は、「しおり」や「注釈」等、既存のＰＤＦの機能を用いて、文書内のある位置をマークしたり、オブジェクトに対して意味付けをしたりするに過ぎない。「しおり」は、ＰＤＦ文書のページ範囲を示すものではなく、ＰＤＦ文書内の任意の位置を示すものである。また、「注釈」は、主に本文に対するコメント等を付加するものであり、ページを構造化するためのものではない。すなわち、従来技術は、ページの構造化を行うことはできず、当該従来技術によって意味付けされた情報を使って、ユーザが印刷設定を行うことはできない。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００４−２８９３５７号公報
【特許文献２】特開２０１０−１０９４２０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
既に広く普及しているＰＤＦやＰＤＦ／Ｘによる印刷ワークフローを流用しつつ、より柔軟な印刷設定を行えるようにするためには、ＰＤＦ／ＶＴを印刷データとして用いることが、最も有効な解決手段である。しかし、既にＰＤＦデータとなっているものについては、柔軟な印刷設定を行うことはできない。
【００１９】
実際のＰＯＤの現場では、ＰＤＦデータが広く用いられており、ＰＤＦデータそのものの印刷や、ＰＤＦデータに対応するＪＤＦを用いた印刷が行われている。そこで、しおりを持つＰＤＦデータ、または、ＰＤＦデータとそれに関連付けられたＪＤＦを、ＰＤＦ／ＶＴへ変換することが考えられる。この変換によって生成されるＰＤＦ／ＶＴでは、入力ＰＤＬデータのページ構造（論理構造）が、出力されるＰＤＦ／ＶＴのＤＰａｒｔ階層構造によって正しく表現できていなければならない。
【００２０】
しかし、従来、入力ＰＤＬデータの論理構造を解析し、この解析結果に基づいて、入力ＰＤＬデータを、解析された論理構造を正しく表現する階層構造を有するＰＤＬデータに変換して出力する情報処理装置は提案されていない。
【００２１】
本発明は、入力ＰＤＬデータの論理構造を解析し、この解析結果に基づいて、入力ＰＤＬデータを、解析された論理構造を正しく表現する階層構造を有するＰＤＬデータに変換して出力する情報処理装置の提供を目的とする。
【課題を解決するための手段】
【００２２】
本発明の一実施形態の情報処理装置は、第１のしおりと第２のしおりを含む第１のＰＤＬデータをユーザーから受け付けて、前記第１のしおりの参照先のページと対応づいている第１のノードを作成して、前記第２のしおりの参照先のページと対応づいている第２のノードを作成して、階層構造に前記第１のノードと前記第２のノードを含めることにより、ページに対する前記階層構造を有する第２のＰＤＬデータを作成する制御手段を有する。前記制御手段は、前記第１のしおりの参照先のページと前記第２のしおりの参照先のページが同一である場合に、前記第２のノードを作成せずに、前記第１のノードにさらに前記第２のしおりの参照先のページを対応付ける。
【発明の効果】
【００２３】
本実施形態の情報処理装置によれば、入力ＰＤＬデータの論理構造を解析し、この解析結果に基づいて、入力ＰＤＬデータを、解析された論理構造を正しく表現する階層構造を有するＰＤＬデータに変換して出力することができる。
【図面の簡単な説明】
【００２４】
【図１】本実施形態の情報処理装置の構成例を示す図である。
【図２】情報処理装置が入力するＰＤＦデータの例を示す図である。
【図３】情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。
【図４】情報処理装置の動作処理を説明するフローチャートの例である。
【図５】しおり情報解析処理の結果の例を示す図である。
【図６】論理構造の再構成処理を説明するフローチャートである。
【図７】情報処理装置が入力するＰＤＦデータの例を示す図である。
【図８】ＰＤＦ／ＶＴデータの例を示す図である。
【図９】しおり情報の解析処理によって得られた階層構造を説明する図である。
【図１０】情報処理装置が入力するＰＤＦデータの例を示す図である。
【図１１】ＰＤＦ／ＶＴデータの例を示す図である。
【図１２】論理構造の再構成処理を示す図である。
【図１３】しおり情報の解析処理によって得られた階層構造を説明する図である。
【図１４】情報処理装置が入力するＰＤＦデータの例を示す図である。
【図１５】情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。
【図１６】情報処理装置の全体動作処理を説明するフローチャートの例である。
【図１７】ＪＤＦ情報の解析処理Ａを説明するフローチャートである。
【図１８】印刷設定とページ番号との対応表の例である。
【図１９】ＪＤＦ情報の解析処理Ａで得られるデータの例である。
【図２０】ＪＤＦ情報の解析処理Ａで得られるデータの例である。
【図２１】ＪＤＦ情報の解析処理Ｂを説明するフローチャートの例である。
【図２２】階層構造の上位階層の追加処理を示す図である。
【図２３】ＰＤＦ／ＶＴ生成処理を説明するフローチャートの例である。
【図２４】情報処理装置が入力するＰＤＦデータの例を示す図である。
【図２５】情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。
【図２６】ＪＤＦ情報の解析処理Ａで得られるデータの例である。
【図２７】ＪＤＦ情報の解析処理Ａの処理結果を示す図である。
【図２８】印刷設定とページ番号との対応表の例である。
【図２９】ＪＤＦ情報の解析処理Ｂを説明するフローチャートの例である。
【図３０】階層構造の上位階層の追加処理を示す図である。
【発明を実施するための形態】
【００２５】
図１は、本実施形態の情報処理装置の構成例を示す図である。この情報処理装置は、しおりを持つＰＤＦデータを、このＰＤＦデータの論理構造を表現するＤＰａｒｔ階層構造を持つＰＤＦ／ＶＴデータに変換する。また、この情報処理装置は、ＰＤＦデータと当該ＰＤＦデータに関連付けられる印刷設定情報を有するＪＤＦとに基づいて、当該ＰＤＦデータをＰＤＦ／ＶＴデータへ変換する。
【００２６】
ここで、ＰＤＦ／ＶＴは、ＰＤＦ／Ｘをベースとしているので、ＰＤＦをＰＤＦ／ＶＴへ変換するためには、ＰＤＦを一旦ＰＤＦ／Ｘへ変換する必要がある。しかし、公知の技術を用いることによって、ＰＤＦからＰＤＦ／Ｘへの変換は可能である。以降の説明において、特にことわらない限り、入力データとしてのＰＤＦはＰＤＦ／Ｘへ変換されているものとする。
【００２７】
情報処理装置１は、ＣＰＵ１０１、ＲＡＭ１０２、ネットワークＩ／Ｆ（Interface）１０３、外部記憶装置１０４、ディスプレイ１０５、キーボード１０６、ポインティングデバイス１０７を備える。ＣＰＵは、Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略称である。ＲＡＭは、Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙの略称である。本実施形態のＰＤＬデータ変換方法およびコンピュータプログラムは、情報処理装置１が備える各処理部の機能によって実現される。
【００２８】
ＣＰＵ１０１は、ＲＡＭ１０２に格納されている制御プログラムに従って、情報処理装置全体の制御を行う。このプログラムは、本実施形態のＰＤＬデータ変換方法を実現するコンピュータプログラムである。ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムや、文書画像等のデータを格納する。ネットワークＩ／Ｆ１０３は、ネットワークと接続する。情報処理装置１は、ネットワークＩ／Ｆ１０３およびネットワークを介して、外部装置との間でデータを送受信する。外部記憶装置は、情報処理装置１による処理結果、または情報処理装置１への入力情報を記憶する。ディスプレイは、情報処理装置１による処理結果、または情報処理装置１への入力情報を表示する。キーボード、ポインティングデバイス１０７は、ユーザの操作に応じた情報を情報処理装置１に入力する。
【００２９】
ＲＡＭ１０２に格納されている制御プログラムは、次のような各動作を行う。制御プログラムは、ＲＡＭ１０２に格納されているＯＳ（Operating System）の機能を必要に応じて使用する。制御プログラムは、ＲＡＭ１０２に一時記憶する内部データの内容の読み書きを行う。制御プログラムは、ネットワークＩ／Ｆ１０３を介してデータの送受信を行う。制御プログラムは、外部記憶装置１０４上でデータの読み書きを行う。制御プログラムは、ディスプレイ１０５にユーザインタフェースや処理結果等の視覚情報を表示する。また、制御プログラムは、キーボード１０６やポインティングデバイス１０７からユーザの入力を受け付ける。以下、情報処理装置１の動作を説明するにあたり、上述した情報処理装置１の個々のデバイスの動作については、必要に応じて省略する。
【００３０】
図２は、本発明の実施例１において情報処理装置が入力するＰＤＦデータの例を示す図である。図２に示すＰＤＦデータは、ページオブジェクトがシーケンシャルに並んだ構造を有する。以下の説明では、ページオブジェクトをページとも記述する。このＰＤＦデータは、Ｐ１（２１１）〜Ｐ５（２１５）の５ページ分のページオブジェクトを備える。
【００３１】
このＰＤＦデータは、「しおり」と呼ばれる情報を有する。しおりは、任意のページの任意の位置を記録する。具体的には、しおり「１章」２０２は、Ｐ２（２１２）の先頭を記録している。しおり「２章」２０６は、Ｐ４（２１４）の先頭を記録している。すなわち、しおりは、ＰＤＦデータが含むコンテンツの位置を示す。
【００３２】
しおりは、階層構造を有する。この例では、しおり「１章」２０２は、しおり「１．１」２０３、しおり「１．２」２０４、しおり「１．３」２０５を子要素として持っている。しおり「２章」２０６は、しおり「２．１」２０７、しおり「２．２」２０８を子要素として持っている。しおり「３章」２０９は、しおり「３．１」２１０を子要素として持っている。すなわち、しおりは、ＰＤＦデータのコンテンツに対して意味を持った階層構造を表現する。以下の説明では、このような構造を論理構造またはしおり論理構造と記述する。
【００３３】
ただし、しおりは、実際のページの区切り位置ではなく、任意のページの任意の位置を記録するため、多くの場合、しおりとページとは一対一には対応しない。従って、しおりは、ページ単位の構造化に用いることはできない。しおりとページとが一対一に対応する構造を物理構造という。
【００３４】
図３は、実施例１において情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。情報処理装置１は、図２に示すＰＤＦデータ（第１のＰＤＬデータ）を図３に示す階層構造を有するＰＤＦ／ＶＴデータ（第２のＰＤＬデータ）に変換して出力する装置である。
【００３５】
図３に示すページオブジェクト３１２、３１３、３１４、３１５、３１６は、それぞれ、図２に示すページオブジェクト２１１、２１２、２１３、２１４、２１５と対応関係にある。
【００３６】
ＰＤＦ／ＶＴは、ＤＰａｒｔと呼ばれるオブジェクトを用いてページオブジェクトを構造化することができる。図３中の３０１、３０３、３０５、３０７、３０９は、ＤＰａｒｔ階層構造が含むノードであるＤＰａｒｔの例である。ＤＰａｒｔのうち、子要素を持たないＤＰａｒｔが、終端ノードである。終端ノードは、ページオブジェクトを参照することができる。また、ＤＰａｒｔ階層構造が含む任意のＤＰａｒｔにはＤＰＭと呼ばれるメタデータを付加することができる。
【００３７】
図３に示す例では、ＤＰａｒｔ３０３は、「表紙」というメタデータ３０４を持ち、Ｐ１のページオブジェクト３１２を参照する。ＤＰａｒｔ３０５は、「１章」というメタデータ３０６を持ち、Ｐ２のページオブジェクト３１３とＰ３のページオブジェクト３１４を参照する。
【００３８】
また、ＰＤＦ／ＶＴは、その仕様により、第一階層目のＤＰａｒｔは１つである必要がある。図３に示す例では、第一階層目のＤＰａｒｔは、ＤＰａｒｔ３０１のみである。このようなＰＤＦ／ＶＴを用いることで、ＤＰａｒｔ階層構造の特定のノードを指定して印刷設定を行ったり、ＤＰＭを参照し、その値に基づいて印刷設定を行ったりすることが可能となる。具体的には、第二階層の１つ目のＤＰａｒｔであるＤＰａｒｔ３０３に対応するページ３１２に対して光沢紙を用いるというような、ＤＰａｒｔ単位の印刷指定が可能となる。また、例えば第二階層に「１章」というＤＰＭを持っているＤＰａｒｔ３０５に対応するページ３１３、３１４に対して両面印刷を行うことも可能となる。
【００３９】
図４は、実施例１の情報処理装置の動作処理を説明するフローチャートの例である。図４（Ａ）は、情報処理装置の全体動作処理を示す。本実施例では、情報処理装置１は、しおりを持つＰＤＦデータ（ＰＤＦファイル）をＰＤＦ／ＶＴデータへ変換する。図４に示すステップＳ１１０１乃至Ｓ１１０５の処理は、情報処理装置１が備えるＣＰＵ１０１がＲＡＭ１０２に格納されている制御プログラムを実行することによって行われる。
【００４０】
ＣＰＵ１０１が、ＰＤＦファイルの入力を受け付け、ＰＤＦファイルに含まれるしおりの情報を解析する（ステップＳ１１０２）。すなわち、ＣＰＵ１０１は、ＰＤＦファイルの論理構造を解析する解析手段として機能する。また、ステップＳ１１０２において、ＣＰＵ１０１は、さらに、論理構造の解析結果に基づいて、上記論理構造を表現する階層構造であって、ノードを含む階層を有する第１の階層構造を生成する第１の生成手段として機能する。
【００４１】
続いて、ＣＰＵ１０１が、しおりの情報の解析結果に基づいて、論理構造を再構成する（ステップＳ１１０３）。ステップＳ１１０３において、ＣＰＵ１０１は、第１の階層構造が含むノードとＰＤＬファイルが含むページとの対応関係を解析し、該解析結果に基づいて、第２の階層構造を生成する第２の生成手段として機能する。そして、ＣＰＵ１０１が、再構成された論理構造に基づいて、ＰＤＦ／ＶＴデータを生成する（ステップＳ１１０４）。ステップＳ１１０４において、ＣＰＵ１０１は、第２の階層構造が有する階層が含むノードとＰＤＬファイルが含むページとの対応関係に基づいて、第２の階層構造と同じ階層構造を有するＰＤＦ／ＶＴデータを生成して出力する出力手段として機能する。
【００４２】
図４（Ｂ）は、図４（Ａ）のＳ１１０２におけるしおり情報解析処理を説明するフローチャートである。図４（Ｂ）に示すステップＳ１１０６乃至Ｓ１１１１の処理は、情報処理装置１が備えるＣＰＵ１０１が制御プログラムを実行することによって行われる。
【００４３】
ＣＰＵ１０１が、情報処理装置１のユーザからＰＤＦファイルを受け付ける（ステップＳ１１０７）。続いて、ＣＰＵ１０１が、入力されたＰＤＦファイルがしおりを持つかを判断する（ステップＳ１１０８）。入力されたＰＤＦファイルがしおりを持たない場合は、処理を終了する（ステップＳ１１１１）。入力されたＰＤＦファイルがしおりを持つ場合、ＣＰＵ１０１が、ＰＤＦファイルのしおりの親子関係を解析する（ステップＳ１００９）。すなわち、ＣＰＵ１０１は、しおりの親子関係を解析し、該しおりの親子関係に基づいて、ＰＤＦファイルの論理構造を解析する。そして、ＣＰＵ１０１は、当該ＰＤＦファイルの論理構造の解析結果に基づいて、しおりに対応するノードを含む階層を有する第１の階層構造を生成する。そして、処理が終了する（ステップＳ１１１０）。
【００４４】
図５は、図４（Ｂ）を参照して説明したしおり情報解析処理の結果の例を示す図である。図５（Ａ）は、図２に示すＰＤＦデータを対象としたしおり情報解析処理の結果のデータ構造を示す。図５（Ａ）に示すしおり情報解析処理の結果は、第一階層４２２と第二階層４２３という２つの階層（しおりの階層）を有する階層構造（第１の階層構造）を持つ。
【００４５】
図５（Ａ）に示す４０２、４０３、４０４、４０５は、それぞれ、図２のしおり２０１、２０２、２０６、２０９に対応するノードである。これらのノードは、第一階層４２２に含まれる。これらのノードには、しおりの内容と、しおりが指すページ番号（４０６〜４０９）とが格納される。図５（Ａ）に示す例では、ノード４０２には、対応するしおりの内容「表紙」と、しおりが指すページ番号「ｐ１」とが格納される。
【００４６】
また、図５（Ａ）に示す４１０、４１１、４１２、４１３、４１４、４１５は、それぞれ、図２のしおり２０３、２０４、２０５、２０７、２０８、２１０に対応するノードである。これらのノードは、第二階層４２３に含まれる。これらのノードには、しおりの内容と、しおりが指すページ番号（４１６〜４２１）とが格納される。図５（Ａ）に示す例では、ノード４１０には対応するしおりの内容「１．１」と、しおりが指すページ番号「ｐ２」とが格納される。また、ＣＰＵ１０１は、ＰＤＦ／ＶＴの仕様に従い、しおりに対応しない最上位の階層のノード４０１を設ける。
【００４７】
図５（Ｂ）は、第一階層のノードに対応するしおりの内容とページ番号との対応情報を示す図である。ＣＰＵ１０１が、この対応情報を所定の記憶手段に記憶する。第一階層４２２が含むノード４０２、４０３、４０４、４０５は、しおりの内容として、それぞれ、「表紙」４２４、「１章」４２５、「２章」４２６、「３章」４２７を持つ。また、これらのノードは、ページ番号として、「ｐ１」４２８、「ｐ２」４２９、「ｐ４」４３０、「ｐ５」４３１を持つ。
【００４８】
図５（Ｃ）は、第二階層のノードに対応するしおりの内容とページ番号との対応情報を示す図である。ＣＰＵ１０１は、この対応情報を所定の記憶手段に記憶する。第二階層４２３に対応するノード４１０、４１１、４１２、４１３、４１４、４１５は、しおりの内容として、それぞれ、「１．１」４３２、「１．２」４３３、「１．３」４３４、「２．１」４３５、「２．２」４３６、「３．１」４３７を持つ。また、これらのノードは、ページ番号として「ｐ２」４３８、「ｐ２」４３９、「ｐ３」４４０、「ｐ４」４４１、「ｐ４」４４２、「ｐ５」４４３を持つ。
【００４９】
図６は、図４（Ａ）のＳ１１０３における論理構造の再構成処理を説明するフローチャートである。図６（Ａ）は、実施例１における論理構造の再構成処理を示す。図６（Ａ）に示すステップＳ１１１７乃至Ｓ１１２２の処理は、情報処理装置１が備えるＣＰＵ１０１が制御プログラムを実行することによって行われる。
【００５０】
まず、ＣＰＵ１０１が、しおり解析処理によって得られたしおりの階層数を変数ＭａｘＮに代入し、変数Ｎに変数ＭａｘＮの値を代入する（ステップＳ１１１７）。図５（Ａ）に示すしおり解析処理の結果を参照すると、しおりの階層数は２である。従って、ステップＳ１１１７において、ＣＰＵ１０１は、変数ＭａｘＮに２を代入する。次に、ＣＰＵ１０１が、Ｎ階層目の階層が含むしおりと、しおりが指すページとが一対一に対応するかを判断する（ステップＳ１１１８）。
【００５１】
図５（Ａ）に示す階層構造と、図５（Ｃ）に示す対応情報とを参照して、ステップＳ１１１８の処理を説明する。Ｎ＝２の場合、ＣＰＵ１０１は、第二階層４２３のノードに対応するしおりとページ番号との対応情報（図５（Ｃ））を参照する。ｐ２は「１．１」と「１．２」に対応する。また、ｐ４は「２．１」と「２．２」とに対応する。従って、ページを指すしおりが一意に定まらないので、ＣＰＵ１０１は、しおりと、しおりが指すページとが一対一対応しないと判断する。Ｎ＝１の場合、ＣＰＵ１０１は、第一階層４２２のノードに対応するしおりとページ番号との対応情報（図５（Ｂ））を参照する。この場合には、ページを指すしおりが一意に定まる。従って、ＣＰＵ１０１は、しおりと、しおりが指すページとが一対一に対応すると判断する。
【００５２】
Ｎ階層目の階層が含むしおりと、しおりが指すページとが一対一に対応する場合、ＣＰＵ１０１が、当該Ｎ階層目の階層を選択し、該選択された階層を有する階層構造（第２の階層構造）を生成する。すなわち、ＣＰＵ１０１は、第１の階層構造が有する階層のうち、ＰＤＦファイルが含むページと一対一に対応するノードを含む階層を選択し、該選択された階層を有する第２の階層構造を生成する。そして、処理が終了する。Ｎ階層目の階層が含むしおりと、しおりが指すページとが一対一に対応しない場合、ＣＰＵ１０１が、当該Ｎ階層目の階層を第２の階層構造に含ませる階層として選択しない。そして、ＣＰＵ１０１が、変数Ｎの値を１つ減らして（ステップＳ１１１９）、ステップＳ１１２０に進む。
【００５３】
次に、ＣＰＵ１０１が、Ｎ＝０であるかを判断する（ステップＳ１１２０）。Ｎ＝０でない場合は、ステップＳ１１１８に戻る。Ｎ＝０である場合、ＣＰＵ１０１は、しおりとページの対応がとれる階層が無いと判断して、処理を終了する（ステップＳ１１２１）。
【００５４】
図４（Ｃ）は、図４（Ａ）のＳ１１０４におけるＰＤＦ／ＶＦ生成処理を説明するフローチャートである。ＣＰＵ１０１が、論理構造の再構成処理において生成された階層構造に基づいて、ＰＤＦ／ＶＴのＤＰａｒｔ階層構造を生成する（ステップＳ１１１３）。ＣＰＵ１０１は、論理構造の再構成処理において生成された階層構造と同じ構造を有するＤＰａｒｔ階層構造を生成する。例えば、図２に示すＰＤＦデータを入力とした場合、論理構造の再構成処理の結果、生成された論理構造は、第一階層４２２（図５（Ａ））を含む。従って、ＣＰＵ１０１は、第一階層４２２が含むノードと、しおりに対応しない最上位の階層のノード４０１とから、ＤＰａｒｔ階層構造を生成する。具体的には、ＣＰＵ１０１は、図３に示すＤＰａｒｔ３０１、３０３、３０５、３０７、３０９を生成する。図３に示すＤＰａｒｔ３０１、３０３、３０５、３０７、３０９は、それぞれ、図５（Ａ）に示すノード４０１、４０２、４０３、４０４、４０５に対応する。
【００５５】
次に、ＣＰＵ１０１が、各ＤＰａｒｔのＤＰＭのメタデータとして、論理構造の再構成処理で生成された階層構造のしおりの値を格納する（ステップＳ１１１４）。この例では、ＣＰＵ１０１は、図５（Ｂ）に示す対応情報を参照して、第一階層４２２（図５（Ａ））のノードに対応するしおりの値を取得する。例えば、図５（Ａ）に示すノード４０２に対応するしおりの値は「表紙」であり、ページ番号は「ｐ１」である。従って、ＣＰＵ１０１は、ノード４０２に対応するＤＰａｒｔであるＤＰａｒｔ３０３のＤＰＭ３０４（図３）のメタデータキーを「ＩＤ」とし、メタデータ値に「表紙」を格納する。
【００５６】
図４（Ｃ）に戻って、ＣＰＵ１０１が、ステップＳ１１１４の処理後のＤＰａｒｔ階層構造と図４（Ｂ）のステップＳ１１０７で受け付けたＰＤＦデータのページとの対応関係に基づいて、ＰＤＦ／ＶＴデータを生成する（ステップＳ１１１５）。
【００５７】
ステップＳ１１１５について具体的に説明する。ステップ１１１４の処理が終了した時点で、図３中のＤＰａｒｔおよびＤＰＭを含む構造は生成されている。ここで、ＤＰａｒｔ階層構造の終端ノードであるＤＰａｒｔ３０３、３０５、３０７、３０９は、それぞれ、図５（Ａ）中のノード４０２、４０３、４０４、４０５に対応する。
【００５８】
図５（Ｂ）を参照すると、ノード４０２が対応するしおり「表紙」に対応するページは「ｐ１」である。従って、ＣＰＵ１０１は、図３中のＤＰａｒｔ３０３とページオブジェクト３１２とを対応付ける。また、ノード４０３が対応するしおり「１章」に対応するページは「ｐ２」である。従って、ＣＰＵ１０１は、図３中のＤＰａｒｔ３０５とページオブジェクト３１３とを対応付ける。
【００５９】
また、ノード４０４が対応するしおり「２章」に対応するページは「ｐ４」である。従って、ＣＰＵ１０１は、図３中のＤＰａｒｔ３０７とページオブジェクト３１５とを対応付ける。また、ノード４０５が対応するしおり「３章」に対応するページは「ｐ５」である。従って、ＣＰＵ１０１は、図３中のＤＰａｒｔ３０９とページオブジェクト３１６とを対応を付ける。この一連の処理を行うことで、図３に示すような、ＰＤＦ／ＶＴデータが生成される。実施例１の情報処理装置によれば、入力ＰＤＬデータの論理構造の解析結果に基づいて、入力ＰＤＬデータを、解析された論理構造を正しく表現する階層構造を有するＰＤＬデータに変換して出力することができる。
【００６０】
次に、実施例１の変形例Ａについて説明する。ＰＤＦのしおりは任意のページの任意の箇所を指し示すことが可能である。従って、例えば、最上位階層のしおりではページと一対一対応しているが、複数のしおりが１つのページを指し示す場合がある。この場合に、情報処理装置がＰＤＦ／ＶＴを作成すると、ページ途中で異なる印刷指示を与えることが可能な構造となってしまうおそれがある。実施例１の変形例Ａでは、複数のしおりが１つのページを指し示す場合であっても、ＣＰＵ１０１が、ページ単位で矛盾した印刷指示を与えることのないより好適なＰＤＦ／ＶＴデータを生成する。なお、情報処理装置１は、ユーザの選択操作に応じて、前述した実施例１の処理または実施例１の変形例Ａの処理のうち、いずれかの処理を選択して実行することができる。
【００６１】
図７は、実施例１の変形例Ａにおいて情報処理装置が入力するＰＤＦデータの例を示す図である。このＰＤＦデータにおいては、Ｐ３のページオブジェクト５１３に「１．３」５０５、「２章」５０６、「２．１」５０７というしおりが指定されており、１章のコンテンツと２章のコンテンツとが混在している。すなわち、ページの途中で、１章に対応するしおりから２章に対応するしおりに切り替わっている。
【００６２】
図８は、ＰＤＦ／ＶＴデータの例を示す図である。図８（Ａ）は、図７に示すＰＤＦデータを入力として、前述した実施例１の処理を行った場合に出力されるＰＤＦ／ＶＴデータを示す。図８に示すＰＤＦ／ＶＴデータは、ＤＰａｒｔ６０１乃至６０９、ＤＰＭ６０４乃至６１０、ページオブジェクト６１１乃至６１５を含む。
【００６３】
このＰＤＦ／ＶＴデータは、ＤＰａｒｔ６０７のＤＰＭとしてメタデータキー「ＩＤ」、メタデータ値「２章」が格納されているにも関わらず、ページオブジェクト６１３に１章のコンテンツを含んでしまっている。従って、メタデータとページオブジェクトの関係に不整合が起きてしまう。
【００６４】
図８（Ｂ）は、実施例１の変形例Ａにおいて情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。情報処理装置１は、図７に示すＰＤＦデータを図８（Ｂ）に示すＰＤＦ／ＶＴデータに変換して出力する。このＰＤＦ／ＶＴデータは、ＤＰａｒｔ６１７乃至６２３、ＤＰＭ６１９乃至６２３、ページオブジェクト６２５乃至６２９を含む。
【００６５】
情報処理装置１は、ＤＰａｒｔ６２１のＤＰＭとして、メタデータキー「ＩＤ」、メタデータ値「１章＋２章」を設定する。そして、情報処理装置１は、ＤＰａｒｔ６２１にページオブジェクト６２６、６２７、６２８を対応付ける。これにより、図８（Ｂ）に示すＰＤＦ／ＶＴデータは、ページ単位で矛盾した印刷指示を与えることのない好適な階層構造を有する。
【００６６】
例えばユーザが、「表紙」というメタデータを含むページを印刷指定した場合、ページオブジェクト６２５が印刷される。また、ユーザが「１章＋２章」というメタデータを含むページを印刷指定した場合、ページオブジェクト６２６、６２７、６２８が印刷される。従って、図８（Ｂ）に示すＰＤＦ／ＶＴデータによれば、メタデータの値とページのコンテンツの関係が一致するようになり、ユーザのメタデータ指定に則した印刷指定が可能となる。
【００６７】
実施例１の変形例Ａにおけるしおり情報の解析処理は、図４（Ａ）のステップＳ１１０２におけるしおり情報の解析処理と同様である。また、実施例１の変形例ＡにおけるＰＤＦ／ＶＴ生成処理は、図４（Ａ）のステップＳ１１０４におけるＰＤＦ／ＶＴ生成処理と同様である。
【００６８】
図６（Ｂ）は、実施例１の変形例Ａにおける論理構造の再構成処理を示す。図６（Ｂ）のステップＳ１１２３乃至Ｓ１１２７の処理は、図６（Ａ）のステップＳ１１１７乃至Ｓ１１２１の処理と同様である。
【００６９】
まず、ＣＰＵ１０１が、しおり情報の解析処理（図４（Ａ）のＳ１１０２）によって得られるしおりの階層数を変数ＭａｘＮに代入する（ステップＳ１１２３）。ステップＳ１１２３においては、さらに、ＣＰＵ１０１が、変数Ｎに変数ＭａｘＮの値を代入する。
【００７０】
図９は、しおり情報の解析処理によって得られた階層構造を説明する図である。図９（Ａ）は、図７に示すＰＤＦデータを対象としたしおり情報の解析処理結果のデータ構造を示す。
【００７１】
図９（Ａ）に示す７０２、７０３、７０４、７０５は、それぞれ、図７のしおり５０１、５０２、５０６、５０９に対応するノードである。これらのノードは、第一階層７２２に含まれる。これらのノードには、しおりの内容と、しおりが指すページ番号（７０６〜７０９）とが格納される。図７（Ａ）に示す例では、ノード７０２には、対応するしおりの内容「表紙」と、しおりが指すページ番号「ｐ１」とが格納される。
【００７２】
また、図９（Ａ）に示す７１０、７１１、７１２、７１３、７１４、７１５は、それぞれ、図７のしおり５０３、５０４、５０５、５０７、５０８、５１０に対応するノードである。これらのノードは、第二階層７２３に含まれる。これらのノードには、しおりの内容と、しおりが指すページ番号（７１６〜７２１）とが格納される。ＣＰＵ１０１は、ＰＤＦ／ＶＴの仕様に従い、しおりに対応しない最上位の階層のノード７０１を設ける。
【００７３】
図９（Ｂ）は、第一階層のノードに対応するしおりの内容とページ番号との対応情報を示す図である。ＣＰＵ１０１が、この対応情報を所定の記憶手段に記憶する。第一階層７２２が含むノード７０２、７０３、７０４、７０５は、しおりの内容として、それぞれ、「表紙」７２４、「１章」７２５、「２章」７２６、「３章」７２７を持つ。また、これらのノードは、ページ番号として、「ｐ１」７２８、「ｐ２」７２９、「ｐ４」７３０、「ｐ５」７３１を持つ。
【００７４】
図９（Ｃ）は、第二階層のノードに対応するしおりの内容とページ番号との対応情報を示す図である。ＣＰＵ１０１は、この対応情報を所定の記憶手段に記憶する。第二階層７２３に対応するノード７１０、７１１、７１２、７１３、７１４、７１５は、しおりの内容として、それぞれ、「１．１」７３２、「１．２」７３３、「１．３」７３４、「２．１」７３５、「２．２」７３６、「３．１」７３７を持つ。また、これらのノードは、ページ番号として「ｐ２」７３８、「ｐ２」７３９、「ｐ３」７４０、「ｐ４」７４１、「ｐ４」７４２、「ｐ５」７４３を持つ。図９（Ａ）に示す例では、しおりの階層は２階層である。従って、図６（Ｂ）のステップＳ１１２３において、変数ＭａｘＮには２が代入される。
【００７５】
ステップＳ１１２４において、ＣＰＵ１０１が、Ｎ階層目の階層が含むしおりと、しおりが指すページとが一対一に対応しないと判断した場合は、ステップＳ１１２５以下の処理に進む。例えば、Ｎ＝２の場合、図９（Ｃ）を参照すると、ｐ２は「１．１」と「１．２」とから指されている。また、ｐ３は「１．３」と「２．１」とから指されており、従って、ページを指すしおりが一意に定まらないため、ＣＰＵ１０１は、しおりとページとが一対一に対応しないと判断して、ステップＳ１１２５以下の処理に進む。
【００７６】
ステップＳ１１２４において、ＣＰＵ１０１が、Ｎ階層目の階層が含むしおりと、しおりが指すページとが一対一に対応すると判断した場合は、ステップＳ１１２８に進む。例えば、Ｎ＝１の場合、図９（Ｂ）を参照すると、しおりとページとが一対一に対応する。従って、ＣＰＵ１０１が、しおりとページとが一対一に対応すると判断して、ステップＳ１１２８に進む。
【００７７】
ステップＳ１１２８において、ＣＰＵ１０１が、Ｎ＋１階層目からＭａｘＮ階層目のしおりの位置を調べる（ステップＳ１１２８）。この例では、Ｎ＝１、ＭａｘＮ＝２である。従って、ＣＰＵ１０１は、図９（Ａ）に示すデータ構造を参照して、第二階層７２３のしおりの位置を調べる。
【００７８】
次に、ＣＰＵ１０１が、ページの途中で対応するＮ階層目のしおりの切り替わりが存在するかを調べる（ステップＳ１１２９）。しおりの切り替わりが存在する場合は、ステップＳ１１３０に進む。しおりの切り替わりが存在しない場合は、ＣＰＵ１０１が、当該Ｎ階層目の階層を選択し、該選択された階層を有する階層構造（第２の階層構造）を生成する。そして、処理が終了する（ステップＳ１１３１）。
【００７９】
上記ステップＳ１１２９の処理について具体的に説明する。図９（Ａ）に示すデータ構造を参照すると、第一階層（Ｎ＝１）のノード「１章」７０３の子ノード「１．３」７１２は、ｐ３のページに対応付けられている。一方、ノード「２章」７０４の子ノード「２．１」７１３も、ｐ３のページに対応付けられている。このような場合、ＣＰＵ１０１は、ページの途中で対応するＮ階層目のしおりの切り替わりが存在すると判断する。「１章」が、切り替わり元のしおりである。「２章」が切り替わり先のしおりである。
【００８０】
次に、ステップＳ１１３０において、ＣＰＵ１０１は、ページの途中で対応するＮ階層目のしおりの切り替わりが存在すると判断されたしおりのマージを行う（ステップＳ１１３０）。例えば、ＣＰＵ１０１は、図９（Ａ）に示すデータ構造が含むノード「１章」７０３とノード「２章」７０４とをマージ（統合）する。すなわち、ＣＰＵ１０１は、メタデータ値が「１章＋２章」であるノードを作成する。そして、ＣＰＵ１０１は、マージ後のノードを含むＮ階層目の階層を選択し、該選択された階層を有する階層構造（第２の階層構造）を生成して、処理が終了する（ステップＳ１１３１）。
【００８１】
上述したことから、ＣＰＵ１０１は、選択された階層が含むノードに対応するしおりがＰＤＦファイルが含むページの途中で切り替わるかを判断する。ＣＰＵ１０１は、該しおりがＰＤＦファイルが含むページの途中で切り替わる場合に、該選択された階層において、切り替わり元のしおりに対応するノードと切り替わり先のしおりに対応するノードとを統合する。
【００８２】
図６（Ｂ）を参照した論理構造の再構成処理の後、ＣＰＵ１０１が、ＰＤＦ／ＶＴ生成処理（図４（Ａ）のＳ１１０４）を実行する。なお、ＰＤＦ／ＶＴ生成処理において、ＣＰＵ１０１は、各ＤＰａｒｔのＤＰＭのメタデータとして、論理構造の再構成処理で生成された階層構造のしおりの値を格納する（図４（Ｃ）のステップＳ１１１４）。このしおりの値の格納処理において、上記マージされたノードについては、ＣＰＵ１０１は、以下の処理を実行する。ＣＰＵ１０１は、マージされたノードに対応するしおりの情報として「１章＋２章」を取得する。そして、ＣＰＵ１０１は、このマージされたノードに対応するＤＰａｒｔであるＤＰａｒｔ６２１（図８（Ｂ））のＤＰＭ６２２のメタデータキーを「ＩＤ」とし、メタデータ値に「１章＋２章」を格納する。
【００８３】
また、ＰＤＦ／ＶＴ生成処理において、ＣＰＵ１０１は、ＤＰａｒｔ階層構造とＰＤＦデータのページとの対応関係に基づいて、ＰＤＦ／ＶＴデータを生成する（図４（Ｃ）のステップＳ１１１５）。このＤＰａｒｔ階層構造とＰＤＦデータのページとの対応付け処理において、上記マージされたノードに対応するＤＰａｒｔ６２１については、ＣＰＵ１０１は、以下の処理を実行する。図９（Ａ）を参照すると、しおり「１章」の子要素であるしおりに対応するページは「ｐ２」と「ｐ３」であり、しおり「２章」の子要素に対応するページは、「ｐ３」と「ｐ４」である。従って、ＣＰＵ１０１は、ＤＰａｒｔ６２１と、ｐ２乃至４に対応するページオブジェクト（６２６乃至６２８）とを対応付ける。これにより、図８（Ｂ）に示すＰＤＦ／ＶＴデータが生成される。
【００８４】
次に、実施例１の変形例Ｂについて説明する。ＰＤＦのしおりは任意のページの任意の箇所を指し示すことが可能であるため、例えば最上位階層のしおりが同一ページに複数存在する場合がある。この場合、ページと一対一対応するしおりが存在しないため、しおりの階層構造が反映されないＰＤＦ／ＶＴが生成されてしまうおそれがある。
【００８５】
そこで、実施例１の変形例Ｂでは、ＣＰＵ１０１は、最上位階層のしおりが同一ページに複数存在する場合であっても、ページ単位で矛盾した印刷指示を与えることのないより好適なＰＤＦ／ＶＴデータを生成する。なお、情報処理装置１は、ユーザの選択操作に応じて、実施例１の処理、実施例１の変形例Ａの処理、および実施例１の変形例Ｂの処理のうち、いずれかの処理を選択して実行することができる。
【００８６】
図１０は、実施例１の変形例Ｂにおいて情報処理装置が入力するＰＤＦデータの例を示す図である。このＰＤＦデータは、１つのページにしおり階層構造における最上位階層のノードが複数存在している。具体的には、Ｐ２のページオブジェクト８１２にしおり論理構造における最上位階層のノード「１章」８０２と「２章」８０６とが存在する。このようなＰＤＦデータを入力データとしてデータ変換処理を行うと、しおりの階層と一対一の対応がとれるページオブジェクトが存在しないため、図１１（Ａ）に示すＰＤＦ／ＶＴデータが生成される。このＰＤＦ／ＶＴデータは、しおり論理構造を反映できていない。従って、ＤＰａｒｔ階層構造の特定のノードを指定して印刷設定を行ったり、ＤＰＭを参照し、その値に基づいて印刷設定を行ったりすることができない。
【００８７】
図１１（Ｂ）は、実施例１の変形例Ｂにおいて情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。情報処理装置１は、図１０に示すＰＤＦデータを図１１（Ｂ）に示すＰＤＦ／ＶＴデータに変換して出力する。このＰＤＦ／ＶＴデータは、ＤＰａｒｔ９０８乃至９１４、ＤＰＭ９０９乃至９１５、ページオブジェクト９１６乃至９２０を含む。具体的には、情報処理装置１は、ＤＰａｒｔ９１２のＤＰＭに、メタデータキー「ＩＤ」、メタデータ値「１章＋２章」を設定する。そして、ＤＰａｒｔ９１２にページオブジェクト９１７乃至９１９が対応付けられたＰＤＦ／ＶＴデータを生成する。これにより、しおり論理構造を反映したＰＤＦ／ＶＴデータを生成することができる。
【００８８】
実施例１の変形例Ｂにおけるしおり情報の解析処理は、図４（Ａ）のステップＳ１１０２におけるしおり情報の解析処理と同様である。また、実施例１の変形例ＢにおけるＰＤＦ／ＶＴ生成処理は、図４（Ａ）のステップＳ１１０４におけるＰＤＦ／ＶＴ生成処理と同様である。
【００８９】
図１２は、実施例１の変形例Ｂにおける論理構造の再構成処理を示す。図１２のＳ１１３２、Ｓ１１３３，Ｓ１１３６、Ｓ１１３７，Ｓ１１３８，Ｓ１１３９、Ｓ１１４０，Ｓ１１４２は、それぞれ、図６（Ｂ）のＳ１１２３，Ｓ１１２４，Ｓ１１２５，Ｓ１１２６，Ｓ１１２７，Ｓ１１２８，Ｓ１１２９，Ｓ１１３１と同様である。また、Ｓ１１４０でＹｅｓの場合に実行されるＳ１１４１は、図６（Ｂ）のＳ１１３０と同様である。
【００９０】
ＣＰＵ１０１が、しおり情報の解析処理（図４（Ａ）のＳ１１０２）によって得られるしおりの階層数を変数ＭａｘＮに代入する（ステップＳ１１３２）。ステップＳ１１２３においては、さらに、ＣＰＵ１０１が、変数Ｎに変数ＭａｘＮの値を代入する。
【００９１】
図１３は、しおり情報の解析処理によって得られた階層構造を説明する図である。図１３（Ａ）は、図１０に示すＰＤＦデータを対象としたしおり情報の解析処理結果のデータ構造を示す。
【００９２】
図１３（Ａ）に示す１００２、１００３、１００４、１００５は、それぞれ、図１０のしおり８０１、８０２、８０６、８０９に対応するノードである。これらのノードは、第一階層１０２２に含まれる。これらのノードには、しおりの内容と、しおりが指すページ番号（１００６〜１００９）とが格納される。図１３（Ａ）に示す例では、ノード１００２には、対応するしおりの内容「表紙」と、しおりが指すページ番号「ｐ１」とが格納される。
【００９３】
また、図１３（Ａ）に示す１０１０、１０１１、１０１２、１０１３、１０１４、１０１５は、それぞれ、図１０のしおり８０３、８０４、８０５、８０７、８０８、８１０に対応するノードである。これらのノードは、第二階層１０２３に含まれる。これらのノードには、しおりの内容と、しおりが指すページ番号（１０１６〜１０２１）とが格納される。ＣＰＵ１０１は、ＰＤＦ／ＶＴの仕様に従い、しおりに対応しない最上位の階層のノード１００１を設ける。
【００９４】
図１３（Ｂ）は、第一階層のノードに対応するしおりの内容とページ番号との対応情報を示す図である。ＣＰＵ１０１が、この対応情報を所定の記憶手段に記憶する。第一階層１０２２が含むノード１００２、１００３、１００４、１００５は、しおりの内容として、それぞれ、「表紙」１０２４、「１章」１０２５、「２章」１０２６、「３章」１０２７を持つ。また、これらのノードは、ページ番号として、「ｐ１」１０２８、「ｐ２」１０２９、「ｐ２」１０３０、「ｐ５」１０３１を持つ。
【００９５】
図１３（Ｃ）は、第二階層のノードに対応するしおりの内容とページ番号との対応情報を示す図である。ＣＰＵ１０１は、この対応情報を所定の記憶手段に記憶する。第二階層１０２３に対応するノード１０１０、１０１１、１０１２、１０１３、１０１４、１０１５は、しおりの内容として、「１．１」１０３２、「１．２」１０３３、「１．３」１０３４、「２．１」１０３５、「２．２」１０３６、「３．１」１０３７を持つ。また、これらのノードは、ページ番号として「ｐ２」１０３８、「ｐ２」１０３９、「ｐ２」１０４０、「ｐ４」１０４１、「ｐ４」１０４２、「ｐ５」１０４３を持つ。図１３（Ａ）に示す例では、しおりの階層は２階層である。従って、図１２のステップＳ１１３２において、変数ＭａｘＮには２が代入される。
【００９６】
変形例Ｂでは、ステップＳ１１３３において、ＣＰＵ１０１が、Ｎ階層目の階層が含むしおりと、しおりが指すページとが一対一に対応すると判断した場合は、ステップＳ１１３９以下の処理に進む。
【００９７】
図１２のステップＳ１１３３において、ＣＰＵ１０１が、Ｎ階層目の階層が含むしおりと、しおりが指すページとが一対一に対応しないと判断した場合は、ステップＳ１１３４に進む。例えば、Ｎ＝２の場合、図１３（Ｃ）を参照すると、ｐ２は「１．１」と「１．２」とから指されている。従って、ページを指すしおりが一意に定まらないため、ＣＰＵ１０１は、しおりとページとが一対一に対応しないと判断する。また、Ｎ＝１の場合、図１３（Ｂ）を参照すると、ｐ２は「１章」と「２章」とから指されている。従って、ページを指すしおりが一意に定まらないため、ＣＰＵ１０１は、しおりとページとが一対一に対応しないと判断する。
【００９８】
図１２のステップＳ１１３４において、ＣＰＵ１０１が、Ｎ＝１であるかを判断する（ステップＳ１１３４）。Ｎ＝１でない場合は、ステップＳ１１３６に進む。Ｎ＝１である場合、ＣＰＵ１０１が、Ｎ階層目の階層が含むしおりが同一ページに複数存在するかを判断する（ステップＳ１１３５）。Ｎ階層目の階層が含むしおりが同一ページに複数存在しない場合は、ステップＳ１１３６に進む。Ｎ階層目の階層が含むしおりが同一ページに複数存在する場合は、ステップＳ１１４１に進む。そして、ＣＰＵ１０１が、同一ページに複数対応付けられているＮ階層目のしおりをマージする（ステップＳ１１４１）。
【００９９】
このステップＳ１１４１の処理について具体的に説明する。図１３（Ａ）に示す例において、Ｎ＝１の場合、第一階層１０２２が含むしおり「１章」としおり「２章」とは、同一ページ（ｐ２）に対応付けられている。従って、ＣＰＵ１０１は、しおり「１章」に対応するノード１００３と、しおり「２章」に対応するノード１００４とをマージする。より詳細には、ＣＰＵ１０１は、まず、メタデータ値が「１章＋２章」であるノードを作成する。そして、ＣＰＵ１０１は、マージ後のノードを含むＮ階層目の階層を選択し、該選択された階層を有する階層構造（第２の階層構造）を生成して、処理が終了する（ステップＳ１１４２）。
【０１００】
上述したことから、ＣＰＵ１０１は、第１の階層構造が有する階層のうち、最上位の階層が含むノードがＰＤＦファイルが含むページと一対一に対応しない場合に（図１２のＳ１１３３でＮｏ，Ｓ１１３４でＹｅｓ）、以下の処理を実行する。ＣＰＵ１０１は、最上位の階層が含むノードに対応するしおりが同一ページに複数対応付けられているかを判断する（Ｓ１１３５）。ＣＰＵ１０１は、該しおりが同一ページに複数対応付けられている場合に（Ｓ１１３５でＹｅｓ）、該複数のしおりに対応するノードを統合する（Ｓ１１４１）。
【０１０１】
図１２を参照して説明した論理構造の再構成処理の後、ＣＰＵ１０１が、ＰＤＦ／ＶＴ生成処理（図４（Ａ）のＳ１１０４）を実行する。これにより、図１１（Ｂ）に示すＰＤＦ／ＶＴデータが生成される。
【０１０２】
次に、本発明の実施例２について説明する。実施例２においては、入力されるＰＤＦデータに予め印刷設定ファイルが関連付けられている。そして、情報処理装置１は、当該印刷設定ファイルに設定された設定内容に基づいて、ＰＤＦデータをＰＤＦ／ＶＴデータに変換する。
【０１０３】
図１４は、本発明の実施例２において情報処理装置が入力するＰＤＦデータの例を示す図である。ＰＤＦデータ１２０１は、ページ１２０２、１２０３、１２０４、１２０５、１２０６を有する。また、ＰＤＦデータ１２０１は、印刷設定ファイル（ＪＤＦ）１２０７と関連付けられている。
【０１０４】
ＪＤＦは、ＰＤＦデータ１２０１に対応する印刷設定情報である。ＪＤＦ１２０７は、印刷設定１２０８と印刷設定１２０９とを含む。印刷設定１２０８、１２０９は、ＰＤＦデータが含むページと該ページに対する印刷設定との対応情報である。印刷設定１２０８はページ単位の印刷設定である。すなわち、印刷設定１２０８は、各々のページと第１の印刷設定との対応情報（第１の対応情報）である。印刷設定１２０９は複数のページと第２の印刷設定との対応情報（第２の対応情報）である。
【０１０５】
図１４に示す例では、印刷設定１２０８は、１ページ目、４ページ目に「コート紙を用いて、カラー印刷を行う」ことを指定している。また、印刷設定１２０８は、２ページ目、３ページ目、５ページ目に「普通紙を用いて、モノクロ印刷を行う」ことを指定している。また、印刷設定１２０９は、１〜３ページについて中綴じ製本を行い、４〜５ページについて中綴じ製本を行うことを指定している。
【０１０６】
図１５は、実施例２において情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。情報処理装置は、図１４に示すＰＤＦデータを図１５に示すＰＤＦ／ＶＴデータに変換して出力する。
【０１０７】
図１５に示すＰＤＦ／ＶＴデータは、ＤＰａｒｔ階層構造を有する。ＤＰａｒｔ１３０２が第一階層のＤＰａｒｔである。ＤＰａｒｔ１３０３，１３０５が、第二階層のＤＰａｒｔである。ＤＰａｒｔ１３０７，１３０９，１３１１、１３１３が、第三階層のＤＰａｒｔである。ＤＰａｒｔ１３０７は「ＩＤ」というメタデータキーと「印刷設定１」というメタデータ値のＤＰＭ１３０８を持ち、ページ１３１５を参照する。ＤＰａｒｔ１３０９は「ＩＤ」というメタデータキーと「印刷設定２」というメタデータ値のＤＰＭ１３１０を持ち、ページ１３１６とページ１３１７を参照する。
【０１０８】
ＤＰａｒｔ１３０３は「ＩＤ」というメタデータキーと「印刷設定３」というメタデータ値のＤＰＭ１３０４を持ち、ＤＰａｒｔ１３０７、１３０９を子ノード（要素）として持っている。ＤＰａｒｔ１３０５は「ＩＤ」というメタデータキーと「印刷設定３」というメタデータ値のＤＰＭ１３０６を持ち、ＤＰａｒｔ１３１１、１３１３を子ノードとして持っている。
【０１０９】
また、ページ１３１５が、ＤＰａｒｔ１３０７に対応付けられている。ページ１３１６とページ１３１７とが、ＤＰａｒｔ１３０９に対応付けられている。ページ１３１８が、ＤＰａｒｔ１３１１に対応付けられている。ページ１３１９が、ＤＰａｒｔ１３１３に対応付けられている。
【０１１０】
図１５に示すＰＤＦ／ＶＴデータを用いることで、ＤＰａｒｔ階層構造の特定のノードを指定して印刷設定を行ったり、ＤＰＭを参照し、その値に基づいて印刷設定を行うことが可能となる。ＰＤＦ／ＶＴデータに関連付けられる印刷設定ファイル（ＪＤＦ）１３２１は、印刷設定名と、当該印刷設定名に対応する印刷設定を含む。
【０１１１】
図１５中に示す例では、ＪＤＦ１３２１は、コート紙を用いてカラー印刷をする印刷設定１を含む。また、ＪＤＦ１３２１は、普通紙を用いてモノクロ印刷をする印刷設定２を含む。また、ＪＤＦ１３２１は、印刷設定３として中綴じ指定を含む。ここで、ＤＰａｒｔ階層構造の第三階層が含むＤＰａｒｔのうち、「ＩＤ＝印刷設定１」というＤＰＭを持っているＤＰａｒｔは、ＤＰａｒｔ１３０７、１３１１である。従って、ＤＰａｒｔ１３０７、１３１１に対応付けられているページ１３１５、１３１８に対して、コート紙を用いてカラー印刷を行うことが可能となる。
【０１１２】
図１６は、実施例２の情報処理装置の全体動作処理を説明するフローチャートの例である。ＣＰＵ１０１が、ＪＤＦ情報の解析処理Ａを実行する（ステップＳ１７０２）。具体的には、ＣＰＵ１０１は、ＰＤＦデータの入力と、このＰＤＦデータに関連付けられたＪＤＦを受け付ける。そして、ＣＰＵ１０１は、ＪＤＦが含む印刷設定のうち、ページ毎の印刷設定（第１の対応情報）を解析することによって、ＰＤＬデータの論理構造を解析する解析手段として機能する。また、ＣＰＵ１０１は、ＰＤＬデータの論理構造の解析結果に基づいて、この論理構造を表現する階層構造であって、第１の印刷設定に対応するノードを含む階層を有する階層構造を生成する。
【０１１３】
また、ステップＳ１７０２において、ＣＰＵ１０１は、さらに、例えば、図１８（Ａ）および（Ｂ）に示す印刷設定とページ番号との対応表を作成する。図１８（Ａ），（Ｂ）中の１４１１、１４１２は、印刷設定名である。１４１３、１４１４は、印刷設定名に対応する印刷設定内容である。１４０１〜１４０５は印刷設定名、１４０６〜１４１０はページ番号である。図１８（Ａ），（Ｂ）に示す対応表を参照すると、１ページ目には印刷設定１（コート紙、カラー印刷）という印刷設定がされていることがわかる。
【０１１４】
次に、ＣＰＵ１０１が、ＪＤＦ情報の解析処理Ｂを実行する（ステップＳ１７０３）。具体的には、ＣＰＵ１０１は、入力されたＰＤＦデータ（ファイル）に関連付けられたＪＤＦに基づいて、複数ページに対する印刷設定を解析することによって、ＰＤＦファイルの論理構造を解析する。ＣＰＵ１０１は、ＰＤＦファイルの論理構造の解析結果に基づいて、この論理構造を表現する階層構造を生成する。具体的には、ＣＰＵ１０１は、当該ＰＤＦファイルの論理構造の解析結果と、ＪＤＦ情報の解析処理Ａによって生成された階層構造が含むノードに対応する第１の印刷設定とＰＤＦファイルが含むページとの対応関係とに基づいて、階層構造を生成（再構成）する。また、ステップＳ１７０３において、ＣＰＵ１０１は、さらに、例えば、図１８（Ｃ）および（Ｄ）に示す印刷設定とページ番号との対応表を作成する。
【０１１５】
次に、ＣＰＵ１０１が、ステップＳ１７０３において生成された階層構造とＰＤＦファイルとに基づいて、ＰＤＦ／ＶＴデータとＪＤＦとを生成する（ステップＳ１７０４）。具体的には、ＣＰＵ１０１は、ＪＤＦ情報の解析処理Ｂによって再構成された階層構造が有する階層が含むノードとＰＤＦファイルが含むページとの対応関係に基づいて、当該再構成された階層構造と同じ階層構造を有するＰＤＦ／ＶＴデータを生成して出力する。
【０１１６】
図１７は、図１６のＳ１７０２におけるＪＤＦ情報の解析処理Ａを説明するフローチャートである。ＣＰＵ１０１が、ＰＤＦファイルとＪＤＦとを受け付ける（ステップＳ１７０７）。
【０１１７】
次に、ＣＰＵ１０１が、ＰＤＦのページ数が２以上で、かつ、ＪＤＦにページに対する印刷設定が含まれているかを判断する（ステップＳ１７０８）。ＰＤＦのページ数が２以上で、かつ、ＪＤＦにページに対する印刷設定が含まれている場合は、ステップＳ１７１０に進む。ＰＤＦのページ数が１の場合やＪＤＦにページに対する印刷設定が含まれていない場合、ＣＰＵ１０１は、階層構造のノードを１つ内部記憶装置に記録し、階層構造のノードに入力ＰＤＦデータの全ページ番号を対応付ける。
【０１１８】
ステップＳ１７１０において、ＣＰＵ１０１が、１ページ目に対するＪＤＦの印刷設定と階層構造のノードを内部記憶装置に記録する。ここで記録するノードを「対象ノード」とする。ＣＰＵ１０１は、例えば、図１８（Ａ）、（Ｂ）に示す対応情報を参照して、１ページ目に対するＪＤＦの印刷設定情報１４０１を内部記憶装置に記憶する。
【０１１９】
ステップＳ１７１１において、ＣＰＵ１０１は、変数ＭａｘＰにＰＤＦの総ページ数、変数Ｎに１、変数Ｐに２を代入する（ステップＳ１７１１）。図１４に示すＰＤＦデータ１２０１の総ページ数は５であるため、変数ＭａｘＰに５が代入される。
【０１２０】
次に、ＣＰＵ１０１は、Ｐページ目に対するＪＤＦの印刷設定情報を内部記憶装置に記録し（ステップＳ１７１２）、ステップ１７１３に進む。Ｐ＝２の場合、ＣＰＵ１０１は、２ページ目に対するＪＤＦの印刷設定情報１４０２（図１８（Ａ））を内部記憶装置に記録する。
【０１２１】
次に、ＣＰＵ１０１は、Ｐページ目とＰ−１ページ目とで、ＪＤＦの印刷設定情報が同じであるかを判断する（ステップＳ１７１３）。Ｐページ目とＰ−１ページ目とで、ＪＤＦの印刷設定情報が同じである場合は、ステップＳ１７１７に進む。
【０１２２】
Ｐページ目とＰ−１ページ目とで、ＪＤＦの印刷設定情報が同じでない場合は、ステップＳ１７１４に進む。例えば、図１８（Ａ）を参照すると、Ｐ＝２の場合、２ページ目に対するＪＤＦの印刷設定情報１４０２と１ページ目に対するＪＤＦの印刷設定情報１４０１とは同じでない。従って、処理がステップＳ１７１４に進む。また、Ｐ＝３の場合、３ページ目に対するＪＤＦの印刷設定情報１４０３と２ページ目に対するＪＤＦの印刷設定情報１４０２とは同じである。従って、処理がステップＳ１７１７に進む。次に、ＣＰＵ１０１が、ＮからＰ−１ページを、対象ノードの子要素とする（ステップＳ１７１４）。
【０１２３】
図１９は、図１７のステップＳ１７１４の処理によって得られるデータを説明する図である。図１９（Ａ）は、中間データを示す。図１９（Ａ）中の１５０１〜１５１０は、ＪＤＦに格納されている印刷設定とページを表している。１５０１〜１５０５は印刷設定、１５０６〜１５１０はページである。また、図１５中の１５１１〜１５１９は、ＪＤＦ情報の解析処理Ａによって生成される階層構造を表す。１５１１、１５１２は階層構造のノード、１５１３は印刷設定、１５１５〜１５１９はページである。図１９（Ｂ）は、中間データに対応する印刷設定内容を示す。
【０１２４】
この例では、図１７のステップ１７１３において、ＣＰＵ１０１は、Ｐページ目とＰ−１ページ目の印刷設定が異なると判断している。従って、ＣＰＵ１０１は、Ｎページ目からＰ−１ページ目までは同一の印刷設定であるとし、対象ノードに子要素として対応付ける。図１９（Ａ）を例にとると、Ｎ＝１、Ｐ＝２の場合、ページ１（１５０６）の印刷設定（１５０１）とページ２（１５０７）の印刷設定（１５０２）とは異なる。従って、ＣＰＵ１０１は、対象ノード１５１１にページ１（１５１５）のみを関連付け、「ＩＤ＝印刷設定１」というメタデータ１５１３を記録する。
【０１２５】
図１７に戻って、ＣＰＵ１０１が、Ｐページ目以降を関連付けるための対象ノードを追加する（ステップＳ１７１５）。図１９（Ａ）を例にとると、Ｎ＝１、Ｐ＝２の場合、ＣＰＵ１０１は、Ｐページ目以降を関連付けるためのノード１５１２を追加する。そして、ＣＰＵ１０１は、ページ２（１５１６）の情報を記録する。ＣＰＵ１０１は、追加したノード１５１２を新たな「対象ノード」とする。
【０１２６】
次に、ＣＰＵ１０１は、変数Ｐの値を変数Ｎに代入する（ステップＳ１７１６）。また、ＣＰＵ１０１は、変数Ｐの値を１加算する（ステップＳ１７１７）。続いて、ＣＰＵ１０１は、変数Ｐの値が変数ＭａｘＰの値より大きいかを判断する（ステップＳ１７１８）。変数Ｐの値が変数ＭａｘＰの値より大きい場合はステップＳ１７１９に進む。変数Ｐの値が変数ＭａｘＰの値以下である場合はステップ１７１２に戻る。ステップＳ１７１９において、ＣＰＵ１０１は、Ｎ〜ＭａｘＰページを対象ノードの子要素として対応付ける（ステップＳ１７１９）。
【０１２７】
図２０は、図１９と同様に、図１７のステップＳ１７１４の処理によって得られるデータ（階層構造）を説明する図である。図２０（Ａ）は、ステップＳ１７１４の処理結果を示す。図２０（Ａ）中の１５２４〜１５３３は、ＪＤＦに格納されている印刷設定と、当該印刷設定に対応付けられているページを表す。１５２４〜１５２８は印刷設定、１５２９〜１５３３はページ番号である。また、図２０（Ａ）中の１５３４〜１５４６は、ＪＤＦ情報の解析処理Ａによって生成される階層構造を表す。１５３４、１５３５、１５３６、１５３７は階層構造のノードである。１５３８、１５３９、１５４０、１５４１は印刷設定である。１５４２、１５４３、１５４４、１５４５、１５４６はページ番号である。ノード１５３４および印刷設定１が、ページ１に対応付けられている。ノード１５３５および印刷設定２が、ページ２とページ３とに対応付けられている。ノード１５３６および印刷設定１が、ページ４に対応付けられている。ノード１５３７および印刷設定２が、ページ５に対応付けられている。図２０（Ｂ）は、ステップＳ１７１４の処理結果に対応する印刷設定内容を示す。
【０１２８】
図１７のステップ１７０６乃至１７１８の終了後、ステップＳ１７１９に入る時点で、Ｎ＝５、ＭａｘＰ＝５となる。従って、ＣＰＵ１０１は、図２０（Ａ）に示すように、ページ５（１５４６）を対象ノード１５４０の子要素として対応付け、「ＩＤ＝印刷設定２」というメタデータ１５４１を記録する。
【０１２９】
実施例２のここまでの説明で、ＪＤＦに格納されているページ毎の印刷設定から階層構造を内部記録装置へ生成する処理について説明した。ここで、ＪＤＦには、ページ毎の印刷設定だけでなく、複数ページ単位すなわちページグループに対する印刷指定も格納可能である。ページ毎の印刷設定はページ毎で対応付けられており、ページグループに対する印刷設定は複数ページに対して対応付けられている。従って、ページグループに対する印刷設定は、ページ毎の印刷設定と包含関係にあり、上位概念にあると言える。従って、ＣＰＵ１０１は、以下に説明するＪＤＦ情報の解析処理Ｂによって、ページグループに対する印刷設定に基づき、ページ毎の印刷設定から生成された階層構造の上位に階層を追加する。
【０１３０】
図２１は、ＪＤＦ情報の解析処理Ｂを説明するフローチャートの例である。まず、ＣＰＵ１０１が、変数ＭａｘＧに複数ページ単位の印刷設定数を格納する（ステップＳ１７２７）。図１４のＰＤＦデータ１２０１、ＪＤＦ１２０７を例にとると、ＪＤＦ１２０７には複数ページ単位の印刷設定１２０９が格納されている。１〜３ページの中綴じ指定、４〜５ページの中綴じ指定という２つの印刷指定がある。従って、ＣＰＵ１０１は、変数ＭａｘＧに２を代入する。
【０１３１】
次に、ＣＰＵ１０１は、変数ＭａｘＧが０であるかを判断する（ステップＳ１７２８）。変数ＭａｘＧが０である場合、ＣＰＵ１０１は、この解析処理で行う処理は無いと判断して、処理を終了する（ステップＳ１７３５）。変数ＭａｘＧが０でない場合は、ステップＳ１７２９に進む。次に、ＣＰＵ１０１は、前述したＪＤＦ情報の解析処理Ａにおいて生成した階層構造に、当該階層構造の上位階層を追加する（ステップＳ１７２９）。
【０１３２】
図２２は、階層構造の上位階層の追加を説明する図である。図２２（Ａ）中の点線で囲った部分に示す階層構造は、ＪＤＦ情報の解析処理Ａで生成された階層構造である。図２１のステップ１７２９では、ＣＰＵ１０１は、ノード１６０３、１６０５、１６０７、１６０９が存在する階層の上位に階層を追加する。具体的には、中綴じ指定に対応するノードが追加されることとなる階層を上位階層として追加する。
【０１３３】
続いて、ＣＰＵ１０１が、変数Ｇに１を代入する（ステップＳ１７３０）。そして、ＣＰＵ１０１が、ステップＳ１７２９において追加された上位階層にノードを追加する（ステップＳ１７３１）。具体的には、ＣＰＵ１０１は、図２２（Ａ）に示すように、ノード１６０３、１６０５を含む階層の上位の階層に、中綴じ指定を表すノード１６０１を追加する。
【０１３４】
図２１に戻って、ＣＰＵ１０１は、Ｇ番目のページグループに対する印刷設定の情報を持つノード群を、ステップ１７３１で追加されたノードの子要素とする（ステップＳ１７３２）。
【０１３５】
図２２（Ｂ）を参照して、ステップ１７３２における処理を説明する。Ｇ＝１の場合、１番目のページグループに含まれるページ群はページ１〜ページ３である。ＣＰＵ１０１は、図２２（Ａ）のノード１６０１をノード１６１６とし、ノード１６１６に印刷設定３を設定する。また、ＣＰＵ１０１は、ページ１、ページ２、ページ３に対応する印刷設定の情報を持つノード１６２０、１６２２をノード１６１６の子要素とする。図２２（Ｂ）中のノード１６２０は、図２２（Ａ）中のノード１６０３に対応する。また、図２２（Ｂ）中のノード１６２２は、図２２（Ａ）中のノード１６０５に対応する。すなわち、ＣＰＵ１０１は、ページグループに対する印刷設定に基づくＰＤＦデータの解析結果と、ＪＤＦ情報の解析処理Ａで生成された階層構造が含むノードと入力ＰＤＦが含むページとの対応関係に基づいて、新たな階層構造を生成する。
【０１３６】
図２１に戻って、ＣＰＵ１０１は、変数ＧがＭａｘＧに達したかを判断する（ステップＳ１７３３）。変数ＧがＭａｘＧに達した場合は、処理を終了する。ＧがＭａｘＧに達していない場合、ＣＰＵ１０１は、変数Ｇに１を加算して（ステップＳ１７１４）、ステップ１７３１に戻る。ＣＰＵ１０１が、図２１のステップ１７２６から１７３５を実行することで、階層構造の内部記録装置への生成が完了する。具体的には、図１４のＰＤＦデータとＪＤＦとを入力とした場合、図２２（Ｂ）に示す階層構造と図２２（Ｃ）に示す対応表が内部記録装置へ生成される。図２２（Ｃ）に示す対応表は、図２２（Ｂ）に示す階層構造が含む印刷設定の内容を示す。
【０１３７】
図２３は、図１６のステップ１７０４におけるＰＤＦ／ＶＴ生成処理を説明するフローチャートの例である。まず、ＣＰＵ１０１が、ＪＤＦ情報の解析処理Ａ，Ｂの処理によって内部記録装置に格納された階層構造に基づいて、ＰＤＦ／ＶＴのＤＰａｒｔ階層構造を生成する（ステップＳ１７２２）。ステップＳ１７２２において、ＣＰＵ１０１は、図２２（Ｂ）に示す階層構造に基づいて、当該階層構造を示すＤＰａｒｔ階層構造を生成する。図１５に示すＤＰａｒｔ１３０３、１３０５、１３０７、１３０９、１３１１、１３１３が、生成されるＤＰａｒｔ階層構造に含まれるＤＰａｒｔである。図１５に示すＤＰａｒｔ１３０２、１３０５、１３０７、１３０９、１３１１、１３１３は、それぞれ、図２２（Ｂ）に示すノード１６１６、１６１８、１６２０、１６２２、１６２４、１６２６に対応する。
【０１３８】
ステップＳ１７２２においては、さらに、ＣＰＵ１０１が、生成したＤＰａｒｔ階層構造が含む各ＤＰａｒｔに対して、対応する印刷設定を示すＤＰＭを設定する。例えば、ＣＰＵ１０１は、図１５中のＤＰＭ１３０４、１３０６、１３０８、１３１０、１３１２、１３１４を設定する。また、ＣＰＵ１０１は、生成したＤＰａｒｔ階層構造の上位階層にＤＰａｒｔノードを追加し、追加したノードの親階層にＤＰａｒｔＲｏｏｔノードを追加する。図１５を例にとると、ノード１３０２が追加されるＤＰａｒｔノード、ノード１３０１が追加されるＤＰａｒｔＲｏｏｔノードである。
【０１３９】
次に、ＣＰＵ１０１が、ＪＤＦ応報の解析処理Ｂによって生成された階層構造を参照することで、ステップ１７２２で生成したＤＰａｒｔ階層構造とＰＤＦデータ（図１７のステップＳ１７０７）のページとの対応付けを行う（ステップＳ１７２３）。
【０１４０】
ステップＳ１７２３の処理について以下に説明する。図２０（Ｂ）を参照すると、ＤＰａｒｔ１３０７に対応するノードは、ノード１５３４である。そして、ノード１５３４に対応する印刷設定にはページ１が対応付けられている。従って、ＣＰＵ１０１は、図１５に示すように、ＤＰａｒｔ１３０７とページ１とを対応付ける。ＣＰＵ１０１が同様の処理をＤＰａｒｔ１３０９、ＤＰａｒｔ１３１１、ＤＰａｒｔ１３１３について行うことで、ＰＤＦ／ＶＴデータ１３２０が生成される。
【０１４１】
次に、ＣＰＵ１０１が、ＪＤＦ情報の解析処理Ａ，Ｂの処理によって生成された、印刷設定名と印刷設定内容との対応情報に基づいて、ＪＤＦを生成する（ステップＳ１７２４）。例えば、ＣＰＵ１０１は、図１８（Ｂ）、（Ｄ）が示す対応表に基づいて、図１５に示すＪＤＦ１３２１を生成する。
【０１４２】
次に、実施例２の変形例Ａについて説明する。ＪＤＦは、任意のページに対してページ毎、複数ページ単位に印刷指定することが可能である。従って、ページ毎の印刷設定に対応するページ群と、複数ページ単位の印刷設定に対応するページ群とが包含関係でない場合がある。
【０１４３】
図２４は、本発明の実施例２の変形例Ａにおいて情報処理装置が入力するＰＤＦデータの例を示す図である。ＰＤＦデータ１８０１は、ページ１８０２、１８０３、１８０４、１８０５、１８０６を有する。また、ＰＤＦデータ１８０１は、印刷設定ファイル（ＪＤＦ）１８０７と関連付けられている。ＪＤＦ１８０７は、印刷設定１８０８と印刷設定１８０９とを格納する。印刷設定１８０８はページ単位の印刷設定である。印刷設定１８０９は複数のページに対する印刷設定である。
【０１４４】
印刷設定１８０８において、ページ２とページ３とは同一の印刷設定である。しかし、印刷設定１８０９においては、ページ２とページ３とは異なる中綴じ範囲である。図２４に示すＰＤＦデータ１８０１、ＪＤＦ１８０７に基づいて、前述の処理に従ってＰＤＦ／ＶＴデータを作成した場合、以下のような問題がある。すなわち、ページ毎の印刷設定に対応するページ群と複数ページ単位の印刷設定に対応するページ群が包含関係とならないため、複数ページ単位の印刷設定を用いた印刷を行った場合に異なる印刷指示を与えてしまう。
【０１４５】
実施例２の変形例Ａの情報処理装置は、ページ毎の印刷設定に対応するページ群と複数ページ単位の印刷設定に対応するページ群とが包含関係となるような好適なＰＤＦ／ＶＴデータを生成する。
【０１４６】
図２５は、実施例２の変形例Ａにおいて情報処理装置が出力するＰＤＦ／ＶＴデータの例を示す図である。情報処理装置１は、図２４に示すＰＤＦデータを図２５に示すＰＤＦ／ＶＴデータに変換して出力する。
【０１４７】
図２５に示すＰＤＦ／ＶＴデータ１９２２は、ＤＰａｒｔ階層構造を有する。ＤＰａｒｔ１９０２が第一階層のＤＰａｒｔである。ＤＰａｒｔ１９０３，１９０５が、第二階層のＤＰａｒｔである。ＤＰａｒｔ１９０７，１９０９，１９１１、１９１３、１９１５が、第三階層のＤＰａｒｔである。ＤＰａｒｔ１９０７は「ＩＤ」というメタデータキーと「印刷設定１」というメタデータ値のＤＰＭ１９０８を持ち、ページ１９１７を参照する。ＤＰａｒｔ１９０９は「ＩＤ」というメタデータキーと「印刷設定２」というメタデータ値のＤＰＭ１９１０を持ち、ページ１９１８を参照する。
【０１４８】
ＤＰａｒｔ１９１１は「ＩＤ」というメタデータキーと「印刷設定２」というメタデータ値のＤＰＭ１９１２を持ち、ページ１９１９を参照する。ＤＰａｒｔ１９１３は「ＩＤ」というメタデータキーと「印刷設定１」というメタデータ値のＤＰＭ１９１４を持ち、ページ１９２０を参照する。ＤＰａｒｔ１９１５は「ＩＤ」というメタデータキーと「印刷設定２」というメタデータ値のＤＰＭ１９１６を持ち、ページ１９２１を参照する。
【０１４９】
ＤＰａｒｔ１９０３は「ＩＤ」というメタデータキーと「印刷設定３」というメタデータ値のＤＰＭ１９１２を持ち、ＤＰａｒｔ１９０７、１９０９を子ノード（要素）として持っている。ＤＰａｒｔ１９０５は「ＩＤ」というメタデータキーと「印刷設定３」というメタデータ値のＤＰＭ１９０６を持ち、ＤＰａｒｔ１９１１、１９１３，１９１５を子ノードとして持っている。
【０１５０】
また、ページ１９１７が、ＤＰａｒｔ１９０７に対応付けられている。ページ１９１８が、ＤＰａｒｔ１９０９に対応付けられている。ページ１９１９が、ＤＰａｒｔ１９１１に対応付けられている。ページ１９２０が、ＤＰａｒｔ１９１３に対応付けられている。ページ１９２１が、ＤＰａｒｔ１９１５に対応付けられている。また、ＰＤＦ／ＶＴデータに関連付けられる印刷設定ファイル（ＪＤＦ）１９２３は、印刷設定名と、当該印刷設定名に対応する印刷設定を含む。
【０１５１】
図２５に示すＰＤＦ／ＶＴデータにおいては、ページ毎の印刷設定に対応するページ群と複数ページ単位の印刷設定に対応するページ群とが包含関係となっている。従って、このＰＤＦ／ＶＴデータによれば、複数ページ単位の印刷設定を用いた印刷を行った場合に異なる印刷指示を与えてしまうことがない。
【０１５２】
実施例２の変形例ＡにおけるＪＤＦ情報の解析処理Ａは、図１６のステップＳ１７０２におけるＪＤＦ情報の解析処理Ａと同様である。また、実施例２の変形例ＡにおけるＰＤＦ／ＶＴ生成処理は、図１６のステップＳ１７０４におけるＰＤＦ／ＶＴ生成処理と同様である。
【０１５３】
図２６は、実施例２の変形例Ａにおいて実行されるＪＤＦ情報の解析処理Ａによって得られるデータを説明する図である。図２６（Ａ）は、中間データを示す。図２６（Ａ）中の２１０１〜２１１０は、ＪＤＦに格納されている印刷設定とページを表す。２１０１〜２１０５は印刷設定、２１０６〜２１１０はページ番号である。また、図２６（Ａ）中の２１１１〜２１１９は、ＪＤＦ情報の解析処理Ａによって生成される階層構造を表す。２１１１、２１１３は階層構造のノード、２１１２、２１１４は印刷設定、２１１５〜２１１９はページ番号である。図１９（Ｂ）は、中間データに対応する印刷設定内容を示す。
【０１５４】
図２７（Ａ）は、ＪＤＦ情報の解析処理Ａの処理結果を示す。図２７（Ａ）中の２１２４〜２１３３は、ＪＤＦに格納されている印刷設定とページとを表す。２１２４〜２１２８は印刷設定、２１２９〜２１３３はページ番号である。また、図２０（Ａ）中の２１３４〜２１４６は、ＪＤＦ情報の解析処理Ａによって生成される階層構造を表す。２１３４、２１３６、２１３８、２１４０は階層構造のノードである。２１３５、２１３７、２１３９、２１４１は印刷設定である。２１４２、２１４３、２１４４、２１４５、２１４６はページ番号である。図２７（Ｂ）は、ＪＤＦ情報の解析処理Ａの処理結果に対応する印刷設定内容を示す。
【０１５５】
図２８（Ａ）および（Ｂ）は、ＪＤＦ情報の解析処理Ａによって得られる印刷設定とページ番号との対応表を示す。
【０１５６】
図２９は、実施例２の変形例ＡにおけるＪＤＦ情報の解析処理Ｂを説明するフローチャートの例である。Ｓ１７３６，Ｓ１７３７，Ｓ１７３８，Ｓ１７３９，Ｓ１７４０の処理は、図２１のＳ１７２６，Ｓ１７２７，Ｓ１７２８，Ｓ１７２９，Ｓ１７３０の処理と同様である。また、Ｓ１７４１，Ｓ１７４２，Ｓ１７４５，Ｓ１７４６，Ｓ１７４７の処理は、図２１のＳ１７３１，Ｓ１７３２，Ｓ１７３３，Ｓ１７３４，Ｓ１７３５と同様である。
【０１５７】
図２４に示すＰＤＦデータ１８０１、ＪＤＦ１８０７を例にとると、ＪＤＦが含む複数ページ単位の印刷設定１８０９は、１〜２ページの中綴じ指定、３〜５ページの中綴じ指定という２つの印刷設定を含む。従って、図２９のステップＳ１７３７において、ＣＰＵ１０１は、変数ＭａｘＧに２を代入する。
【０１５８】
図３０（Ａ）は、図２９のステップＳ１７３９において実行される、階層構造の上位階層の追加処理を示す。図３０（Ａ）中の点線で囲った部分に示す階層構造は、ページ毎のＪＤＦ情報の解析処理Ａで生成された階層構造である。図２９のステップ１７３９では、ＣＰＵ１０１は、ノード２２０３、２２０５、２２０７、２２０９を含む階層の上位に階層を追加する。具体的には、中綴じ指定に対応するノードが追加されることとなる階層を上位階層として追加する。
【０１５９】
図２９のステップＳ１７４１のノードの追加処理において、ＣＰＵ１０１は、図３０（Ａ）に示すように、ノード２２０３、２２０５を含む階層の上位の階層に、中綴じ指定を表すノード２２０１を追加する。
【０１６０】
図２９のステップＳ１７４２において、ＣＰＵ１０１は、Ｇ番目のページグループに含まれるページ群を含むノード群を、ステップ１７４１で追加されたノードの子要素とする。ステップ１７４２における処理を具体的に説明する。図３０（Ａ）を参照すると、Ｇ＝１の場合、１番目のページグループに含まれるページ群はページ１〜ページ２である。ＣＰＵ１０１は、ページ１、ページ２に対応する印刷設定の情報を持つノード２２０３、２２０５をノード２２０１の子要素とする。
【０１６１】
図２９のステップＳ１７４３において、ＣＰＵ１０１が、ステップＳ１７４１において追加されたノードに対応するページ群が、ステップＳ１７３２において子要素とされたノードに対応するページ群を包含しないかを判断する（ステップＳ１７４３）。
【０１６２】
ステップＳ１７４１において追加されたノードに対応するページ群が、ステップＳ１７３２において子要素とされたノードに対応するページ群を包含する場合は、ステップＳ１７４５に進む。ステップＳ１７４１において追加されたノードに対応するページ群が、ステップＳ１７４２において子要素とされたノードに対応するページ群を包含しない場合は、ステップＳ１７４４に進む。
【０１６３】
図３０（Ａ）を例にとると、中綴じ指定を表すノード２２０１は、ページ１とページ２とに対応する。一方、ノード２２０１の子要素であるノード２２０３、２２０５は、ページ１乃至ページ３と対応する。従って、ＣＰＵ１０１は、追加されたノードに対応するページ群が、ステップＳ１７４２において子要素とされたノードに対応するページ群を包含しないと判断する。
【０１６４】
ステップＳ１７４４において、ＣＰＵ１０１は、追加されたノードに対応するページ群が、ステップＳ１７４２において子要素とされたノードに対応するページ群を包含するように、当該子要素とされたノードに対応するページ群を分割する（ステップＳ１７４４）。そして、処理がステップＳ１７４５に進む。
【０１６５】
上記ステップＳ１７４４における処理について、具体的に説明する。図２２（Ａ）を例にとると、ＣＰＵ１０１は、ページ３とノード２２０５との対応付けを解消する。そして、ＣＰＵ１０１は、図３０（Ｂ）に示すように、ノード２２１８の子ノードとして、ページ３との対応付けが解消されたノード２２０５と同じ印刷設定が設定されたノード２２２４を新たに作成する。ノード２２１８は、図３０（Ａ）のノード２２０２に対応するノードである。ＣＰＵ１０１は、図３０（Ｂ）に示すように、新たに作成したノード２２２４にページ３を対応付ける。これにより、ノード２２１６に対応するページ群（ページ１とページ２）が、ノード２２１６の子要素であるノード２２２０およびノード２２２２に対応するページ群（ページ１とページ２）とを包含するようになる。なお、ノード２２１６は、図３０（Ａ）のノード２２０１に対応するノードである。ノード２２２０は、図３０（Ａ）のノード２２０５に対応するノードである。ノード２２２２は、図３０（Ａ）のノード２２０５に対応するノードである。
【０１６６】
図２９を参照して説明したＪＤＦ情報の解析処理Ｂの処理結果として、図３０（Ｂ）に示す階層構造と図３０（Ｃ）に示す対応表が内部記録装置へ生成される。図３０（Ｂ）中の１６１６，１６１８，１６２０，１６２２，１６２４，１６２６は、階層構造のノードである。１６１７、１６１９，１６２１，１６２３，１６２５，１６２７は、印刷設定である。１６２８乃至１６３２は、ページである。図３０（Ｃ）に示す対応表は、図３０（Ｂ）に示す階層構造が含む印刷設定の内容を示す。
【０１６７】
上述したＪＤＦ情報の解析処理Ｂに引き続いてＰＤＦ／ＶＴ生成処理が実行されることによって、図２５に示すＰＤＦ／ＶＴデータ１９２２が生成される。
【０１６８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１６９】
１０１  ＣＰＵ
１０２  ＲＡＭ
１０３  ネットワークインタフェース
１０４  外部記憶装置
１０５  ディスプレイ
１０６  キーボード
【図１】
0005794677.tif 000002
【図２】
0005794677.tif 000003
【図３】
0005794677.tif 000004
【図４】
0005794677.tif 000005
【図５】
0005794677.tif 000006
【図６】
0005794677.tif 000007
【図７】
0005794677.tif 000008
【図８】
0005794677.tif 000009
【図９】
0005794677.tif 000010
【図１０】
0005794677.tif 000011
【図１１】
0005794677.tif 000012
【図１２】
0005794677.tif 000013
【図１３】
0005794677.tif 000014
【図１４】
0005794677.tif 000015
【図１５】
0005794677.tif 000016
【図１６】
0005794677.tif 000017
【図１７】
0005794677.tif 000018
【図１８】
0005794677.tif 000019
【図１９】
0005794677.tif 000020
【図２０】
0005794677.tif 000021
【図２１】
0005794677.tif 000022
【図２２】
0005794677.tif 000023
【図２３】
0005794677.tif 000024
【図２４】
0005794677.tif 000025
【図２５】
0005794677.tif 000026
【図２６】
0005794677.tif 000027
【図２７】
0005794677.tif 000028
【図２８】
0005794677.tif 000029
【図２９】
0005794677.tif 000030
【図３０】
0005794677.tif 000031