(57)【要約】【課題】  適切なタイミングでリソースパートを削除すること。【解決手段】  プリンタは、両面印刷又は逆順印刷に従って６ページ分の描画データが生成されるべき場合に、以下の処理を実行する。即ち、プリンタは、ＰＤＬデータ（ＸＰＳデータ）を解析することによって、削除対象の圧縮イメージパート（ｉｍａｇｅ１等）が削除されるべき新たなタイミング（Ｍ＝５）を決定する。新たなタイミング（Ｍ＝５）は、ｉｍａｇｅ１を利用して生成されるべき全ての描画データの生成が終了した後のタイミングである。【選択図】  図４
2011070366.tif 000002
【特許請求の範囲】
【請求項１】
ＰＤＬデータを処理するＰＤＬデータ処理装置であって、
複数ページ分の描画データを生成するために利用されるべき複数個の描画パートデータと、削除対象の描画パートデータが削除されるべきタイミングを示す削除パートデータと、含む前記ＰＤＬデータであって、第１の順序に従って前記複数ページ分の描画データを順に生成するためのデータ構造を有する前記ＰＤＬデータを取得する取得部と、
ユーザによって指定される印刷順序が、前記第１の順序と異なる第２の順序に従って前記複数ページ分の描画データが順に生成されるべき特定の印刷順序である場合に、前記ＰＤＬデータを解析することによって、前記削除対象の描画パートデータが削除されるべき新たなタイミングであって、前記第２の順序に対応する前記新たなタイミングを決定する解析部と、
を備えるＰＤＬデータ処理装置。
【請求項２】
前記複数個の描画パートデータは、リソースパートデータと、前記複数ページ分のページパートデータと、を含み、
各ページのページパートデータには、ページ情報が対応づけられており、
各ページのページパートデータは、当該ページの描画データを生成するために利用されるべき対象のリソースパートデータを指定する指定情報を含み、
前記第１の順序は、前記複数ページ分のページパートデータに対応づけられている複数個のページ情報が示すページ順である、請求項１に記載のＰＤＬデータ処理装置。
【請求項３】
前記解析部は、さらに、特定のリソースパートデータが削除されるべき特定のタイミングを示す特定の削除パートデータが前記ＰＤＬデータに含まれる場合に、前記特定のリソースパートデータを指定する特定の指定情報を含み得る特定のページパートデータを特定し、
前記解析部は、前記第２の順序において、前記特定のページパートデータを利用して描画データの生成が終了する後のタイミングを、前記特定のリソースパートデータが削除されるべき特定の新たなタイミングとして決定する、請求項２に記載のＰＤＬデータ処理装置。
【請求項４】
前記解析部は、複数個の前記特定のページパートデータが特定される場合に、前記第２の順序において、前記複数個の特定のページパートデータの全てを利用して描画データの生成が終了する後のタイミングを、前記特定の新たなタイミングとして決定する、請求項３に記載のＰＤＬデータ処理装置。
【請求項５】
前記ＰＤＬデータでは、第１の配列順序に従って、前記複数個の描画パートデータが順に配列されており、
前記解析部は、
前記第１の配列順序において、前記特定の指定情報を含み得る最初のページパートデータを特定し、
前記第１の配列順序において、前記特定の指定情報を含み得る最後のページパートデータを特定し、
前記最初のページパートデータと、前記最後のページパートデータと、前記第１の配列順序において、前記最初のページパートデータと前記最後のページパートデータとの間に位置する全てのページパートデータとを、前記複数個の特定のページパートデータとして特定する、請求項４に記載のＰＤＬデータ処理装置。
【請求項６】
前記解析部は、前記第１の配列順序において、前記特定のリソースパートデータより後に位置する描画パートデータ群のうち、最初に位置するページパートデータを、前記最初のページパートデータとして特定する、請求項５に記載のＰＤＬデータ処理装置。
【請求項７】
前記特定の削除パートデータは、前記特定のリソースパートデータが削除されるべき前記特定のタイミングを示す特定のページ情報を含み、
前記解析部は、前記特定のページ情報の１ページ前のページ情報が対応づけられているページパートデータを、前記最後のページパートデータとして特定する、請求項５又は６に記載のＰＤＬデータ処理装置。
【請求項８】
前記特定の印刷順序は、両面印刷に対応する印刷順序、又は、逆順印刷に対応する印刷順序である、請求項１から７のいずれか一項に記載のＰＤＬデータ処理装置。
【請求項９】
前記ＰＤＬデータに基づいて、前記削除対象の描画パートデータが削除されるべき前記新たなタイミングを示す新たな削除パートデータを含む新たなＰＤＬデータを生成する新ＰＤＬデータ生成部と、
前記新たなＰＤＬデータをプリンタに送信する送信部と、をさらに備える請求項１から８のいずれか一項に記載のＰＤＬデータ処理装置。
【請求項１０】
前記複数個の描画パートデータは、リソースパートデータと、前記複数ページ分のページパートデータと、を含み、
各ページのページパートデータには、ページ情報が対応づけられており、
各ページのページパートデータは、当該ページの描画データを生成するために利用されるべき対象のリソースパートデータを指定する指定情報を含み、
前記新ＰＤＬデータ生成部は、第２の配列順序に従って、前記複数個の描画データが配列されている前記新たなＰＤＬデータを生成し、
前記新ＰＤＬデータ生成部は、前記第２の配列順序において、特定のリソースパートデータを指定する特定の指定情報を含み得る最初のページパートデータの直前に、前記特定のリソースパートデータが位置するように、前記新たなＰＤＬデータを生成し、
前記送信部は、前記第２の配列順序に従って、前記複数個の描画パートデータを順に前記プリンタに送信する、請求項９に記載のＰＤＬデータ処理装置。
【請求項１１】
ＰＤＬデータを処理するためのコンピュータプログラムであって、
複数ページ分の描画データを生成するために利用されるべき複数個の描画パートデータと、削除対象の描画パートデータが削除されるべきタイミングを示す削除パートデータと、含む前記ＰＤＬデータであって、第１の順序に従って前記複数ページ分の描画データを順に生成するためのデータ構造を有する前記ＰＤＬデータを取得する取得処理と、
ユーザによって指定される印刷順序が、前記第１の順序と異なる第２の順序に従って前記複数ページ分の描画データが順に生成されるべき特定の印刷順序である場合に、前記ＰＤＬデータを解析することによって、前記削除対象の描画パートデータが削除されるべき新たなタイミングであって、前記第２の順序に対応する前記新たなタイミングを決定する解析処理と、
をコンピュータに実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ＰＤＬ（Page Description Language）データを処理するための技術を開示する。
【背景技術】
【０００２】
ＰＤＬデータから印刷のための描画データを生成するＰＤＬデータ処理装置が広く知られている。例えば、特許文献１には、ＰＤＬデータの一種であるＸＰＳ（XML Paper Specification）データから描画データを生成するＰＤＬデータ処理装置が開示されている。ＸＰＳデータは、ページパートデータ、リソースパートデータ等の複数個の描画パートデータを含む。ＰＤＬデータ処理装置は、複数個の描画パートデータを用いて描画データを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−３３８１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば、３ページ目以降の描画データの生成に不要な描画パートデータは、３ページ目の描画データの生成が開始される前のタイミングにおいて、削除されるのが好ましいと考えられている。メモリの使用量を低減させることができるからである。上記のタイミングで上記の描画パートデータを削除するためには、ＰＤＬデータの中に削除パートデータを含める構成が考えられる。削除パートデータは、削除対象の描画パートデータが削除されるべきタイミング（例えば３ページを示すタイミング）を示す。この構成によると、ＰＤＬデータ処理装置は、削除パートデータを読み込むことによって、削除対象の描画パートデータを削除すべきタイミングを知ることができ、そのタイミングにおいて削除対象の描画パートデータを削除することができる。上記の特許文献１には、削除パートデータについて何ら開示されていない。本明細書では、適切なタイミングで描画パートデータを削除し得る技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書では、ＰＤＬデータを処理するＰＤＬデータ処理装置を開示する。ＰＤＬデータ処理装置は、取得部と解析部とを備える。取得部は、複数ページ分の描画データを生成するために利用されるべき複数個の描画パートデータと、削除対象の描画パートデータが削除されるべきタイミングを示す削除パートデータと、含むＰＤＬデータを取得する。ＰＤＬデータは、第１の順序に従って複数ページ分の描画データを順に生成するためのデータ構造を有する。解析部は、ユーザによって指定される印刷順序が、第１の順序と異なる第２の順序に従って複数ページ分の描画データが順に生成されるべき特定の印刷順序である場合に、ＰＤＬデータを解析することによって、削除対象の描画パートデータが削除されるべき新たなタイミングであって、第２の順序に対応する新たなタイミングを決定する。この構成によると、ＰＤＬデータ処理装置は、ＰＤＬデータが想定している印刷順序と異なる上記の特定の印刷順序がユーザによって指示される場合に、上記の特定の印刷順序に応じて、削除対象の描画パートデータが削除されるべき新たなタイミングを決定することができる。このために、上記の特定の印刷順序に対応する第２の順序で複数ページ分の描画データが生成される過程において、第２の順序に対応する適切なタイミングで削除対象の描画データが削除され得る。
【０００６】
複数個の描画パートデータは、リソースパートデータと、複数ページ分のページパートデータと、を含んでいてもよい。各ページのページパートデータには、ページ情報が対応づけられていてもよい。各ページのページパートデータは、当該ページの描画データを生成するために利用されるべき対象のリソースパートデータを指定する指定情報を含んでいてもよい。第１の順序は、複数ページ分のページパートデータに対応づけられている複数個のページ情報が示すページ順であってもよい。
【０００７】
解析部は、さらに、特定のリソースパートデータが削除されるべき特定のタイミングを示す特定の削除パートデータがＰＤＬデータに含まれる場合に、特定のリソースパートデータを指定する特定の指定情報を含み得る特定のページパートデータを特定してもよい。解析部は、第２の順序において、上記の特定のページパートデータを利用して描画データの生成が終了する後のタイミングを、上記の特定のリソースパートデータが削除されるべき特定の新たなタイミングとして決定してもよい。この構成によると、第２の順序で複数ページ分の描画データが生成される過程において、上記の特定のリソースパートデータを利用して描画データが生成される前に、上記の特定のリソースパートデータが削除されるという事象（以下では「特定の事象」と呼ぶ）が発生するのを抑制することができる。
【０００８】
解析部は、複数個の上記の特定のページパートデータが特定される場合に、第２の順序において、複数個の特定のページパートデータの全てを利用して描画データの生成が終了する後のタイミングを、上記の特定の新たなタイミングとして決定してもよい。この構成によると、上記の特定の事象が発生するのを確実に防止することができる。
【０００９】
ＰＤＬデータでは、第１の配列順序に従って、複数個の描画パートデータが順に配列されていてもよい。解析部は、第１の配列順序において、上記の特定の指定情報を含み得る最初のページパートデータを特定してもよい。解析部は、第１の配列順序において、上記の特定の指定情報を含み得る最後のページパートデータを特定してもよい。解析部は、上記の最初のページパートデータと、上記の最後のページパートデータと、第１の配列順序において、上記の最初のページパートデータと上記の最後のページパートデータとの間に位置する全てのページパートデータとを、複数個の特定のページパートデータとして特定してもよい。
【００１０】
解析部は、第１の配列順序において、上記の特定のリソースパートデータより後に位置する描画パートデータ群のうち、最初に位置するページパートデータを、上記の最初のページパートデータとして特定してもよい。この構成によると、上記の最初のページパートデータを特定することができる。
【００１１】
上記の特定の削除パートデータは、上記の特定のリソースパートデータが削除されるべき上記の特定のタイミングを示す特定のページ情報を含んでいてもよい。解析部は、上記の特定のページ情報の１ページ前のページ情報が対応づけられているページパートデータを、上記の最後のページパートデータとして特定してもよい。この構成によると、上記の最後のページパートデータを特定することができる。
【００１２】
上記の特定の印刷順序は、両面印刷に対応する印刷順序、又は、逆順印刷に対応する印刷順序であってもよい。
【００１３】
ＰＤＬデータ処理装置は、ＰＤＬデータに基づいて、削除対象の描画パートデータが削除されるべき新たなタイミングを示す新たな削除パートデータを含む新たなＰＤＬデータを生成する新ＰＤＬデータ生成部と、新たなＰＤＬデータをプリンタに送信する送信部と、をさらに備えていてもよい。この構成によると、プリンタは、新たなＰＤＬデータを用いて、第２の順序に従って複数ページ分の描画データを生成することができる。プリンタは、第２の順序に従って複数ページ分の描画データを生成する過程において、新たな削除パートデータが示す新たなタイミングで削除対象の描画パートデータを削除することができる。
【００１４】
新ＰＤＬデータ生成部は、第２の配列順序に従って、複数個の描画データが配列されている新たなＰＤＬデータを生成してもよい。新ＰＤＬデータ生成部は、第２の配列順序において、特定のリソースパートデータを指定する特定の指定情報を含み得る最初のページパートデータの直前に、上記の特定のリソースパートデータが位置するように、新たなＰＤＬデータを生成してもよい。送信部は、第２の配列順序に従って、複数個の描画パートデータを順にプリンタに送信してもよい。
【００１５】
なお、上記のＰＤＬデータ処理装置を実現するための制御方法及びコンピュータプログラムも新規で有用である。
【図面の簡単な説明】
【００１６】
【図１】データ処理システムの構成の一例を示す。
【図２】ＰＤＬデータの一例を示す。
【図３】プリンタが実行するダイレクト印刷処理のフローチャートを示す。
【図４】正順印刷を説明するための図（ａ）と、両面印刷を説明するための図（ｂ）と、逆順印刷を説明するための図（ｃ）と、を示す。
【図５】両面印刷用テーブルの一例（ａ）と、逆順印刷用テーブルの一例（ｂ）と、を示す。
【図６】ＰＣが実行する新ＰＤＬデータ生成処理のフローチャートを示す。
【図７】図６の続きのフローチャートを示す。
【図８】新ＰＤＬデータの一例を示す。
【発明を実施するための形態】
【００１７】
（第１実施例）
（システムの構成）
図面を参照して実施例を説明する。図１は、本実施例のデータ処理システム２の概略図を示す。データ処理システム２は、ＬＡＮ４と、プリンタ１０と、ＰＣ５０と、を備える。プリンタ１０とＰＣ５０とは、ＬＡＮ４に接続されている。プリンタ１０とＰＣ５０とは、ＬＡＮ４を介して、相互に通信可能である。
【００１８】
（プリンタ１０の構成）
プリンタ１０は、表示部１２と、操作部１４と、ＵＳＢインターフェイス１６ａと、ネットワークインターフェイス１６ｂと、印刷実行部１８と、制御部２０と、を備える。表示部１２は、様々な情報を表示する。操作部１４は、複数のキーによって構成される。ユーザは、操作部１４を操作することによって、様々な指示をプリンタ１０に入力することができる。印刷実行部１８は、インクジェット方式、レーザ方式等の印刷機構を備える。印刷実行部１８は、制御部２０から供給される描画データに従って、印刷媒体に画像を印刷する。ＵＳＢインターフェイス１６ａには、持ち運び可能なＵＳＢメモリ６が接続される。プリンタ１０は、ネットワークインターフェイス１６ｂを介して、ＬＡＮ４が接続される。
【００１９】
制御部２０は、ＣＰＵによって構成される。制御部２０は、プリンタ１０のプログラム記憶領域（図示省略）に記憶されているプログラムに従って、様々な処理を実行する。制御部２０が当該プログラムに従って処理を実行することによって、取得部２２及び解析部２４の機能が実現される。制御部２０は、さらに、ワークメモリ４０を備える。
【００２０】
（ＰＣ５０の構成）
ＰＣ５０は、表示部５２と、操作部５４と、ネットワークインターフェイス５８と、制御部６０と、を備える。表示部５２は、様々な情報を表示する。操作部５４は、キーボード、マウス等によって構成される。ユーザは、操作部５４を操作することによって、様々な指示をＰＣ５０に入力することができる。ＰＣ５０は、ネットワークインターフェイス５８を介して、ＬＡＮ４に接続される。
【００２１】
制御部６０は、ＣＰＵによって構成される。制御部６０は、ＰＣ５０のプログラム記憶領域（図示省略）に記憶されているプログラムに従って、様々な処理を実行する。なお、上記のプログラムは、ＰＤＬデータ８０を生成するためのアプリケーション（例えばプリンタ１０に対応するプリンタドライバ；図示省略）を含む。制御部６０が上記のプログラムに従って処理を実行することによって、取得部６２、解析部６４、新ＰＤＬデータ生成部６６、及び、送信部６８の各機能が実現される。制御部６０は、さらに、ワークメモリ７０を備える。なお、上記の各部６２〜６８は、後述の第２実施例で利用される。
【００２２】
（ＰＤＬデータ８０の構成）
図２は、ＰＣ５０によって生成されるＰＤＬデータ８０（ＸＰＳデータ）の一例を示す。ＰＤＬデータ８０は、複数個の圧縮パート１００〜２２０を含む。各圧縮パート１００〜２２０のかっこ内の文字列（例えば「ｉｍａｇｅ１」）は、各圧縮パート１００〜２２０に対応づけられているファイル名（以下では「圧縮パートのファイル名」と簡単に呼ぶ）を示す。なお、実際には、ファイル名は拡張子を含んでいるが、図２では、拡張子を省略している。
【００２３】
図２の下の図に示されるように、ＸＰＳ形式のＰＤＬデータは、圧縮描画パート８０ａと、圧縮ディスカードパート（ＤｉｓｃａｒｄＣｏｎｔｒｏｌ）８０ｂと、に分類される。圧縮描画パート８０ａは、描画データを生成するために利用される。圧縮描画パート８０ａは、圧縮ページパート（ＦｉｘｅｄＰａｇｅ）８０ｃと、圧縮リソースパート８０ｄと、に分類される。なお、実際には、圧縮描画パート８０ａは、さらに、他の種類のパート（例えばＦｉｘｅｄＤｏｃｕｍｅｎｔ）に分類することができるが、本実施例では、他の種類のパートについての説明を省略する。
【００２４】
各圧縮ページパート８０ｃは、１ページ分の描画データを生成するための様々なデータが圧縮されたものである。本実施例では、ユーザによって印刷することが指示された印刷対象のデータのうちの１ページ分のデータから１個の圧縮ページパートが生成される。例えば、ＰＤＬデータ８０は、６個の圧縮ページパート１１０，１２０，１５０，１７０，１９０，２２０を含む。これは、６ページ分の印刷対象のデータからＰＤＬデータ８０が生成されたことを意味する。６ページ分の印刷対象のデータのうちの１ページ目のデータから、同様に、６ページ分の印刷対象のデータのうちの２ページ目以降のデータから、２ページ目以降を示すファイル名（２．ｆｐａｇｅ等）が対応づけられている圧縮ページパート１２０，１５０，１７０，１９０，２２０が生成される。従って、仮に、プリンタ１０が、６個の圧縮ページパート１１０等のファイル名が示すページ順に従って、６個の圧縮ページパート１１０等を順に用いて６ページ分の描画データを順に生成すれば、正順印刷が実行されることになる。上述した説明から明らかなように、ＰＤＬデータ８０は、正順印刷に対応する順序に従って、６ページ分の描画データを順に生成するためのデータ構造を有する。即ち、ＰＤＬデータ８０に含まれる６個の圧縮ページパート１１０等に対応づけられている６個のファイル名は、正順印刷に対応するページ順を示す。
【００２５】
各圧縮ページパート１１０等は、圧縮リソースパートのファイル名を指定する指定情報１１２等を含む。例えば、１ページ目の圧縮ページパート１１０（１．ｆｐａｇｅ）は、圧縮イメージパート１００のファイル名（ｉｍａｇｅ１）を指定する指定情報１１２を含む。これは、正順印刷の場合に、圧縮イメージパート１００（実際には圧縮イメージパート１００から生成される解凍済みイメージパート）に対応するイメージが、１ページ目の描画データ内に配置されることを示す。なお、圧縮イメージパート１００に対応するイメージの描画データ内での位置を指定する情報（図示省略）は、１ページ目の圧縮ページパート１１０に含まれる。また、例えば、４ページ目の圧縮ページパート１７０（４．ｆｐａｇｅ）は、圧縮フォントパート１６０のファイル名（ｆｏｎｔ１）を指定する指定情報１７２を含む。これは、正順印刷の場合に、圧縮フォントパート１６０（実際には圧縮フォントパート１６０から生成される解凍済みフォントパート）に対応するフォントに従って記述されるテキストが、４ページ目の描画データ内に配置されることを示す。なお、圧縮フォントパート１６０に対応するフォントに従って記述されるテキストと、そのテキストの描画データ内での位置と、を指定する情報（図示省略）は、４ページ目の圧縮ページパート１７０に含まれる。
【００２６】
圧縮リソースパート８０ｄは、描画データを生成するためのリソース（イメージ、フォント等）のデータが圧縮されたものである。圧縮リソースパート８０ｄは、さらに、圧縮イメージパート８０ｅと、圧縮フォントパート８０ｆと、に分類される。なお、実際には、圧縮リソースパート８０ｄは、さらに、他の種類のパート（例えばＩＣＣＰｒｏｆｉｌｅ）に分類することができるが、本実施例では、他の種類のパートについての説明を省略する。
【００２７】
圧縮ディスカードパート８０ｂは、圧縮リソースパートと、その圧縮リソースパートから生成される解凍済みリソースパートと、を削除することを指示するデータが圧縮されたものである。図２の上の図に示されるように、３個の圧縮ディスカードパート１３０，１８０，２００は、それぞれ、タイミング情報１３２，１８２，２０２と、データ情報１３４，１８４，２０４と、を含む。タイミング情報１３２等は、ページ情報（例えば３．ｆｐａｇｅ）を含む。データ情報１３４等は、圧縮リソースパートのファイル名（例えばｉｍａｇｅ１）を示す。圧縮ディスカードパート１３０等に含まれるタイミング情報１３２等及びデータ情報１３４等は、正順印刷の場合に、どのタイミングでどの圧縮リソースパートが削除されるべきであるのかを示す。例えば、圧縮ディスカードパート１３０は、正順印刷の場合に、タイミング情報１３２に含まれるページ情報（３．ｆｐａｇｅ）に対応する圧縮ページパートを用いて描画データ（３ページ目の描画データ）の生成が開始される直前に、圧縮イメージパート１００（ｉｍａｇｅ１）と、それから生成される解凍済みイメージパートと、が削除されるべきであることを示す。即ち、圧縮ディスカードパート１３０は、正順印刷の場合に、タイミング情報１３２に含まれるページ情報（３．ｆｐａｇｅ）に対応するページの１ページ前の描画データ（２ページ目の描画データ）の生成が終了した後であって、当該ページ情報に対応するページの描画データ（３ページ目の描画データ）の生成が開始される前に、圧縮イメージパート１００（ｉｍａｇｅ１）と、それから生成される解凍済みイメージパートと、が削除されるべきであることを示す。なお、以下では、圧縮イメージパート（又は圧縮フォントパート）と、それから生成される解凍済みイメージパート（又は解凍済みフォントパート）と、を合わせて、「イメージパート（又はフォントパート）」と簡単に呼ぶことがある。
【００２８】
（プリンタ１０の制御部２０が実行する処理）
図３は、プリンタ１０の制御部２０が実行するダイレクト印刷処理のフローチャートを示す。ユーザは、ＰＣ５０の操作部５４を用いて、印刷対象のデータ（文書データ等）を指定し、そのデータをＸＰＳ形式のＰＤＬデータに変換するための操作を実行することができる。これにより、ＰＣ５０の制御部６０は、上記の印刷対象のデータから、図２の配列順序に従って配列されている複数個の圧縮パート１００等を含むＰＤＬデータ８０を生成する。例えば、ユーザは、ＰＣ５０にＵＳＢメモリ６を接続し、ＰＤＬデータ８０をＵＳＢメモリ６に記憶させる。次いで、ユーザは、ＵＳＢメモリ６をプリンタ１０のＵＳＢインターフェイス１６ａに接続する。ＵＳＢメモリ６は、ＬＡＮ４等の通信回線を介さずに直接的にＵＳＢインターフェイス１６ａに接続される。これにより、プリンタ１０の制御部２０は、ダイレクト印刷処理を開始する。制御部２０は、ダイレクト印刷処理を開始する前に、ワークメモリ４０内にページメモリを確保する。ページメモリは、１ページ分の描画データを格納するための容量を有する。ユーザは、プリンタ１０の操作部１４を操作することによって、正順印刷を実行することを選択することができる。この場合、制御部２０は、Ｓ１０でＹＥＳと判断し、正順印刷処理を実行する（Ｓ１２）。
【００２９】
（正順印刷処理）
図４（ａ）を参照しながら、制御部２０が実行する正順印刷処理について説明する。まず、図４（ａ）の各欄の意味について説明する。「ページ番号Ｍ」は、実際に生成される６ページ分の描画データ３０１〜３０６のページ番号を示す（即ち６ページ分の描画データの生成順序を示す）。「ページパートＦ」、「リソースパート」は、それぞれ、Ｍページ目の描画データを生成するために利用される圧縮ページパートのファイル名、当該圧縮ページパートに含まれる指定情報が示す圧縮リソースパートのファイル名を示す。また、「ディスカードパート」は、ＰＤＬデータ８０に含まれる３個の圧縮ディスカードパート１３０，１８０，２００に関する情報を示す。例えば、図２に示されるように、圧縮ディスカードパート１３０（ｄｉｓｃａｒｄ１）は、タイミング情報１３２（３．ｆｐａｇｅ）と、データ情報１３４（ｉｍａｇｅ１）と、を含む。図４（ａ）では、タイミング情報１３２（３．ｆｐａｇｅ）と同じファイル名（３．ｆｐａｇｅ）が「ページパートＦ」として記述されている列内に、圧縮ディスカードパート１３０のファイル名（ｄｉｓｃａｒｄ１）、及び、圧縮ディスカードパート１３０に含まれる圧縮イメージパート１００のファイル名（ｉｍａｇｅ１）が記述されている。
【００３０】
取得部２２は、ＵＳＢメモリ６から、ＰＤＬデータ８０を取得する。取得部２２は、図２の上から下の順に従って、複数個の圧縮パート１００等を順に取得し、取得済みの圧縮パート１００等をワークメモリ４０に順に格納する。従って、取得部２２は、最初に、圧縮イメージパート１００（ｉｍａｇｅ１）をワークメモリ４０に格納し、次いで、圧縮ページパート１１０（１．ｆｐａｇｅ）をワークメモリ４０に格納する。解析部２４は、圧縮ページパート１１０（１．ｆｐａｇｅ）を解凍することによって、解凍済みページパート（図示省略）をワークメモリ４０内に生成する。次いで、解析部２４は、解凍済みページパート（１．ｆｐａｇｅ）から指定情報１１２（図２参照）を読み込む。解析部２４は、指定情報１１２によって指定される圧縮イメージパート１００（ｉｍａｇｅ１）を解凍することによって、解凍済みイメージパート（図示省略）をワークメモリ４０内に生成する。続いて、解析部２４は、解凍済みページパート（１．ｆｐａｇｅ）と、解凍済みイメージパート（ｉｍａｇｅ１）と、を用いて、１ページ目の描画データ３０１（図４（ａ）参照）をページメモリに生成する。具体的に言うと、解析部２４は、解凍済みページパート（１．ｆｐａｇｅ）において指定されているイメージの位置に対応するページメモリ内の位置に、解凍済みイメージパート（ｉｍａｇｅ１）を書き込む。これにより、１ページ目の描画データ３０１が完成する。
【００３１】
続いて、制御部２０は、１ページ目の描画データ３０１を印刷実行部１８（図１参照）に供給する。この結果、印刷実行部１８は、１ページ目の描画データ３０１に従って、１枚の印刷媒体に印刷する。制御部２０は、１ページ目の描画データ３０１を印刷実行部１８に供給し終えると、ページメモリに書き込まれている描画データ３０１をクリアする。なお、２ページ目以降のページの描画データが完成した際にも、制御部２０は、描画データを印刷実行部１８に供給し、ページメモリ内の描画データをクリアする。以下では、これらの処理についての記載を省略する。
【００３２】
次いで、解析部２４は、圧縮ページパート１２０（２．ｆｐａｇｅ）から解凍済みページパート（図示省略）を生成する。解凍済みページパート（２．ｆｐａｇｅ）によって指定されている圧縮イメージパート１００（ｉｍａｇｅ１）は、１ページ目の描画データ３０１が生成される際に、既に解凍されている。解析部２４は、解凍済みページパート（２．ｆｐａｇｅ）と、解凍済みイメージパート（ｉｍａｇｅ１）と、を用いて、２ページ目の描画データ３０２を生成する。
【００３３】
次いで、解析部２４は、圧縮ディスカードパート１３０（ｄｉｓｃａｒｄ１）から解凍済みディスカードパート（図示省略）をワークメモリ４０内に生成する。次いで、解析部２４は、解凍済みディスカードパート（ｄｉｓｃａｒｄ１）からタイミング情報１３２とデータ情報１３４とを読み込む。図２に示されるように、ページ情報１３２が「３．ｆｐａｇｅ」を示し、データ情報１３４が「ｉｍａｇｅ１」を示す。これは、タイミング情報１３２が示すページ情報（３．ｆｐａｇｅ）に対応する圧縮ページパート１５０（３．ｆｐａｇｅ）を用いて描画データの生成が開始される直前に、イメージパート（ｉｍａｇｅ１）をワークメモリ４０から削除可能であることを示す。より具体的に言うと、２ページ目の描画データ３０２の生成が終了した後であって、３ページ目の描画データ３０３の生成が開始される前に、イメージパート（ｉｍａｇｅ１）を削除可能であることを示す。従って、解析部２４は、イメージパート（ｉｍａｇｅ１）（圧縮イメージパート１００及び解凍済みイメージパート）をワークメモリ４０から削除する。これにより、ワークメモリ４０が解放される。続いて、解析部２４は、圧縮ページパート１５０（３．ｆｐａｇｅ）から解凍済みページパート（図示省略）を生成し、その解凍済みページパート（３．ｆｐａｇｅ）によって指定されている圧縮イメージパート１４０（ｉｍａｇｅ２）から解凍済みイメージパートを生成する。解析部２４は、解凍済みページパート（３．ｆｐａｇｅ）と、解凍済みイメージパート（ｉｍａｇｅ２）と、を用いて、３ページ目の描画データ３０３を生成する。
【００３４】
次いで、解析部２４は、圧縮ページパート１７０（４．ｆｐａｇｅ）から解凍済みページパート（図示省略）を生成し、その解凍済みページパート（４．ｆｐａｇｅ）によって指定されている圧縮フォントパート１６０（ｆｏｎｔ１）から解凍済みフォントパートを生成する。解析部２４は、解凍済みページパート（４．ｆｐａｇｅ）と、解凍済みフォントパート（ｆｏｎｔ１）と、を用いて、４ページ目の描画データ３０４を生成する。具体的に言うと、解析部２４は、解凍済みページパート（４．ｆｐａｇｅ）において指定されているテキストであって、解凍済みフォントパート（ｆｏｎｔ１）に従って記述されたテキスト（図４（ａ）の「ＡＢＣ」）を生成する。次いで、解析部２４は、解凍済みページパート（４．ｆｐａｇｅ）において指定されているテキストの位置に対応するページメモリ内の位置に、上記のテキストを書き込む。
【００３５】
次いで、解析部２４は、圧縮ディスカードパート１８０（ｄｉｓｃａｒｄ２）から解凍済みディスカードパート（図示省略）を生成する。解凍済みディスカードパート（ｄｉｓｃａｒｄ２）は、タイミング情報１８２（５．ｆｐａｇｅ）とデータ情報１８４（ｆｏｎｔ１）とを含む。タイミング情報１８２が示すページ情報（５．ｆｐａｇｅ）の１ページ前である４ページ目の描画データ３０４の生成が終了しているために、解析部２４は、フォントパート（ｆｏｎｔ１）をワークメモリ４０から削除する。続いて、解析部２４は、圧縮ページパート１９０（５．ｆｐａｇｅ）から解凍済みページパート（５．ｆｐａｇｅ）を生成する。解析部２４は、解凍済みページパート（５．ｆｐａｇｅ）と、３ページ目の描画データ３０３が生成される過程で既に解凍されている解凍済みイメージパート（ｉｍａｇｅ２）と、を用いて、５ページ目の描画データ３０５を生成する。
【００３６】
次いで、解析部２４は、圧縮ディスカードパート２００（ｄｉｓｃａｒｄ３）から解凍済みディスカードパート（図示省略）を生成する。解凍済みディスカードパート（ｄｉｓｃａｒｄ３）は、タイミング情報２０２（６．ｆｐａｇｅ）とデータ情報２０４（ｉｍａｇｅ２）とを含む。タイミング情報２０２が示すページ情報（６．ｆｐａｇｅ）の１ページ前である５ページ目の描画データ３０５の生成が終了しているために、解析部２４は、イメージパート（ｉｍａｇｅ２）をワークメモリ４０から削除する。続いて、解析部２４は、圧縮ページパート２２０（６．ｆｐａｇｅ）から解凍済みページパート（６．ｆｐａｇｅ）を生成し、その解凍済みページパート（６．ｆｐａｇｅ）によって指定されている圧縮イメージパート２１０（ｉｍａｇｅ３）から解凍済みイメージパートを生成する。解析部２４は、解凍済みページパート（６．ｆｐａｇｅ）と、解凍済みイメージパート（ｉｍａｇｅ３）と、を用いて、６ページ目の描画データ３０６を生成する。
【００３７】
（両面印刷処理）
ユーザは、プリンタ１０の操作部１４を操作することによって、両面印刷を実行することを選択することができる。この場合、制御部２０は、Ｓ１０でＮＯと判断し、両面印刷処理を実行する（Ｓ１４〜Ｓ１８）。
【００３８】
図４（ｂ）を用いて、両面印刷処理について簡単に説明する。解析部２４は、まず、奇数ページの圧縮ページパート１１０，１５０，１９０を順に用いて、３ページ分の描画データを順に生成する（Ｍ＝１、２、３）。ここで生成される３ページ分の描画データは、図４（ａ）に示される描画データ３０１，３０３，３０５と同じものである。３ページ分の描画データ３０１，３０３，３０５に従って、３枚の印刷媒体のそれぞれの表面に対して印刷が実行される。次いで、解析部２４は、偶数ページの圧縮ページパート１２０，１７０，２２０を順に用いて、３ページ分の描画データ３０２，３０４，３０６（図４（ａ）参照）を順に生成する（Ｍ＝４、５、６）。ここで生成される３ページ分の描画データは、図４（ａ）に示される描画データ３０２，３０４，３０６と同じものである。描画データ３０１に従って印刷された印刷媒体の裏面に対して、描画データ３０２に従って印刷が実行される。同様に、描画データ３０３，３０５に従って印刷された印刷媒体の裏面に対して、描画データ３０４，３０６に従って印刷が実行される。
【００３９】
上述したように、両面印刷処理では、ＰＤＬデータ８０に含まれる６個の圧縮ページパート１１０等の６個のファイル名が示すページ順で描画データが生成されない。このために、圧縮ディスカードパート１３０等のタイミング情報１３２等に従ってリソースパートが削除されると、以下の問題が発生する。例えば、圧縮ディスカードパート１３０は、タイミング情報１３２（３．ｆｐａｇｅ）とデータ情報１３４（ｉｍａｇｅ１）とを含む。図４（ｂ）に示されるように、イメージパート（ｉｍａｇｅ１）は、１ページ目の描画データ（Ｍ＝１）を生成するために利用されると共に、４ページ目の描画データ（Ｍ＝４）を生成するために利用される。仮に、タイミング情報１３２が示す「３．ｆｐａｇｅ」のタイミング（Ｍ＝２）でイメージパート（ｉｍａｇｅ１）が削除されると、４ページ目の描画データ（Ｍ＝４）を生成するのに必要なイメージパート（ｉｍａｇｅ１）が、４ページ目の描画データが生成される前に削除されてしまう。この場合、解析部２４は、ＵＳＢメモリ６から圧縮イメージパート１００（ｉｍａｇｅ１）を再び取得し、解凍済みイメージパート（ｉｍａｇｅ１）を再び生成する必要がある。解析部２４の処理負荷が大きい。従って、イメージパート（ｉｍａｇｅ１）は、４ページ目の描画データ（Ｍ＝４）の生成が終了した後に削除されるべきである（矢印３１０参照）。好ましくは、５ページ目の描画データ（Ｍ＝５）の生成が開始される前に削除されるべきである。イメージパート（ｉｍａｇｅ１）が不要になった直後に、イメージパート（ｉｍａｇｅ１）を削除することができるからである。
【００４０】
同様に、圧縮ディスカードパート１８０（ｄｉｓｃａｒｄ２）が削除対象として指定しているフォントパート（ｆｏｎｔ１）は、５ページ目の描画データ（Ｍ＝５）の生成が終了した後に削除されるべきである（矢印３１２参照）。好ましくは、６ページ目の描画データ（Ｍ＝６）の生成が開始される前に削除されるべきである。なお、圧縮ディスカードパート２００（ｄｉｓｃａｒｄ３）は、タイミング情報２０２（６．ｆｐａｇｅ）とデータ情報２０４（ｉｍａｇｅ２）とを含む。仮に、タイミング情報２０２が示す「６．ｆｐａｇｅ」のタイミング（Ｍ＝６）でイメージパート（ｉｍａｇｅ２）が削除されても、２ページ目及び３ページ目の描画データ（Ｍ＝２、３）を生成するのに必要なイメージパート（ｉｍａｇｅ２）が、当該描画データが生成される前に削除されてしまうという問題は発生しない。しかしながら、イメージパート（ｉｍａｇｅ２）は、４ページ目以降の描画データを生成するために利用されない。従って、イメージパート（ｉｍａｇｅ２）は、３ページ目の描画データの生成が終了した後であって、４ページ目の描画データの生成が開始される前に、削除されることが好ましい（矢印３１４参照）。
【００４１】
次いで、両面印刷処理の詳細について説明する。図３に示されるように、解析部２４は、まず、両面印刷用テーブルをワークメモリ４０内に生成する（Ｓ１４）。この時点では、両面印刷用テーブル内に何も書き込まれていない。図５（ａ）は、両面印刷用テーブル４００の一例を示す。Ｓ１４では、さらに、以下の処理が実行される。取得部２２は、ＰＤＬデータ８０に含まれる全ての圧縮パート１００〜２２０のファイル名を取得する。これにより、図２に示される配列順序に従って並んでいる複数個のファイル名が取得される。なお、ファイル名の取得の際には、各圧縮パート１００〜２２０のデータ自体は取得されない（各圧縮パート１００等がワークメモリ４０に格納されない）。解析部２４は、全ての圧縮パート１００等のファイル名を読み込むことによって、ＰＤＬデータ８０内に６ページ分の圧縮ページパート１１０等が存在することを特定する。解析部２４は、両面印刷用テーブル４００のＭの行に、生成されるべき描画データのページ番号１〜６を順に書き込む。さらに、解析部２４は、両面印刷用テーブル４００のＦの行に、各圧縮ページパート１１０等のファイル名（１．ｆｐａｇｅ等）を書き込む。この際、解析部２４は、奇数ページに対応する３個の圧縮ページパート１１０，１５０，１９０のファイル名を、Ｍ＝１〜３に対応する３個の欄に書き込む。次いで、解析部２４は、偶数ページに対応する３個の圧縮ページパート１２０，１７０，２２０のファイル名を、Ｍ＝４〜６に対応する３個の欄に書き込む。
【００４２】
次いで、解析部２４は、Ｓ１６の処理を実行する。解析部２４は、Ｓ１４で取得される複数個のファイル名の中から、１個の圧縮リソースパート１００のファイル名（ｉｍａｇｅ１）を特定し、特定されたファイル名（ｉｍａｇｅ１）を両面印刷用テーブル４００に書き込む（符号４１０参照）。次いで、解析部２４は、図２に示される配列順序において、ファイル名（ｉｍａｇｅ１）より後に位置するファイル名群の中から、最も前に位置する圧縮ページパート１１０のファイル名（１．ｆｐａｇｅ）を特定する。解析部２４は、ファイル名（ｉｍａｇｅ１）に対応する行４１０内において、特定されたファイル名（１．ｆｐａｇｅ）に対応する欄に使用情報４１２を書き込む。
【００４３】
同様に、解析部２４は、圧縮リソースパート１４０のファイル名（ｉｍａｇｅ２）を両面印刷用テーブル４００に書き込む（符号４２０）。さらに、解析部２４は、ファイル名（ｉｍａｇｅ２）より後に位置するファイル名群の中から、最も前に位置する圧縮ページパートのファイル名（３．ｆｐａｇｅ）を特定し、特定されたファイル名（３．ｆｐａｇｅ）に対応する欄に使用情報４２２を書き込む。圧縮フォントパート１６０（ｆｏｎｔ１）及び圧縮イメージパート２１０（ｉｍａｇｅ３）についても、同様に、ファイル名４３０，４４０及び使用情報４３２，４４２が書き込まれる。
【００４４】
続いて、取得部２２は、圧縮ディスカードパート１３０（ｄｉｓｃａｒｄ１）をＵＳＢメモリ６から取得し、圧縮ディスカードパート１３０をワークメモリ４０内に格納する。解析部２４は、圧縮ディスカードパート１３０（ｄｉｓｃａｒｄ１）から解凍済みディスカードパートを生成し、解凍済みディスカードパートに含まれるタイミング情報１３２（３．ｆｐａｇｅ）及びデータ情報１３４（ｉｍａｇｅ１）を特定する。解析部２４は、特定されたタイミング情報１３２が示すページ情報（３．ｆｐａｇｅ）の１ページ前のページ情報（２．ｆｐａｇｅ）を特定する。次いで、解析部２４は、特定されたデータ情報１３４（ｉｍａｇｅ１）に対応する行４１０内において、特定されたページ情報（２．ｆｐａｇｅ）に対応する欄に、使用情報４１４を書き込む。続いて、解析部２４は、行４１０内において、削除情報４１６を書き込む。具体的に言うと、解析部２４は、行４１０内の最後の使用情報４１４に対応するＭ＝４に「１」を加算することによって、削除情報４１６が書き込まれるべきＭ＝５を特定する。解析部２４は、行４１０内において、特定されたＭ＝５に対応する欄に、削除情報４１６を書き込む。
【００４５】
同様に、解析部２４は、圧縮ディスカードパート１８０（ｄｉｓｃａｒｄ２）から生成される解凍済みディスカードパートに含まれるタイミング情報１８２（５．ｆｐａｇｅ）に基づいて、１ページ前のページ情報（４．ｆｐａｇｅ）を特定する。解凍済みディスカードパート（ｄｉｓｃａｒｄ２）に含まれるデータ情報１８４（ｆｏｎｔ１）に対応する行４３０内のページ情報（４．ｆｐａｇｅ）に対応する欄には、既に使用情報４３２が書き込まれている。従って、解析部２４は、使用情報４３２を新たに書き込まない。続いて、解析部２４は、削除情報４１６を書き込む場合と同様の手法を用いて、行４３０内に削除情報４３６を書き込む。
【００４６】
さらに、解析部２４は、圧縮ディスカードパート２００（ｄｉｓｃａｒｄ３）から生成される解凍済みディスカードパートに含まれるタイミング情報２０２（６．ｆｐａｇｅ）に基づいて、１ページ前のページ情報（５．ｆｐａｇｅ）を特定する。解析部２４は、解凍済みディスカードパート（ｄｉｓｃａｒｄ３）に含まれるデータ情報２０４（ｉｍａｇｅ２）に対応する行４２０内のページ情報（５．ｆｐａｇｅ）に対応する欄に、使用情報４２３を書き込む。さらに、解析部２４は、使用情報４２２に対応するＦ（３．ｆｐａｇｅ）と、使用情報４２３に対応するＦ（５．ｆｐａｇｅ）と、の間のページを示すＦ（４．ｆｐａｇｅ）を特定する。解析部２４は、行４２０内のＦ（４．ｆｐａｇｅ）に対応する欄に、使用情報４２４を書き込む。実際には、圧縮ページパート１７０（４．ｆｐａｇｅ）は、ｉｍａｇｅ２を示すデータ情報を含んでいないが（図２参照）、解析部２４は、圧縮ページパート１７０のデータ内容を解析していないために、圧縮ページパート１７０がｉｍａｇｅ２を示すデータ情報を含むのか否かがわからない。即ち、圧縮ページパート１７０がｉｍａｇｅ２を示すデータ情報を含み得るために、解析部２４は、行４２０内の４．ｆｐａｇｅに対応する欄に、使用情報４２４を書き込む。続いて、解析部２４は、削除情報４１６を書き込む場合と同様の手法を用いて、行４２０内に削除情報４２６を書き込む。なお、行４４０内の最後の使用情報４４２は、最後のページであるＭ＝６に対応する欄に書き込まれているために、解析部２４は、行４４０内に削除情報を書き込まない。
【００４７】
次いで、制御部２０は、両面印刷用テーブル４００を参照しながら、描画データを生成する処理を実行する（Ｓ１８）。まず、取得部２２は、Ｍ＝１に対応づけられている圧縮ページパート１１０（１．ｆｐａｇｅ）を取得する。次いで、解析部２４は、圧縮ページパート１１０（１．ｆｐａｇｅ）から解凍済みページパートを生成する。この結果、解凍済みページパートに含まれるデータ情報１１２（ｉｍａｇｅ１）が示す圧縮イメージパート１００が必要であることがわかるために、取得部２２は、圧縮イメージパート１００（ｉｍａｇｅ１）を取得する。解析部２４は、圧縮イメージパート１００（ｉｍａｇｅ１）から解凍済みイメージパートを生成する。解析部２４は、解凍済みページパート（１．ｆｐａｇｅ）と、解凍済みイメージパート（ｉｍａｇｅ１）と、を用いて、１ページ目の描画データ３０１を生成する。
【００４８】
次いで、解析部２４は、Ｍ＝２に対応づけられている圧縮ページパート１５０（３．ｆｐａｇｅ）等を用いて、２ページ目の描画データ３０３を生成する。同様に、３ページ目の描画データ３０５、及び、４ページ目の描画データ３０２が順に生成される。ｉｍａｇｅ１に対応する行４１０内の削除情報４１６は、Ｍ＝５に対応する欄に書き込まれている。これは、４ページ目の描画データ３０２の生成が終了した後であって、５ページ目の描画データ３０４の生成が開始される前に、イメージパート（ｉｍａｇｅ１）をワークメモリ４０から削除可能であることを示す。従って、解析部２４は、４ページ目の描画データ３０２の生成が終了すると、イメージパート（ｉｍａｇｅ１）をワークメモリ４０から削除する。
【００４９】
次いで、解析部２４は、Ｍ＝５に対応づけられている圧縮ページパート１７０（４．ｆｐａｇｅ）等を用いて、５ページ目の描画データ３０４を生成する。続いて、解析部２４は、削除情報４２６，４３６に従って、イメージパート（ｉｍａｇｅ２）と、フォントパート（ｆｏｎｔ１）と、をワークメモリ４０から削除する。最後に、解析部２４は、Ｍ＝６に対応づけられている圧縮ページパート２２０（６．ｆｐａｇｅ）等を用いて、６ページ目の描画データ３０６を生成する。なお、６ページ目の描画データ３０６が生成された後に、ワークメモリ４０内に残っている全ての圧縮パート及び解凍済みパートが削除される。
【００５０】
（逆順印刷処理）
ユーザは、プリンタ１０の操作部１４を操作することによって、逆順印刷を実行することを選択することができる。この場合、制御部２０は、Ｓ１０でＮＯと判断し、逆順印刷処理を実行する（Ｓ１４〜Ｓ１８）。
【００５１】
図４（ｃ）を用いて、逆順印刷処理について簡単に説明する。解析部２４は、６ページ分の圧縮ページパート１１０等を、ページ番号が大きいものから順に利用して、６ページ分の描画データを順に生成する。従って、図４（ａ）に示される描画データ３０６，３０５，３０４，３０３，３０２，３０１の順に、６ページ分の描画データが生成される。この場合、仮に、圧縮ディスカードパート１３０等のタイミング情報１３２等に従ってリソースパートが削除されると、以下の問題が発生する。例えば、圧縮ディスカードパート１３０は、タイミング情報１３２（３．ｆｐａｇｅ）とデータ情報１３４（ｉｍａｇｅ１）とを含む。仮に、タイミング情報１３２が示す「３．ｆｐａｇｅ」のタイミング（Ｍ＝４）でイメージパート（ｉｍａｇｅ１）が削除されると、５及び６ページ目の描画データ（Ｍ＝５、Ｍ＝６）を生成するのに必要なイメージパート（ｉｍａｇｅ１）が、５及び６ページ目の描画データが生成される前に削除されてしまう。従って、イメージパート（ｉｍａｇｅ１）は、６ページ目の描画データ（Ｍ＝６）の生成が終了した後に削除されるべきである。同様に、圧縮ディスカードパート１８０（ｄｉｓｃａｒｄ２）が削除対象として指定しているフォントパート（ｆｏｎｔ１）は、３ページ目の描画データ（Ｍ＝３）の生成が終了した後に削除されるべきである（矢印３２２参照）。さらに、圧縮ディスカードパート２００（ｄｉｓｃａｒｄ３）が削除対象として指定しているイメージパート（ｉｍａｇｅ２）は、４ページ目の描画データ（Ｍ＝４）の生成が終了した後に削除されるべきである（矢印３２０参照）。なお、ＰＤＬデータ８０内には、ｉｍａｇｅ３に対応するイメージパートを削除対象として指定している圧縮ディスカードパートが存在しない。しかしながら、ｉｍａｇｅ３に対応するイメージパートは、１ページ目の描画データ（Ｍ＝１）の生成が終了した後であって、２ページ目の描画データ（Ｍ＝２）の生成が開始される前に削除されるのが好ましい。
【００５２】
次いで、逆順印刷処理の詳細について説明する。図３に示されるように、解析部２４は、逆順印刷用テーブルをワークメモリ４０内に生成する（Ｓ１４）。図５（ｂ）は、逆順印刷用テーブル４５０の一例を示す。両面印刷処理の場合と同様に、解析部２４は、逆順印刷用テーブル４５０のＭの行に、ページ番号１〜６を順に書き込む。さらに、解析部２４は、Ｆの行に、６個の圧縮ページパート１１０等の６個のファイル名（１．ｆｐａｇｅ等）を書き込む。この際、解析部２４は、Ｍが示すページ番号（１〜６）に対して、ファイル名（１．ｆｐａｇｅ等）が示すページ番号が逆順になるように、６個のファイル名を書き込む。
【００５３】
次いで、解析部２４は、両面印刷処理の場合と同様に、Ｓ１６の処理を実行する。この結果、行４６０〜４９０のそれぞれにおいて、使用情報４６２，４６４，４７２〜４７４，４８２，４９２と、削除情報４７６，４８６，４９６が書き込まれる。次いで、制御部２０は、両面印刷処理の場合と同様に、逆順印刷用テーブル４５０を参照しながら、Ｓ１８の処理を実行する。
【００５４】
プリンタ１０が実行するダイレクト印刷処理について詳しく説明した。プリンタ１０は、ドロップ印刷処理も実行することができる。ドロップ印刷処理について説明する。ユーザは、ＰＣ５０の操作部５４を用いて、印刷対象のデータ（文書データ等）を指定し、その印刷対象のデータをプリンタ１０に印刷させるための操作を実行することができる。ユーザは、さらに、ＰＣ５０の操作部５４を操作することによって、正順印刷、両面印刷、又は、逆順印刷を実行することを選択することができる。この場合、ＰＣ５０の制御部６０は、上記の印刷対象のデータからＰＤＬデータ８０を生成する。なお、制御部６０は、選択された印刷順序を示す特定の圧縮パート（図示省略）をＰＤＬデータ８０に追加する。制御部６０は、ＰＤＬデータ８０をプリンタ１０に送信する。この結果、プリンタ１０の取得部２２は、ネットワークインターフェイス１６ｂを介して、ＰＤＬデータ８０を取得する。プリンタ１０の制御部２０は、上記の特定の圧縮パートに基づいて、ユーザによって選択された印刷順序を知ることができる。プリンタ１０の制御部２０は、上記のダイレクト印刷処理と同様に、ユーザによって選択された印刷順序に従って、正順印刷処理、両面印刷処理、又は、逆順印刷処理を実行する。ただし、ドロップ印刷の場合、プリンタ１０は、ＰＤＬデータ８０に含まれる複数個の圧縮パート１００等のファイル名のみをＰＣ５０から取得するのが困難である。従って、両面印刷処理及び逆順印刷処理では、ＰＤＬデータ８０に含まれる全ての圧縮パート１００等がワークメモリ４０内に格納された後に、テーブル４００，４５０（図５（ａ）及び（ｂ）参照）が生成される。この点がダイレクト印刷処理と異なる。
【００５５】
本実施例のデータ処理システム２について詳しく説明した。本実施例によると、ユーザによって両面印刷又は逆順印刷が指示される場合に、プリンタ１０は、リソースパートを削除すべき適切なタイミングを決定することができる（図５（ａ）及び（ｂ）の削除情報４１６等参照）。両面印刷処理又は逆順印刷処理において、リソースパートを利用して描画データが生成される前に、上記のリソースパートデータが削除されるという事象が発生するのを抑制することができる。
【００５６】
本実施例の各要素と本発明の各要素との対応関係を記載しておく。プリンタ１０が「ＰＤＬデータ処理装置」の一例である。例えば、圧縮イメージパート１４０（ｉｍａｇｅ２）、当該圧縮イメージパート１４０を削除対象として指定している圧縮ディスカードパート２００（ｄｉｓｃａｒｄ３）、当該圧縮ディスカードパート２００に含まれるタイミング情報２０２（６．ｆｐａｇｅ）が、それぞれ、「特定のリソースパートデータ」、「特定の削除パートデータ」、「特定のタイミング」の一例である。この例の場合、圧縮ページパート１５０（３．ｆｐａｇｅ）、圧縮ページパート１９０（５．ｆｐａｇｅ）が、それぞれ、「最初のページパートデータ」、「最後のページパートデータ」の一例である。従って、圧縮ページパート１７０（４．ｆｐａｇｅ）が「最初のページパートデータと最後のページパートデータとの間に位置する全てのページパートデータ」の一例である。また、図２の上から下の順が「第１の配列順序」の一例である。
【００５７】
（第１実施例の変形例）
解析部２４は、６個の圧縮ページパート１１０等のデータ内容を解析することによって、テーブル４００，４５０を作成してもよい。即ち、解析部２４は、まず、６個の圧縮ページパート１１０等のそれぞれについて、当該圧縮ページパートがどの圧縮リソースパートを指定しているのかを解析してもよい。解析部２４は、この解析結果に応じて、使用情報４１２等を書き込んでもよい。この場合、例えば、逆順印刷処理では、圧縮イメージパート１４０（ｉｍａｇｅ２）に対応する行４２０内（図５（ａ）参照）において、４．ｆｐａｇｅに対応する欄に使用情報４２４が書き込まれない。４．ｆｐａｇｅに対応する圧縮ページパート１７０（４．ｆｐａｇｅ）は、圧縮イメージパート１４０（ｉｍａｇｅ２）を指定していないからである（図２参照）。行４２０内のＭ＝２及び３に対応する２個の欄のみに使用情報４２２，４２３が書き込まれる。この結果、行４２０内のＭ＝４に対応する欄に削除情報が書き込まれる。この構成によると、プリンタ１０は、図４（ｂ）に示されるように、圧縮イメージパート１４０（ｉｍａｇｅ２）が削除されるべき好ましいタイミング（Ｍ＝４；図４（ｂ）参照）を決定することができる。
【００５８】
（第２実施例）
第２実施例について説明する。本実施例では、ＰＣ５０の制御部６０は、ＰＤＬデータ８０から新たなＰＤＬデータを生成する。第１実施例のドロップ印刷処理の場合と同様に、ユーザは、ＰＣ５０の操作部５４を用いて、印刷対象のデータをプリンタ１０に印刷させるための操作を実行することができる。これにより、ＰＣ５０の取得部６２は、上記の印刷対象のデータからＰＤＬデータ８０を生成することによって、ＰＤＬデータ８０を取得する。ユーザは、ＰＣ５０の操作部５４を用いて、印刷順序を選択することができる。正順印刷が選択された場合に、ＰＣ５０の送信部６８は、ＰＤＬデータ８０をプリンタ１０に送信する。この結果、プリンタ１０は、第１実施例の正順印刷処理を実行する。
【００５９】
一方において、両面印刷又は逆順印刷が選択された場合に、ＰＣ５０の制御部６０は、図６及び図７のフローチャートを実行する。以下では、両面印刷が選択された場合を例にして説明する。逆順印刷が選択された場合には、同様に処理が実行される。解析部６４は、図３のＳ１４及びＳ１６の処理と同様に、両面印刷用テーブル４００（図５（ａ））を生成する（Ｓ３０，Ｓ３２）。次いで、新データ生成部６６は、印刷設定パート９２を生成し、印刷設定パート９２をワークメモリ７０内に格納する（Ｓ３３）。図８には、印刷設定パート９２が示されている。なお、図８の上から下の順序は、ワークメモリ７０内でのデータの配列順序を示す。従って、印刷設定パート９２が最も前に位置するデータであり、圧縮ページパート２２０（６．ｆｐａｇｅ）が最も後に位置するデータである。印刷設定パート９２は、両面印刷用テーブル４００に含まれるＭの行及びＦの行の対応関係を示すデータを含む。例えば、印刷設定パート９２では、Ｍ＝１と１．ｆｐａｇｅとが対応づけられていると共に、Ｍ＝２と３．ｆｐａｇｅとが対応づけられている。
【００６０】
次いで、新データ生成部６６は、Ｍ＝１を特定し（Ｓ３４）、Ｍ＝１に対応する領域５００，５０２（図８参照）をワークメモリ７０内に確保する（Ｓ３６）。以下では、領域５００のことを「追加領域」と呼び、領域５０２のことを「通常領域」と呼ぶ。なお、ワークメモリ７０内でのデータの配列順序（即ち図８の上から下の順序）において、追加領域５００は、通常領域５０２より前に確保される。続いて、新データ生成部６６は、両面印刷用テーブル４００から、Ｍ＝１に対応づけられているＦ（１．ｆｐａｇｅ）を特定し、特定されたＦ（１．ｆｐａｇｅ）をファイル名として有する圧縮ページパート１１０をＰＤＬデータ８０から特定する（Ｓ３８）。次いで、新データ生成部６６は、特定された圧縮ページパート１１０（１．ｆｐａｇｅ）を、Ｍ＝１に対応する通常領域５０２に書き込む（Ｓ４４）。なお、新データ生成部６６は、Ｓ３８で特定された圧縮ページパートをワークメモリ７０に書き込むと、その圧縮ページパートをＰＤＬデータ８０から削除する。
【００６１】
続いて、新データ生成部６６は、両面印刷用テーブル４００を用いて、Ｍ＝１の列内の使用情報４１２に対応づけられているリソースパートのファイル名（ｉｍａｇｅ１）を特定する。次いで、新データ生成部６６は、特定されたファイル名（ｉｍａｇｅ１）を有する圧縮イメージパート１００をＰＤＬデータ８０から特定する（Ｓ４６）。次いで、新データ生成部６６は、特定された圧縮イメージパート１００（ｉｍａｇｅ１）を、Ｍ＝１に対応する追加領域５００に書き込む（Ｓ４８）。なお、新データ生成部６６は、Ｓ４６で特定された圧縮リソースパートをワークメモリ７０に書き込むと、その圧縮リソースパートをＰＤＬデータ８０から削除する。次いで、新データ生成部６６は、現在のＭ（即ちＭ＝１）に「１」を加算することによって、新たなＭ（即ちＭ＝２）を生成する（Ｓ５０）。新データ生成部６６は、新たなＭが、最後のページ（即ちＭ＝６）より大きいのか否かを判断する（Ｓ５２）。Ｓ５２でＮＯの場合、Ｓ３６に戻る。これにより、新たなＭに従ってＳ３６〜Ｓ５０の処理が再び実行される。この結果、Ｍ＝２〜６に対応する通常領域５１０〜５５０及び追加領域５１２〜５５２がワークメモリ７０内に確保され、ＰＤＬデータ８０に含まれる全ての圧縮リソースパート１００等及び全ての圧縮ページパート１１０等が領域５１０〜５５０，５１２〜５５２に書き込まれる。
【００６２】
Ｓ５２でＹＥＳの場合、新データ生成部６６は、両面印刷用テーブル４００に書き込まれている１個の圧縮リソースパートのファイル名を特定する（図７のＳ７０）。次いで、新データ生成部６６は、Ｓ７０で特定されたファイル名を有する圧縮リソースパートを削除するための新たな圧縮ディスカードパートを生成し（Ｓ７２）、新たな圧縮ディスカードパートをワークメモリ７０に格納する（Ｓ７４）。例えば、Ｓ７０において圧縮イメージパート１００のファイル名（ｉｍａｇｅ１）が特定された場合には、新データ生成部６６は、両面印刷用テーブル４００から、ファイル名（ｉｍａｇｅ１）に対応づけられている削除情報４１６を特定し、特定された削除情報４１６に対応づけられているＦ（４．ｆｐａｇｅ）及びＭ（Ｍ＝５）を特定する。新データ生成部６６は、特定されたＦ（４．ｆｐａｇｅ）を示すタイミング情報６１２と、特定されたファイル名（ｉｍａｇｅ１）を示すデータ情報６１４と、を含む新たなディスカードパートを生成し、当該ディスカードパートを圧縮することによって、新たな圧縮ディスカードパート６１０（ｄｉｓｃａｒｄ  ｎｅｗ１）を生成する（図８参照）。これにより、Ｓ７２の処理が終了する。次いで、新データ生成部６６は、Ｓ７２で生成された新たな圧縮ディスカードパート（ｄｉｓｃａｒｄ  ｎｅｗ１）を、Ｓ７２で特定されたＭ＝５に対応する追加領域５４０に書き込む（Ｓ７４）。
【００６３】
新データ生成部６６は、両面印刷用テーブル４００に書き込まれている全ての圧縮リソースパートについて、Ｓ７０〜Ｓ７４の処理を実行したのか否かを判断する（Ｓ７６）。ここでＮＯの場合、Ｓ７０に戻る。新データ生成部６６は、他の圧縮リソースパート（ｉｍａｇｅ２、ｆｏｎｔ１等）について、Ｓ７０〜Ｓ７４の処理を実行する。この結果、図８に示されるように、タイミング情報６２２，６３２及びデータ情報６２４，６３４を含む新たな圧縮ディスカードパート６２０，６３０（ｄｉｓｃａｒｄ  ｎｅｗ２、ｄｉｓｃａｒｄ  ｎｅｗ３）が、Ｍ＝６に対応する追加領域５５０に格納される。なお、両面印刷用テーブル４００では、ファイル名（ｉｍａｇｅ３）に対応づけて削除情報が書き込まれていない。従って、新データ生成部６６は、Ｓ７０においてファイル名（ｉｍａｇｅ３）が特定されても、Ｓ７２及びＳ７４の処理をスキップする。Ｓ７６でＹＥＳの場合、新ＰＤＬデータ生成処理が終了する。これにより、図８に示されるように、新ＰＤＬデータ８０ａが完成する。
【００６４】
ＰＣ５０の送信部６８は、図８の上から下の順序に従って、新たなＰＤＬデータ８０ａに含まれる複数個の圧縮パート１００等をプリンタ１０に順に送信する。プリンタ１０は、新たなＰＤＬデータ８０ａに従って、印刷処理を実行する。即ち、プリンタ１０は、印刷設定パート９２に示される順序に従って、６個の圧縮ページパート１１０を順に用いて、６ページ分の描画データを順に生成する。また、例えば、新たな圧縮ディスカードパート６１０（ｄｉｓｃａｒｄ  ｎｅｗ１）は、タイミング情報６１２（４．ｆｐａｇｅ）と、データ情報６１４（ｉｍａｇｅ１）と、を含む。これは、タイミング情報６１２（４．ｆｐａｇｅ）に対応する圧縮ページパート１７０を用いて描画データの生成が開始される直前に、データ情報６１４（ｉｍａｇｅ１）が示すイメージパートを削除可能であることを示す。従って、プリンタ１０は、圧縮ページパート１７０を用いて５ページ目の描画データの生成が開始される直前（即ち４ページ目の描画データの生成が終了した直後）に、イメージパート（ｉｍａｇｅ１）を削除する。本実施例によっても、第１実施例と同様の効果を得ることができる。なお、本実施例において、第１実施例の変形例の手法を適用してもよい。
【００６５】
本実施例では、ＰＣ５０が「ＰＤＬデータ処理装置」の一例である。また、図８の上から下の順序が「第２の配列順序」の一例である。また、本実施例では、図８に示されるように、例えば、追加領域５００の後に通常領域５０２を設ける構成を採用し、追加領域５００に圧縮イメージパート１００を格納すると共に、通常領域５０２に圧縮ページパート１１０を格納している。この構成が、「特定のリソースパートデータ（例えば１００）を指定する特定の指定情報（例えば１１２）を含み得る最初のページパートデータ（例えば１１０）の直前に、前記特定のリソースパートデータ（例えば１００）が位置する」の一例である。
【００６６】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
【００６７】
（１）例えば、図５（ａ）の両面印刷用テーブル４００に示されるように、ｉｍａｇｅ１のリソースパートは、Ｍ＝１に対応する描画データを生成するために利用され、Ｍ＝２及び３に対応する描画データを生成するために利用されず、Ｍ＝４に対応する描画データを生成するために利用される。Ｍ＝１に対応する描画データの生成に利用されたｉｍａｇｅ１のリソースパートが、その後のＮページ分（Ｎは１以上の整数）の描画データの生成に利用されない場合には、Ｍ＝１に対応する描画データの生成が終了した際に、ｉｍａｇｅ１のリソースパートが削除されるように構成してもよい。この場合、第１実施例のようなダイレクト印刷の場合には、プリンタ１０は、Ｍ＝４に対応する描画データが生成されるべき際に、圧縮イメージパート（ｉｍａｇｅ１）をＵＳＢメモリ６から再び取得してもよい。また、第２実施例のような新ＰＤＬデータ８０ａを生成する場合には、ＰＣ５０は、Ｍ＝４に対応する追加領域５３０に、圧縮イメージパート（ｉｍａｇｅ１）と同じデータ内容を有する新たな圧縮イメージパート（例えばｉｍａｇｅ  ｎｅｗ１）を格納してもよい。
【００６８】
（２）上記の各実施例の技術は、ＸＰＳデータ以外の種類のＰＤＬデータを利用する場合にも適用することができる。例えば、ＰＤＦ、ＰＳ（Post Script）等を利用する場合にも適用することができる。なお、本明細書の「ＰＤＬデータ」という用語は、ページという概念を用いて記述されるあらゆる種類のデータを含む概念である。
【００６９】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００７０】
２：データ処理システム、１０：プリンタ、２０：制御部、５０：ＰＣ、６０：制御部、８０：ＰＤＬデータ、１００，１４０，２１０：圧縮イメージパート、１６０：圧縮フォントパート、１１０，１２０，１５０，１７０，１９０，２２０：圧縮ページパート、１３０，１８０，２００：圧縮ディスカードパート
【図１】
2011070366.tif 000003
【図２】
2011070366.tif 000004
【図３】
2011070366.tif 000005
【図４】
2011070366.tif 000006
【図５】
2011070366.tif 000007
【図６】
2011070366.tif 000008
【図７】
2011070366.tif 000009
【図８】
2011070366.tif 000010