(57)【特許請求の範囲】
【請求項１】
印刷装置であって、
外部から受信した複数ページのＰＤＬコマンドを有するＰＤＬデータを記憶する記憶手段と、
前記記憶手段に記憶された前記ＰＤＬデータの少なくとも一つのページの削除指示をユーザから受け付ける受付手段と、
前記受付手段により受け付けた削除指示に基づいて、前記ＰＤＬデータを編集する編集手段と、
前記編集手段により編集されたＰＤＬデータに基づいて、画像データを生成する生成手段と、
前記生成手段により生成された画像データに基づいて、印刷を行う印刷制御手段と、を有し、
前記ＰＤＬデータに含まれるＰＤＬコマンドには、描画データを登録するための登録コマンドと、前記登録コマンド以外の所定のコマンドが含まれており、
前記編集手段は、前記ＰＤＬデータに含まれる削除対象のページに対応するＰＤＬコマンドのうち、前記登録コマンドを削除せずに、前記所定のコマンドを削除することで、前記削除対象のページに含まれている前記登録コマンドを編集後のＰＤＬデータ内に含ませるように前記ＰＤＬデータを編集することを特徴とする印刷装置。
【請求項２】
前記登録コマンドは、印刷に使用するフォントの描画データ又は文字の描画データを前記ＰＤＬデータの印刷に使用できるように、描画データのリソースを登録するコマンドを少なくとも含むことを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記編集手段は、前記削除対象のページに対応するＰＤＬコマンドのうちの前記登録コマンドを、後続の削除対象外のページに対応するＰＤＬコマンドに含ませるように前記ＰＤＬデータを編集することを特徴とする請求項１または２に記載の印刷装置。
【請求項４】
前記編集手段は、削除対象外のページに対応するすべてのＰＤＬコマンドを出力し、削除対象のページに対応するＰＤＬコマンドのうちの前記所定のコマンドを出力することなく読み捨て、削除対象のページに対応するＰＤＬコマンドのうちの前記登録コマンドを退避し、後続の削除対象外のページに対応するＰＤＬコマンドを出力する際に、退避された前記登録コマンドを出力することを特徴とする請求項１乃至３のいずれか１項に記載の印刷装置。
【請求項５】
前記登録コマンドにより登録された描画データは、前記ＰＤＬデータに含まれる複数ページにまたがって有効であることを特徴とする請求項２から４のいずれか１項に記載の印刷装置。
【請求項６】
前記所定のコマンドは、前記登録コマンドに従って登録された描画データを描画するための描画コマンドを少なくとも含むことを特徴とする請求項２から５のいずれか１項に記載の印刷装置。
【請求項７】
前記所定のコマンドは、ページの開始を示すページ開始コマンド、及び、ページの終了を示すページ終了コマンドを含むことを特徴とする請求項２から６のいずれか１項に記載の印刷装置。
【請求項８】
前記ＰＤＬデータに含まれるＰＤＬコマンドには、描画データを登録するための登録コマンドが含まれており、
前記登録コマンドに従って登録される描画データが、前記ＰＤＬデータに含まれる複数ページにまたがって有効であるか否かを判定する判定手段を有し、
前記編集手段は、前記判定手段による判定結果に従って、前記ＰＤＬデータの編集を行うことを特徴とする請求項１に記載の印刷装置。
【請求項９】
前記編集手段は、
前記判定手段により前記登録コマンドに従って登録される描画データが、前記ＰＤＬデータに含まれる複数ページにまたがって有効であると判定された場合、前記ＰＤＬデータに含まれる削除対象のページに対応するＰＤＬコマンドのうち、前記登録コマンドを削除せずに、前記登録コマンド以外の所定のコマンドを削除し、
前記判定手段により前記登録コマンドに従って登録される描画データが、前記ＰＤＬデータに含まれる複数ページにまたがって有効でないと判定された場合、前記ＰＤＬデータに含まれる削除対象のページに対応するすべてのＰＤＬコマンドを削除することを特徴とする請求項８に記載の印刷装置。
【請求項１０】
前記編集手段は、前記登録コマンドに従って登録される描画データが、前記ＰＤＬデータに含まれる複数ページにまたがって有効であると判定された場合、前記削除対象のページに対応するＰＤＬコマンドのうちの前記登録コマンドを、後続の削除対象外のページに対応するＰＤＬコマンドに含ませるようにすることを特徴とする請求項９に記載の印刷装置。
【請求項１１】
前記所定のコマンドは、前記登録コマンドに従って登録された描画データを描画するための描画コマンドを少なくとも含むことを特徴とする請求項９又は１０に記載の印刷装置。
【請求項１２】
前記所定のコマンドは、ページの開始を示すページ開始コマンド、及び、ページの終了を示すページ終了コマンドを含むことを特徴とする請求項９から１１のいずれか１項に記載の印刷装置。
【請求項１３】
前記記憶手段に記憶されたＰＤＬデータに対応する前記複数ページのプレビュー画像を表示させる表示制御手段を有し、
前記受付手段は、表示された複数ページのプレビュー画像から削除するページの指示を受け付けることを特徴とする請求項１から１２のいずれか１項に記載の印刷装置。
【請求項１４】
前記記憶手段は、ＰＤＬデータと当該ＰＤＬデータの印刷属性を関連付けて記憶し、
前記印刷装置は、前記記憶手段に記憶されたＰＤＬデータに関連付けられた印刷属性を変更する指示をユーザから受け付ける第２の受付手段を更に備え、
前記編集手段は、前記受付手段によって削除指示を受け付けており、且つ前記第２の受付手段によって印刷属性の変更指示を受け付けている場合には、前記所定のコマンドを削除する編集に加えて、前記変更指示に基づき変更された印刷属性に基づきＰＤＬデータを編集することを特徴とする請求項１乃至１３のいずれか１項に記載の印刷装置。
【請求項１５】
印刷装置の制御方法であって、
外部から受信した複数ページのＰＤＬコマンドを有するＰＤＬデータを記憶する記憶工程と、
記憶された前記ＰＤＬデータの少なくとも一つのページの削除指示をユーザから受け付ける受付工程と、
受け付けた削除指示に基づいて、前記ＰＤＬデータを編集する編集工程と、
編集されたＰＤＬデータに基づいて、画像データを生成する生成工程と、
生成された画像データに基づいて印刷を行う印刷工程と、
を有し、
前記ＰＤＬデータに含まれるＰＤＬコマンドには、描画データを登録するための登録コマンドと、前記登録コマンド以外の所定のコマンドが含まれており、
前記編集工程では、前記ＰＤＬデータに含まれる削除対象のページに対応するＰＤＬコマンドのうち、前記登録コマンドを削除せずに、前記所定のコマンドを削除することで、前記削除対象のページに含まれている前記登録コマンドを編集後のＰＤＬデータ内に含ませるように前記ＰＤＬデータを編集することを特徴とする制御方法。
【請求項１６】
コンピュータを、請求項１から１４のいずれか１項に記載の印刷装置として動作させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
プリンタや複合機（ＭＦＰ）等の画像出力装置を用いて印刷する際、印刷物の取り忘れ防止や機密文書の漏洩防止等を目的とし、ユーザが画像出力装置でＩＣカード等によるユーザ認証を行った後に印刷物を出力する認証プリントが普及している。
【０００３】
認証プリントでは、画像出力装置は、ページ記述言語（以下、ＰＤＬ）で記述された印刷ジョブを受信して内蔵のＨＤＤ等に格納しておき、ユーザ認証によって特定されたユーザの印刷ジョブだけを一覧表示したり、印刷設定を変更して印刷させることができる。
【０００４】
一方、近年の画像出力装置に対する更なる操作性の向上を目指した要望に応え、コピー機能やファクシミリ機能において、印刷前に出力結果のサムネイル画像を、画像出力装置の操作画面に表示する機能が出現している。更に、ユーザによって指定された、画像出力装置に記憶されている文書の任意のページを削除できる機能等が出現している。
【０００５】
一方、ＰＤＬの言語仕様として、ＰＤＬの描画処理の際に参照されるフォントデータやタイルパターン等のＰＤＬリソース（以下、リソース）を、予め画像出力装置内のストレージやメモリに登録できることが知られている。このリソースとしては、複数種類のＰＤＬコマンド（以下、コマンド）群を予めＩＤ等で登録して管理し、そのＩＤに基づいてコマンド群を実行して利用するマクロ制御コマンドや、オーバレイ、画像プロファイルデータ等を扱えるＰＤＬもある。
【０００６】
一般的なＰＤＬ言語仕様では、上述のリソースの登録指示がなされた後は、複数の異なるページから、そのリソースを参照することが可能であり、この場合はリソースの継承が印刷ジョブ内で継承されることから「リソース継承レベルがジョブ」であると呼ぶ。一方、登録指示がなされたページ内でのみリソースが有効で、ページ間で継承されない場合は「リソース継承レベルがページ」であると呼ぶ。このような複数のページ間にまたがって継承されるリソースの管理方法に関する技術は、例えば特許文献１に記載されており、それによれば、描画処理後に不要となったリソースをメモリから削除する方法が提案されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１１−１５９２１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
このような認証プリントにおいて、格納されたＰＤＬの印刷ジョブに対しても、ページ単位のサムネイル画像を操作画面に表示するプレビュー機能や、プレビュー結果を参照したユーザの指示に基づいて任意のページを印刷前に削除する機能が望まれている。尚、ＰＤＬデータの印刷処理では、コピーやファクシミリとは異なり、ＰＤＬで記述されたコマンドを解釈してページの画像データを生成する必要があるため、処理速度はＰＤＬの複雑度に依存する。従って、不要なページを事前に削除することが望ましい。
【０００９】
しかし、ＰＤＬの言語仕様が「リソース継承レベルがジョブ」の場合、任意のページを削除するための処理負荷が大きいという課題がある。なぜなら、削除対象のページのリソースの参照先を確認して、そのリソースが他のページで参照されていないことを確認しない限り、削除対象ページのリソースを削除できないためである。
【００１０】
本発明の目的は、上記従来技術の課題を解決することにある。
【００１１】
本発明の特徴は、ＰＤＬデータのリソース継承レベルがページにまたがる場合でも、ＰＤＬデータによって記述されたジョブに含まれる任意のページを効率良く削除する技術を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明の一態様に係る画像出力装置は以下のような構成を備える。即ち、
印刷装置であって、
外部から受信した複数ページのＰＤＬコマンドを有するＰＤＬデータを記憶する記憶手段と、
前記記憶手段に記憶された前記ＰＤＬデータの少なくとも一つのページの削除指示をユーザから受け付ける受付手段と、
前記受付手段により受け付けた削除指示に基づいて、前記ＰＤＬデータを編集する編集手段と、
前記編集手段により編集されたＰＤＬデータに基づいて、画像データを生成する生成手段と、
前記生成手段により生成された画像データに基づいて、印刷を行う印刷制御手段と、を有し、
前記ＰＤＬデータに含まれるＰＤＬコマンドには、描画データを登録するための登録コマンドと、前記登録コマンド以外の所定のコマンドが含まれており、
前記編集手段は、前記ＰＤＬデータに含まれる削除対象のページに対応するＰＤＬコマンドのうち、前記登録コマンドを削除せずに、前記所定のコマンドを削除することで、前記削除対象のページに含まれている前記登録コマンドを編集後のＰＤＬデータ内に含ませるように前記ＰＤＬデータを編集することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ＰＤＬデータのリソース継承レベルがページにまたがる場合でも、ＰＤＬデータによって記述された印刷ジョブに含まれる任意のページを効率良く削除でき、より利便性の高い画像出力装置を提供することができる。
【００１４】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。尚、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１５】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る画像出力装置と、印刷指示を行う端末装置であるＰＣとを有する印刷システムの構成例を示す図。
【図２】実施形態１に係る画像出力装置（ＭＦＰ）のハードウェア構成を説明するブロック図。
【図３】実施形態１に係るＭＦＰのＣＰＵが制御プログラムを実行することにより実現される機能を説明する機能ブロック図。
【図４】実施形態１に係るＭＦＰの表示部にプレビュー画面が表示されている状態を示す図。
【図５】実施形態１に係る印刷ジョブの構成例を説明する図。
【図６】本実施形態１に係る印刷ジョブのＰＤＬデータのコマンド構成例を示す図（Ａ）、ＰＤＬデータの印刷例を示す図（Ｂ）、及びページ削除を実行した後のＰＤＬデータのコマンド構成例を示す図（Ｃ）。
【図７】実施形態１に係る画像出力装置（ＭＦＰ）によるページ削除処理を説明するフローチャート。
【図８】実施形態２に係るページ開始コマンドの言語仕様例を示す図（Ａ）、ＰＤＬデータの具体例を示す図（Ｂ）、削除対象ページに対するページ開始コマンドを一旦ダミー出力する際の例を示す図（Ｃ）。
【図９】実施形態２に係る画像出力装置（ＭＦＰ）によるページ削除処理を説明するフローチャート。
【図１０】実施形態３に係るページ削除処理後のＰＤＬデータの構成例を示す図。
【図１１】実施形態３に係る画像出力装置（ＭＦＰ）によるページ削除処理を説明するフローチャート。
【図１２】本発明の実施形態４に係るＰＤＬデータの構成例を示す図。
【図１３】実施形態５に係る画像出力装置（ＭＦＰ）によるページ削除処理を説明するフローチャート。
【図１４】実施形態５に係る画像出力装置（ＭＦＰ）による図１３のＳ１３０７のページ削除処理を説明するフローチャート。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１７】
図１は、本発明の実施形態１に係る画像出力装置１０２と、印刷指示を行う端末装置であるＰＣ１０１とを有する印刷システムの構成例を示す図である。
【００１８】
この印刷システムでは、ＰＣ１０１と画像出力装置１０２とが、ネットワーク１０３を介して接続されている。ここで画像出力装置１０２は表示部１０５を備え、既知の電子写真技術によって紙媒体（シート）上に画像を印刷する多機能処理装置（ＭＦＰ）である。尚、この画像出力装置１０２はＭＦＰに限らず、後述のユーザ認証の機能及び表示部を備えていれば、ＬＢＰ（レーザビームプリンタ）やインクジェット方式のプリンタであっても良い。また、実施形態１における表示部１０５はタッチパネル機能を有する表示部であり、印刷環境メニューの操作指示や、印刷設定の変更及び印刷ジョブの削除等の各種指示を受け付けることができる操作部としても機能している。
【００１９】
また画像出力装置１０２は、画像出力装置１０２接続されたカードリーダ２１３（図２）が読み取ったユーザのＩＣカードの情報を基にユーザ認証を行う認証サーバの機能と、ＰＣ１０１から印刷ジョブを受信して記憶する書誌サーバの機能とを有する。そして、認証プリントを実現するために、ＰＣ１０１から受信した印刷ジョブのユーザ情報、文書名やカラーモード等の各種ジョブの属性を書誌情報として管理する。尚、実施形態１では、画像出力装置１０２が認証サーバ及び書誌サーバの機能も備える構成としたが、これら機能を別々の機器が備える構成であっても良い。
【００２０】
ＰＣ１０１は、アプリケーションからの印刷指示に応じて、プリンタドライバのＵＩから指定された各種印刷設定を反映したＰＤＬデータを生成し、それにユーザを識別するユーザ情報を付加し、印刷ジョブとして画像出力装置１０２に送信する。
【００２１】
画像出力装置１０２は、ＩＣカードを使用してユーザを認証した後、画像出力装置１０２のＨＤＤ等に記憶されている印刷ジョブから、ＩＣカードから得られたユーザ情報に合致する書誌情報の一覧を求め、表示部１０５に印刷ジョブの一覧を表示する。ここで、この印刷ジョブの一覧に表示される各種情報は、上述の書誌情報から生成される。そして画像出力装置１０２は、ユーザによる表示部１０５への操作によって選択された印刷ジョブに対して、印刷設定の変更やプレビュー画像の表示、更には印刷指示、その印刷ジョブ或いは、その印刷ジョブのページ単位での削除等の処理を行うことができる。
【００２２】
尚、図１では、説明を簡単にするために、ネットワーク１０３にＭＦＰ１０２とＰＣ１０１だけが接続された構成として説明したが、実際には複数台の端末装置がネットワーク１０３に接続されている。実施形態１では、一般的なパーソナルコンピュータであるＰＣ１０１から印刷ジョブを画像出力装置１０２に送信するものとしたが、本発明はこれに限らず、例えばタブレット端末や携帯電話等の携帯端末から印刷ジョブを送信してもよい。
【００２３】
図２は、実施形態１に係る画像出力装置（ＭＦＰ）１０２のハードウェア構成を説明するブロック図である。尚、図２において、図１と同一の構成については同じ参照番号を付して、その説明を省略する。
【００２４】
コントローラ部（制御部）２０１は、ＭＦＰ１０２を統括的に制御し、ＣＰＵ２０２、フラッシュッメモリ２０３、ＲＡＭ２０４、制御プログラムや印刷ジョブ等を記憶する外部記憶装置（ＨＤＤ）２１１等を有している。ここで、ＣＰＵ２０２は、フラッシュメモリ２０３に格納された制御プログラムの一部であるＯＳや、ＨＤＤ２１１に格納された制御プログラムをＲＡＭ２０４に展開して実行することにより、統括的にＭＦＰ１０２を制御する。ＨＤＤ２１１は、外部記憶装置Ｉ／Ｆ２１０を経由してコントローラ部２０１のバスに接続されており、ＰＣ１０１から受信した印刷ジョブ及び、その印刷ジョブに関する書誌情報等を一時的に記憶する。ネットワークＩ／Ｆ２０８は、ネットワーク１０３を経由して接続された外部装置との各種データの送受信制御を行う。ＲＡＭ２０４は、印刷ジョブの解析等に際して、ＣＰＵ２０２がワークエリアとして使用する揮発性メモリである。ＲＡＭ２０４の描画メモリ２０５は、印刷データ解析部３０４（図３）が印刷ジョブを解析して生成した描画オブジェクトを記憶する。レンダリングバッファ２０６は、ページ画像生成部３０５（図３）が描画オブジェクトをレンダリングしてページ画像データを生成する際に使用される。更にＲＡＭ２０４は、ＯＳによってＨＤＤ２１１からロードされた制御プログラムのロード領域や、ＣＰＵ２０２の作業領域であるワークメモリ２０７等を備えている。表示部Ｉ／Ｆ２０９は、コントローラ部２０１に表示部１０５を接続し、表示部１０５に表示されるデータをコントローラ部２０１から表示部１０５に出力する。また表示部１０５のタッチパネルを介して入力された情報をコントローラ部２０１に伝える役割を担っている。
【００２５】
プリンタエンジン２１５は、ビデオＩ／Ｆ２１４を経由してコントローラ部２０１に接続されており、ページ画像生成部３０５（図３）が生成したページ画像データに基づいて、既知の電子写真技術により用紙上に画像を形成する。また、コントローラ部２０１にはカードリーダＩ／Ｆ２１２を介してカードリーダ２１３が接続されており、ＣＰＵ２０２は、ユーザのＩＣカードに記憶されたユーザ情報を非接触で読み取り、そのユーザ情報を基にユーザの認証を行う。
【００２６】
図３は、実施形態１に係るＭＦＰ１０２のＣＰＵ２０２が制御プログラムを実行することにより実現される機能を説明する機能ブロック図である。尚、図３において、前述の図２と同一の構成については同じ参照番号を付して、その説明を省略する。
【００２７】
印刷ジョブ受信部３１０は、ＰＣ１０１から印刷ジョブを受信すると、印刷ジョブ管理部３０２に対して、その印刷ジョブを構成するＰＤＬデータの記憶を依頼する。ＰＤＬデータ記憶部３０３は、ＨＤＤ２１１の一部のパーテションが記憶領域として割り当てられており、印刷ジョブをＰＤＬデータ３２１として一時的に記憶する。印刷ジョブ管理部３０２は、ＰＤＬデータ記憶部３０３にＰＤＬデータを記憶する際、そのＰＤＬデータの解析を印刷データ解析部３０５に依頼する。これにより印刷データ解析部３０４は、その印刷ジョブに含まれる書誌情報を調べ、その書誌情報を、ＨＤＤ２１１の一部パーテションが記憶領域として割り当てられた領域に書誌情報３２０として記憶する。
【００２８】
次に、ユーザがＰＤＬデータ記憶部３０３に記憶されている印刷ジョブをＭＦＰ１０２により印刷するまでの処理について説明する。
【００２９】
認証管理部３０８は、予め登録されているユーザ情報と、カードリーダ２１３によって入力されたユーザ情報とを照合してユーザの認証を行う。認証管理部３０８によるユーザの認証に成功すると、印刷ジョブ管理部３０２は、そのユーザ情報を含む印刷ジョブの書誌情報３２０をＨＤＤ２１１から取得し、その書誌情報３２０に基づいて印刷ジョブの一覧情報を生成する。そして印刷ジョブ管理部３０２は、その印刷ジョブの一覧情報に基づいて、ＵＩ制御部３０７に対して、表示部１０５への印刷ジョブの一覧の表示を依頼する。ここで書誌情報３２０には、印刷ジョブを識別するためのジョブＩＤなどに加え、印刷データ解析部３０４の解析処理によって得られた印刷ジョブの総ページ数やページサイズ情報等も含まれる。
【００３０】
ＵＩ制御部３０７は、印刷ジョブの一覧情報を表示部１０５に表示すると共に、表示部１０５のタッチパネルを介したユーザの操作を受付ける。この操作には、印刷ジョブの印刷設定の変更や、印刷ジョブの印刷指示、印刷ジョブのプレビュー指示、更には印刷ジョブの削除、或いは、印刷ジョブの任意のページの削除等の指示等が含まれる。ＵＩ制御部３０７は、表示部１０５を介してユーザが選択した印刷ジョブに対する印刷指示或いはプレビュー指示を受け取ると、印刷ジョブ管理部３０２に対して、その印刷ジョブの印刷処理或いはプレビュー処理を依頼する。プレビュー指示を受けると印刷ジョブ管理部３０２は、印刷データ解析部３０４、ページ画像生成部３０５にページ画像の生成を依頼し、生成されたプレビュー用のページの画像データを順次受け取る。
【００３１】
印刷指示を受けると印刷ジョブ管理部３０２は、印刷設定の変更及びページ削除の指示がなされているか否かを調べ、指示が行われている場合は、その指示内容に基づいて、印刷データ加工部３０９へＰＤＬデータ３２１の加工を依頼する。印刷データ加工部３０９は、印刷設定の変更指示やページ削除の指示に応じて、ＰＤＬデータ３２１を加工する。こうして印刷データ加工部３０９は、その指示内容に応じてＰＤＬデータ３２１を加工し、その結果としてＰＤＬデータ３２２を生成する。こうして印刷ジョブ管理部３０２は、印刷データ解析部３０４、ページ画像生成部３０５にページの画像データの生成を依頼し、エンジン制御部３０６が、その生成されたページ画像データをプリンタエンジン２１５にビデオ信号として出力して印刷が実行される。この時、印刷ジョブ管理部３０２は、印刷設定の変更指示やページの削除指示がなければ、受信したＰＤＬデータ３２１を参照するが、上記指示がなされていると、印刷データ加工部３０９で加工されたＰＤＬデータ３２２を参照する。こうして印刷ジョブの印刷設定の変更や、印刷ジョブのページの削除に基づいた印刷処理が可能になる。
【００３２】
図４は、実施形態１に係るＭＦＰ１０２の表示部１０５にプレビュー画面が表示されている状態を示す図である。尚、この画面は、印刷ジョブの一覧情報を基にＵＩ制御部３０７により表示された印刷ジョブ一覧画面（不図示）で選択された印刷ジョブに対してプレビュー指示がなされた後に遷移する画面である。
【００３３】
プレビュー表示領域４０１は、表示部１０５に設けられたプレビュー画像４０２を表示する領域である。印刷ジョブの名称４０３は、その印刷ジョブの書誌情報３２０から得られたプレビュー対象である印刷ジョブの名称である。図４では、印刷ジョブは「設計書．docx」を印刷するジョブであることが分かる。印刷ジョブの総ページ数４０５は、その印刷ジョブの書誌情報３２０より得られた印刷ジョブの総ページ数、ページ番号４０４は、プレビュー画像４０２として表示されているプレビュー表示中のページの番号を示す。スクロールボタン４０６及び４０７は、プレビュー表示する対象ページを前後のページに移動指示するためのボタンである。ボタン４１１は、プレビュー画像４０２の拡大を指示するボタン、ボタン４１２は、プレビュー画像４０２の縮小を指示するボタンである。尚、これ以外にも、印刷ジョブのその他の属性を表示しても良い。
【００３４】
画面の下部にはプレビュー画像の印刷を指示するプリントボタン４０８、プレビュー画像４０２に表示されているページの削除を指示するページ削除ボタン４０９、プレビュー表示を終了して前画面に戻るように指示する戻るボタン４１０が表示されている。
【００３５】
ＵＩ制御部３０７は、ページ削除ボタン４０９の押下を受け付けると、削除対象であるページ番号、即ちプレビュー画像４０２に表示されているページの番号４０４をワークメモリ２０７に一時的に記憶する。そしてスクロールボタン４０６或いは４０７によってプレビュー対象のページが切り替わり、その都度、ページ削除ボタン４０９が押下された場合は、削除対象のページ番号を追加して記憶する。実施形態１では、ページ番号を要素とする１次元の配列として削除対象のページ番号を記憶するものとし、プリントボタン４０８或いは戻るボタン４１０の押下に応じて、ＵＩ制御部３０７がページ番号を昇順にソートするものとする。
【００３６】
ユーザがプリントボタン４０８を押下すると、ＵＩ制御部３０７は印刷ジョブ管理部３０２に印刷を指示する。この際、印刷ジョブ管理部３０２は、削除対象のページ番号を記憶した上記配列が空でなければ、前述のページ削除処理を行う。尚、戻るボタン４１０が押下されて印刷ジョブの一覧画面へ戻った後、その画面での不図示のプリントボタンの押下をトリガとしても印刷の指示がなされるものとする。
【００３７】
図５は、実施形態１に係る印刷ジョブの構成例を説明する図である。
【００３８】
実施形態１に係る印刷ジョブは、ＰＣ１０１におけるアプリケーションの指示に従ってプリンタドライバが生成するＰＤＬデータ部に、ジョブ制御言語を付加した形式であるとする。図５に示すように、ジョブ制御言語は、ジョブ制御ヘッダ部５０１とジョブ制御フッタ部５０３とを含み、これらがＰＤＬデータ部５０２を取り囲むように記述されている。このジョブ制御言語とＰＤＬデータ部５０２とが１つの印刷ジョブを構成している。
【００３９】
尚、実施形態１では、ジョブ制御言語は、ヒューレット・パッカード社が開発したＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）に準じた例を示したが、本発明はこれに限らない。
【００４０】
図中の「＜ＥＳＣ＞」は、エスケープシーケンス（１６進数で「０ｘ１Ｂ」）を表しており、所定の文字列との組み合わせによりＰＪＬモードへの移行を指示している。具体的には、印刷データ解析部３０４は、印刷データ中に「＜ＥＳＣ＞％−１２３４５Ｘ」（ＵＥＬ）を見つけると、処理中のＰＤＬデータが存在する場合はＰＤＬ解析処理を終了し、ＰＪＬモードに移行する。
【００４１】
「＠ＰＪＬ」は、後続の文字列との組み合わせによって、ＰＤＬを処理する際の印刷設定や、ＰＤＬ種別の指定といったジョブ制御のための各種指示を行っている。ここで１つの項目は改行コード「｛ｌｆ｝」（１６進数で「０ｘ０Ａ」）によって区切られる。例えば、図中の「＠ＰＪＬ  ＪＯＢ｛ｌｆ｝」は、ＰＪＬジョブの開始を宣言しており、「＠ＰＪＬ  ＥＮＴＥＲ  ＬＡＮＧＵＡＧＥ＝ＰＤＬ１｛ｌｆ｝」は、ＰＤＬ種別として「ＰＤＬ１」を指定している。しかし、通常はこれに限らず、様々な印刷設定或いは指示が含まれる。「ＰＪＬ  ＳＥＴ  ＪＯＢＡＴＴＲ＝“Ｏｗｎｅｒ＝Ａ１１１”｛ｌｆ｝」は、この印刷ジョブのオーナが「Ａ１１１」であることを示しており、印刷ジョブ管理部３０２は、この印刷ジョブのオーナ情報を、ユーザ情報として識別する。
【００４２】
最後に、ジョブ制御フッタ部５０３に含まれる「＜ＥＳＣ＞％−１２３４５Ｘ」（ＵＥＬ）によってＰＤＬ解析処理を終了し、「＠ＰＪＬ  ＥＯＪ｛ｌｆ｝」によってＰＪＬジョブの終了を宣言している。
【００４３】
ＰＤＬデータ部５０２の詳細は、図６を参照して後述する。実施形態１では、ジョブ及びページの階層構造を表現するコマンドの他、カラーモードの指定、或いは文字／イメージ／図形などの描画処理を行うための各種コマンドを含んでいる。また各種コマンドは指示内容をパラメータとして記述しており、例えば、ジョブ開始コマンド（図中「ＢｅｇｉｎＪｏｂ」）には、ＰＤＬの記述単位を示す解像度がパラメータとして記述されている。
【００４４】
次に、印刷データ加工部３０９が、削除対象のページに相当するＰＤＬデータを削除する際の処理手順、及び削除処理によって加工されたＰＤＬデータの詳細例を図６と、図７のフローチャートを参照して説明する。
【００４５】
図６は、本実施形態１に係る印刷ジョブのＰＤＬデータ３２１のコマンド構成例（図６（Ａ））、ＰＤＬデータの印刷例（図６（Ｂ））、及びページ削除を実行した後のＰＤＬデータのコマンド構成例（図６（Ｃ））をそれぞれ示す図である。
【００４６】
まず図６（Ａ）において、ＰＤＬデータ３２１のデータ構成は、ＰＤＬの言語仕様に基づいて予め定義されたコマンド群６１５と、各コマンドに付加されて指示内容を規定し、或いは描画データの詳細を示すパラメータ群６１６とを含む。パラメータ群６１６には、ＰＤＬ言語仕様に基づいて、各コマンドに必須の項目や、初期値が決まっていて必要に応じて付加すれば良い項目などが存在する。
【００４７】
実施形態１では、ＰＤＬのジョブ開始及び終了を示すコマンド「ＢｅｇｉｎＪｏｂ」６０１と、コマンド「ＥｎｄＪｏｂ」６１４とに挟まれた２ページ分のＰＤＬデータが階層構造を成している。即ち、このジョブ構造には、ページ記述の開始及び終了をそれぞれ示すページ開始コマンド「ＢｅｂｉｎＰａｇｅ」６０２，６０９、及びページ終了コマンド「ＥｎｄＰａｇｅ」６０８，６１３が、それぞれ対となった２つのページ構造が含まれている。そして、これらページ構造内に、各種描画処理に用いるコマンド群が含まれている。
【００４８】
ここで描画処理のためのコマンド群の例として、リソースであるフォントデータをＨＤＤ２１１に登録（ダウンロード）し、印刷するためのコマンド群が示されている。具体的には、ページ１において、フォントを指定するためのＩＤや共通データであるフォントヘッダをパラメータとする「ＤｏｗｎｌｏａｄＦｏｎｔ」６０３、文字単位のフォントデータを登録する「ＤｏｗｎｌｏａｄＣｈａｒ」６０４〜６０６が含まれる。「ＤｏｗｎｌｏａｄＣｈａｒ」は、文字を特定するためのＣｈａｒＩＤ、及びグリフ形状を表現したパターンデータをパラメータとして持つ。そして、ＣｈａrＩＤをパラメータとして持つコマンド「ＤｒａｗＣｈａｒ」６０７によって、登録された文字パターンが印刷される。以下、このような文字を印刷するためのフォントデータを登録したり削除したりするコマンド群をリソース制御コマンドと呼ぶ。但し、リソース制御コマンドは、ＤｒａｗＣｈａｒを含まない。
【００４９】
実施形態１に示したＰＤＬでは、登録されたフォントデータは、コマンドにより明示的な削除指示がなされるか、ジョブ終了コマンドが発行されるまでの間、複数のページにまたがって有効となる（リソース継承レベルがジョブ）。そのため、ページ２で、「ＤｏｗｎｌｏａｄＦｏｎｔ」６１０でフォント登録時と同じフォントＩＤ＝１を指定し、ページ１と同じＦｏｎｔＳｅｔコマンドを発行して、ページ１で登録したフォントを処理対象とする。そして、「ＤｏｗｎｌｏａｄＣｈａｒ」６１１で、ＣｈａｒＩＤ＝３の文字を追加登録し、コマンド「ＤｒａｗＣｈａｒ」６１２によって、ページ１及び２で登録された文字（ＣｈａｒＩＤ＝０，３，２）を印刷している。
【００５０】
尚、実際には、文字サイズや印刷方向、或いは印刷色や修飾指定など、様々なパラメータが指定されるのが通常であるが、簡単化のために、ここではその説明を省略する。
【００５１】
ここで示したように、リソース継承レベルがジョブの場合は、リソース制御コマンドによって登録された文字（ＣｈａｒＩＤ＝０，１，２）は、後続するページ内でも参照して印刷することができる。
【００５２】
図６（Ｂ）は、図６（Ａ）に示したＰＤＬデータを用いて印刷された例を示す模式図である。図６（Ｂ）では、「第１章」の３文字をページ１に、「第２章」の３文字をページ２にそれぞれ印刷して結果を示しており、「第」、「章」の各文字が、それぞれＣｈａｒＩＤ＝０，２に相当しており、それぞれのページでリソースを共有している例を示している。またＣｈａｒＩＤ＝１は文字「１」に、ＣｈａｒＩＤ＝３は文字「２」に対応している。
【００５３】
図６（Ｃ）は、ページ１の削除を実行した後のコマンド構成例を示し、ページ１の削除指示に応じて、ページ１に含まれていたリソース制御コマンド６０３〜６０６が、ページ２の構成としてコマンド６２３〜６２６に含まれている例を示している。そして、ページ１の構造を示す図６（Ａ）のコマンド「ＢｅｇｉｎＰａｇｅ」６０２，コマンド「ＥｎｄＰａｇｅ」６０８、印刷処理を指示するコマンド「ＤｒａｗＣｈａｒ」６０７が削除されていることを示している。
【００５４】
ここでは、ページ１が削除された結果、ページ２のみが残っているため、ＰＤＬのジョブ開始及び終了を示すコマンド「ＢｅｇｉｎＪｏｂ」６２０と、コマンド「ＥｎｄＪｏｂ」６３１とで挟まれた１ページ分のＰＤＬデータで構成されている。即ち、このジョブ構造では、ページ記述の開始及び終了をそれぞれ示すコマンド「ＢｅｂｉｎＰａｇｅ」６２１とコマンド「ＥｎｄＰａｇｅ」６３０が対となった１つのページ構造となっている。そして、このページ構造内に、各種描画処理に用いるコマンド群が含まれている。
【００５５】
「ＤｏｗｎｌｏａｄＦｏｎｔ」６２３でフォント登録時と同じフォントＩＤ＝１を指定し、ページ１と同じＦｏｎｔＳｅｔコマンドを発行して、ページ１で登録したフォントを処理対象とする。そして「ＤｏｗｎｌｏａｄＣｈａｒ」６２４〜６２６でページ１の文字を継承し、「ＤｏｗｎｌｏａｄＦｏｎｔ」６２７と「ＤｏｗｎｌｏａｄＣｈａｒ」６２８で、ＣｈａｒＩＤ＝３の文字を追加登録している。そしてコマンド「ＤｒａｗＣｈａｒ」６２９によって、ページ１及び２で登録された文字（ＣｈａｒＩＤ＝０，３，２、即ち、「第２章」）を印刷している。
【００５６】
印刷データ解析部３０４は、図６（Ｃ）に示すようなデータ構造に加工されたＰＤＬデータを解析することで、ページ２のみを印刷することになり、ページ１の削除指示が実現される。尚、図６（Ａ）のリソース６０５（ＣｈａｒＩＤ＝１）は、ページ１のみで参照されているため、ページ２を構成するコマンド６２４のＰＤＬデータとして残す必要はない。しかし、このように残しておいても、リソースを参照しているページを特定する必要がないため、ＰＤＬデータの加工処理を高速に行うことができる。
【００５７】
図７は、実施形態１に係る画像出力装置（ＭＦＰ）１０２によるページ削除処理を説明するフローチャートである。尚、この処理を実行するプログラムはフラッシュメモリ２０３又はＨＤＤ２１１に記憶されており、実行時、そのプログラムがＲＡＭ２０４に展開されＣＰＵ２０２の制御の下に実行されることにより、このフローチャートで示す処理が達成される。ここでは、ＣＰＵ２０２がそのプログラム実行することにより、その機能が達成される図３で説明した各機能部による処理として、このフローチャートによる処理手順を説明する。
【００５８】
まずＳ７０１で印刷データ加工部３０９は、印刷ジョブ管理部３０２から削除対象ページ番号を格納した配列及び削除対象ページの総数を受け取り、それを削除対象ページ情報としてＲＡＭ２０４に記憶し管理する。ここでは例えば図６に示すようにページ１のＰＤＬデータを加工する場合、ページ番号「１」が格納された１つの要素を持つ配列と、配列の要素数であるページ総数「１」を受け取ることになる。また処理済みページ数を管理するための変数ｉを「０」に初期化する。この変数ｉは、ＲＡＭ２０４に記憶されている。次にＳ７０２に進み印刷データ加工部３０９は、ＰＤＬデータ記憶部３０３に記憶されたページ削除処理の対象であるＰＤＬデータ３２１を、ファイルとしてアクセスできるようオープンする。尚、削除処理の対象であるＰＤＬデータは、印刷ジョブ管理部３０２よって、ＭＦＰ１０２の内部で管理する際のファイルパス名として特定される。
【００５９】
そしてＳ７０３以降の処理により、ＰＤＬデータ３２１に含まれる各ページに対して、削除対象ページ情報を参照しながら、ページ構造の削除処理を行う。Ｓ７０３で印刷データ加工部３０９は、ＰＤＬデータを解析し、ＢｅｇｉｎＰａｇｅコマンドを検知するまでの全コマンドをそのまま出力する。そしてＳ７０４で印刷データ加工部３０９は、削除対象ページ情報の配列内に処理中ページ（ｉ＋１）が存在するか、即ち、削除対象のページのＢｅｇｉｎＰａｇｅコマンドを見つけたかどうかを判定し、見つけたと判定するとＳ７０５に進む。Ｓ７０５で印刷データ加工部３０９は、削除対象ページとして読み飛ばし処理を行う。即ち、そのページのＥｎｄＰａｇｅコマンドを見つけるまで（Ｓ７０６の判定がＹｅｓとなるまで）、リソース制御コマンドをＰＤＬデータ記憶部３０３の作業用ファイルに一旦退避し、それ以外のコマンドを読み飛ばす。例えば、図６の例では、ページ１のリソース制御コマンド６０３〜６０６を退避し、ページ１のそれ以外のコマンドを読み飛ばす。そしてＳ７０６でＥｎｄＰａｇｅコマンドを検知するとＳ７０７に進み、印刷データ加工部３０９は処理済みページ数を示す変数ｉをインクリメントし、１ページ分の処理を終えてＳ７０８に進む。Ｓ７０８で印刷データ加工部３０９は、次のコマンドがＥｎｄＪｏｂコマンドかどうかを判定し、そうでない場合は後続ページを処理するためにＳ７０３へ戻る。
【００６０】
一方、Ｓ７０４で印刷データ加工部３０９が、検知したＢｅｇｉｎＰａｇｅコマンドが削除対象ページのものではないと判定した場合はＳ７１１に進み、印刷データ加工部３０９は、ＢｅｇｉｎＰａｇｅコマンドを出力してＳ７１２に進む。Ｓ７１２で印刷データ加工部３０９は、退避済みのリソース制御コマンドが存在する場合は続けて退避コマンドを出力する。即ち、図６（Ｃ）に示すように、削除対象ページでないページ２では、退避しているリソース制御コマンド６０３〜６０６があるため、それらをリソース制御コマンド６２３〜６２６として出力する。こうして作業用ファイルのファイルサイズが「０」になると、退避コマンドがなくなったものと判定する。この処理をＳ７１４でＥｎｄＰａｇｅコマンドを検出するまで実行し、ＥｎｄＰａｇｅコマンドを検知するとＳ７１５に進む。Ｓ７１５で印刷データ加工部３０９は、ＰａｇｅＥｎｄコマンドを出力し、処理済みページ数をカウントしている変数ｉをインクリメントしてＳ７０８に進む。
【００６１】
Ｓ７０８で印刷データ加工部３０９は、ＥｎｄＪｏｂコマンドを検知したかどうか、即ち、ジョブの終了を検知したかどうかを判定し、ジョブの終了を検知したときはＳ７０９に進み、そうでないときはＳ７０３に進む。Ｓ７０９で印刷データ加工部３０９は、ＥｎｄＪｏｂコマンドを出力してＳ７１０に進み、リソース制御コマンドの退避に使用した作業用ファイルを削除して、この処理を終了する。
【００６２】
このとき印刷ジョブ管理部３０２は、上述の処理によって出力されたＰＤＬデータ３２２を、ページ削除処理済みのＰＤＬデータとして書誌情報３２０に加えて管理する。
【００６３】
尚、リソース制御コマンドを大量に含むＰＤＬデータを処理する際、ＰＤＬデータ記憶部３０３の空き容量次第では作業用ファイルに退避できない可能性があり、そのような場合はエラー処理を行う必要がある。このエラー処理は、ここでは詳細な説明は省略するが、ＰＤＬデータの加工処理を中断し、表示部１０５にエラーメッセージを表示して、処理を終了するのが一般的である。
【００６４】
以上説明したように実施形態１によれば、上述した処理を行うことにより、ページ間にまたがって有効なリソースが存在するＰＤＬデータの場合も、効率的に任意のページを削除できる。そして、ＰＤＬの言語仕様が「リソース継承レベルがジョブ」の場合であっても、そのページを削除することによる、その削除ページのリソースを参照している他のページへの影響をなくすことができる。
【００６５】
［実施形態２］
上述の実施形態１では、削除対象ページに含まれるリソース制御コマンドを一旦作業用ファイルに退避（スプール）し、後続ページの処理の開始直後に、その退避していたコマンドを、その後続ページに挿入していた。しかし、ＰＤＬの言語仕様によっては、作業用ファイルに退避せずにページ削除を行うこともできる。即ち、ページ開始コマンドのパラメータが固定長であるか、最大サイズを特定可能なＰＤＬの場合は、削除対象ページに記述されたリソース制御コマンドをスプールすることなく、任意のページを削除したＰＤＬデータを出力することができる。
【００６６】
そこで実施形態２では、削除対象ページのページ開始コマンド（ＢｅｇｉｎＰａｇｅ）をダミーとして一旦出力することで、削除対象ページのリソース制御コマンドを出力する。その後、削除対象でない後続ページのページ開始コマンドのパラメータを、削除対象ページのページ開始コマンドに上書きする。以下、図８及び図９を参照して実施形態２の詳細を説明する。尚、実施形態２に係る印刷システム、画像出力装置１０２及びＰＣ１０１の構成は、前述の実施形態１と同様であるため、その説明を省略する。
【００６７】
図８（Ａ）は、実施形態２に係るページ開始コマンド（ＢｅｇｉｎＰａｇｅ）８０７の言語仕様例を示す図、図８（Ｂ）は、ＰＤＬデータの具体例を示している。そして、図８（Ｃ）は、削除対象ページに対するページ開始コマンドを一旦ダミー出力する際の例を示している。
【００６８】
図８（Ａ）において、バイト表現８０１は、コマンド或いはパラメータのバイト表現を示し、それぞれ予め言語仕様に基づいて１バイトの数値が割当てられている。実施形態２では、＜０ｘ０２＞（１６進数）がＢｅｇｉｎＰａｇｅコマンドを示し、＜０ｘｅ７＞が、ＢｅｇｉｎＰａｇｅに付随する「画像領域サイズ」のパラメータである。このＢｅｂｉｎＰａｇｅコマンド８０７は、８０８で示すように、５種類のパラメータを取り得る。
【００６９】
パラメータ例８０２は、パラメータとして指定される値の例を示し、パラメータの値の型や個数は、予め言語仕様によってパラメータの種類毎に決められている。例えば、「画像領域サイズ」のパラメータには、ページ領域のサイズ表す２つの数値が（１／印刷解像度）ｉｎｃｈの単位で記述されており、最大４バイトの値をとる。これはサイズ８０５で示されている。
【００７０】
意味８０３は、各パラメータの意味を説明している。ここでは「画像領域サイズ」「画像の向き」「オリエンテーション」「原点」「カラーモード」が含まれている。任意／必須８０４は、各パラメータが必須であるか否かを示しており、ここではオリエンテーション＜０ｘｄ２＞、原点＜０ｘｄ３＞、カラーモード＜０ｘｄ４＞のパラメータは任意であり、指定しない場合は、初期値８０６に示した値が初期値として認識される。サイズ８０５は、各パラメータのサイズ（バイト数）を示しており、画像領域サイズと原点が最大４バイトで、その他のパラメータは１バイトである。初期値８０６は、オリエンテーション、原点、カラーモードに設定されており、それぞれ方向０（縦長）、原点（０，０）、０（白黒）に設定されている。
【００７１】
図８（Ｂ）は、図８（Ａ）の言語仕様に基づいて２ページ分のＢｅｇｉｎＰａｇｅコマンドを指定した例を示す。
【００７２】
ページ１のＢｅｇｉｎＰａｇｅコマンド８０９、ページ２のＢｅｇｉｎＰａｇｅコマンド８１１に、ページ１のパラメータ８１０、ページ２のパラメータ８１２がそれぞれ付帯している。ここでページ１では、原点とカラーモードの２つのパラメータが省略されており、画像領域サイズはＡ４、画像の向きが０°、オリエンテーションは縦長となっている。またページ２のパラメータは、画像領域サイズはＡ３、画像の向きが９０°、オリエンテーションは横長、原点（０ｘ７８，０ｘ７８）、カラーモード（カラー）となっている。
【００７３】
図８（Ｃ）は、図８（Ｂ）に示したページ開始コマンドの構成を持つＰＤＬデータのページ１を削除する際に、印刷データ加工部３０９が一時的にダミーとして出力するページ開始コマンドの例を示している。ここで、ページ１のＢｅｇｉｎＰａｇｅコマンド８０９で指定されたパラメータ８１０は、８１４で示すように、ＰＤＬデータ３２２内で、そのままの値で出力されている。一方、ページ１で省略されていた原点とカラーモードの２つのパラメータは、初期値をセットして、８１５で示すように出力する。この時、データのサイズが値によって可変的に指定可能なパラメータ（例えば原点）は、ページ２の値を上書きする際にＢｅｇｉｎＰａｇｅコマンド内のみを書き変えれば済むように、最大のデータサイズへ型変換した上で出力する。例えば、パラメータ「原点」は、加工前のＰＤＬデータでは各座標（ｘ、ｙ）の値が１バイト（計２バイト）で記述されているが、言語仕様上取りうる値は最大２バイトであるため、（０ｘ００００、０ｘ００００）のように計４バイトで出力している。
【００７４】
上述のように、削除対象ページのＢｅｇｉｎＰａｇｅコマンドを一時的にダミーとして出力し、削除対象ページのＢｅｇｉｎＰａｇｅコマンドを、後続の削除対象でないページのＢｅｇｉｎＰａｇｅコマンドで上書きする。これにより、削除対象ページに含まれていたリソース制御コマンドを退避する必要がなくなる。この時、上書きされる削除対象でない後続ページのパラメータは、型が可変サイズとなるものは最大サイズに変換して上書きされる。
【００７５】
図９は、実施形態２に係る画像出力装置（ＭＦＰ）１０２によるページ削除処理を説明するフローチャートである。尚、この処理を実行するプログラムはフラッシュメモリ２０３又はＨＤＤ２１１に記憶されており、実行時、そのプログラムがＲＡＭ２０４に展開されＣＰＵ２０２の制御の下に実行されることにより、このフローチャートで示す処理が達成される。ここでは、ＣＰＵ２０２がそのプログラム実行することにより、その機能が達成される図３で説明した各機能部による処理として、このフローチャートによる処理手順を説明する。
【００７６】
尚、図９において、Ｓ９０１〜Ｓ９０４，Ｓ９０７〜９０９，Ｓ９１０〜Ｓ９１２，Ｓ９１５〜Ｓ９１７の処理は、図７のＳ７０１〜Ｓ７０４、Ｓ７０５〜Ｓ７０７，Ｓ７０８〜Ｓ７１０，Ｓ７１３〜Ｓ７１５と同一の処理であるため、それらの説明を省略する。
【００７７】
実施形態２では、印刷データ加工部３０９は、Ｓ９０４で削除対象ページのＢｅｇｉｎＰａｇｅコマンドを検知したかどうかを判定し、削除対象ページのＢｅｇｉｎＰａｇｅコマンドを検知するとＳ９０５に進む。Ｓ９０５で印刷データ加工部３０９は、変数ｉの処理済みページ数と書誌情報とを比較して、削除対象ページが印刷ジョブの最終ページか否かを判定する。ここで、印刷ジョブの総ページ数は、印刷データ解析部３０４の解析処理によって予め書誌情報３２０に含まれているものとするが、ＰＤＬデータを生成するプリンタドライバが予め印刷ジョブ属性に含ませておいても良い。
【００７８】
Ｓ９０５で、削除対象ページが印刷ジョブの最終ページであると判定した場合はＳ９１３に進み、ＥｎｄＰａｇｅコマンドを見つけるまで全てのコマンド（ＥｎｄＰａｇｅを含む）を読み飛ばし、ＥｎｄＪｏｂコマンドまでの後続コマンドがあれば出力する。ここで最終ページのＥｎｄＰａｇｅ以降に発行されるコマンドとしては、各種リセットコマンド等が該当する。この場合、後続コマンドはＥｎｄＪｏｂであるため、続くＳ９１０では必ずジョブの終了と判定される。
【００７９】
一方、Ｓ９０５で削除対象ページが印刷ジョブ内の最終ページでないと判定すると印刷データ加工部３０９は、まず削除対象ページのＢｅｇｉｎＰａｇｅコマンドを、図８（Ｃ）に示したようにパラメータサイズを補完しつつダミーとして出力する。次に、前述の実施形態１と同様に、Ｓ９０７〜Ｓ９０９で、ＥｎｄＰａｇｅまでの削除対象ページに含まれるリソース制御コマンドのみを出力する。この時、印刷データ加工部３０９は、そのダミー出力したコマンドを、後続ページのＢｅｇｉｎＰａｇｅコマンドで上書きするために、ダミー出力したコマンドのＰＤＬデータ先頭からのバイト位置をワークメモリに記憶しておく。
【００８０】
またＳ９０４で、削除対象でないページのＢｅｇｉｎＰａｇｅを検知した場合はＳ９１４に進み、出力済みのダミーのＢｅｇｉｎＰａｇｅコマンド部分を、処理中ページのパラメータで上書きして出力する。
【００８１】
以上説明したように実施形態２によれば、削除対象であるページ構造に含まれるリソース制御コマンドを退避することなく、任意のページのＰＤＬデータを削除することができる。このため、ＰＤＬデータ記憶部３０３の作業領域を圧迫することなくページ削除処理を実現できる。
【００８２】
［実施形態３］
前述の実施形態１，２に示した印刷データ加工部３０９は、削除対象ページのページ構造を削除、或いは後続ページに上書きすることで任意ページの削除処理を実現していた。しかし本発明はこれに限らず、ページ構造を残したままで、印刷時に白紙を出力しないよう制御することでも実現できる。
【００８３】
既存の画像出力装置では、印刷データ解析部３０４が備える機能として、描画処理に直接寄与するコマンドがページに１つも含まれない場合、そのページを白紙と解釈する機能がある。そして、操作パネルを介したユーザの設定に応じて、白紙と判定したページの出力を制御する白紙節約機能を備えているものがある。
【００８４】
実施形態３では、この白紙節約機能を利用して、削除対象ページに含まれるリソース制御コマンドをスプールすることなく、また実施形態２のように、ページ開始コマンドをダミー出力することもなく、任意ページの削除処理を実現する。
【００８５】
実施形態３に係る印刷データ加工部３０９は、削除対象ページのページ開始コマンド及びリソース制御コマンド、ページ終了コマンドを発行順番の通りに出力するが、そのページ構造には、描画処理に直接寄与するコマンドは含まれていない。そのため、白紙節約機能によって、加工されたＰＤＬデータ内の削除対象ページは印刷されることなく削除される。尚、操作パネルを介したユーザの設定により白紙節約設定が無効になっている場合は、削除対象ページに対して一時的に白紙節約設定を有効とするためのコマンドを挿入し、削除対象ページの最後で白紙節約を無効に戻すコマンドを挿入する必要がある。以下、図１０の模式図及び図１１のフローチャートを参照して実施形態３の詳細を説明する。尚、実施形態３に係る印刷システム、画像出力装置１０２及びＰＣ１０１の構成は、前述の実施形態１と同様であるため、その説明を省略する。
【００８６】
図１０は、実施形態３に係るページ削除処理後のＰＤＬデータの構成例を示す図で、削除対象であるページ１の構成を示している。尚、受信したＰＤＬデータ３２１は、実施形態１の図６（Ａ）と同一であり、１００１〜１００２は図６（Ａ）の６０１〜６０２に、１００４〜１００７は図６（Ａ）の６０３〜６０６に、１００９は図６（Ａ）の６０８にそれぞれ対応している。
【００８７】
実施形態３では、印刷データ解析部３０４が備える白紙節約機能を一時的に有効とするために、削除対象ページの最初にＳｅｔＷｈｉｔｅＰａｇｅＳａｖｅコマンド１００３をパラメータ「ＯＮ」で挿入する。そして、そのページ１のページ構造の最後にパラメータ「ＯＦＦ」のＳｅｔＷｈｉｔｅＰａｇｅＳａｖｅコマンド１００８を挿入する。こうして、白紙節約機能によって、加工されたＰＤＬデータ内の削除対象ページは印刷されることなく削除することができる。尚、図１１のフローチャートで後述する通り、白紙節約設定が予め有効となっている場合は、白紙節約を制御するためのコマンド１００３，１００８を挿入する必要はない。
【００８８】
図１１は、実施形態３に係る画像出力装置（ＭＦＰ）１０２によるページ削除処理を説明するフローチャートである。尚、この処理を実行するプログラムはフラッシュメモリ２０３又はＨＤＤ２１１に記憶されており、実行時、そのプログラムがＲＡＭ２０４に展開されＣＰＵ２０２の制御の下に実行されることにより、このフローチャートで示す処理が達成される。ここでは、ＣＰＵ２０２がそのプログラム実行することにより、その機能が達成される図３で説明した各機能部による処理として、このフローチャートによる処理手順を説明する。
【００８９】
図１１のＳ１１０１〜Ｓ１１０４，Ｓ１１１５，Ｓ１１１６〜Ｓ１１１７，Ｓ１１０７〜１１０８，Ｓ１１１２〜Ｓ１１１４は、実施形態１の図７のＳ７０１〜Ｓ７０４，Ｓ７１１，Ｓ７１３〜Ｓ７１４，Ｓ７０５〜Ｓ７０６，Ｓ７０８〜Ｓ７１０とそれぞれ同じであるため、それらの説明は省略する。
【００９０】
実施形態３に係る印刷データ加工部３０９は、Ｓ１１０４にて削除対象ページのＢｅｇｉｎＰａｇｅコマンド１００２を検知するとＳ１１０５に進み、ユーザにより白紙節約設定がオフかどうか判定する。そして、設定が無効（オフ）の場合はＳ１１０６に進み、白紙節約をＯＮに変更するコマンド１００３を出力する。その後、前述の実施形態１と同様に、Ｓ１１０７，Ｓ１１０８で削除対象ページ内のリソース制御コマンドのみを出力する。そしてＳ１１０８でＥｎｄＰａｇｅコマンド１００９を検知するとＳ１１０９に進み、白紙節約設定がオフかどうかを調べる。ここで白紙節約設定が無効（オフ）と判定するとＳ１１１０に進み、Ｓ１１０６でオンにセットした白紙節約をオフに戻すためのコマンドを出力する。また前述の実施形態１との違いとして、実施形態３では、削除対象ページのページ構造を残したままとするため、Ｓ１１１１にてＥｎｄＰａｇｅコマンドを出力した後、処理済みページ数を示す変数ｉの値をインクリメントする。
【００９１】
以上説明したように実施形態３によれば、削除対象ページに含まれるＢｅｇｉｎＰａｇｅコマンド及びリソース制御コマンドを削除せずに、そのページの印刷だけを省略できる。これにより、実施形態１の図７のＳ７１２のように、削除対象ページに含まれるコマンドを退避させる必要もなく、また実施形態２の図９のＳ９１４のように、削除対象でないページのコマンドで上書きする必要もない。
【００９２】
［実施形態４］
上述の実施形態１〜３では、リソース制御コマンドがＢｅｇｉｎＰａｇｅ〜ＥｎｄＰａｇｅコマンドで囲まれたページ構造内で発行される言語仕様の場合について説明したが、本発明はこれに限らず、ページ構造の外部で発行される場合にも適用可能である。尚、実施形態４に係る印刷システム、画像出力装置１０２及びＰＣ１０１の構成は、前述の実施形態１と同様であるため、その説明を省略する。
【００９３】
図１２は、本発明の実施形態４に係るＰＤＬデータの構成例を示す図である。尚、図１２において、前述の実施形態１の図６（Ａ）と共通する部分は同じ記号で示し、それらの説明を省略する。
【００９４】
ページ１のＢｅｇｉｎＰａｇｅ１２０６よりも先のコマンド１２１５、及びページ１のＥｎｄＰａｇｅ１２０８とページ２のＢｅｇｉｎＰａｇｅ１２１１の間のコマンド１２１６で、リソース登録や削除等のリソース制御コマンドを発行できることを示している。
【００９５】
このような言語仕様のＰＤＬを処理対象とする場合、印刷データ加工部３０９は、ページ構造の外部で発行されたリソース制御コマンド１２１５，１２１６をそのまま出力すれば良い。このため、処理手順は実施形態１の図７に示したフローチャートと同じ処理で良い。なぜなら、ページ構造の外部で発行されたコマンド群は、Ｓ７０３で示した処理によって出力されるためである。
【００９６】
［実施形態５］
前述の実施形態１〜４では、図４のプレビュー画面上に表示されたプリントボタン４０８の押下に応じて印刷ジョブ管理部３０２が印刷データ加工部３０９を呼び出し、ＰＤＬデータを加工し削除対象ページを予め除外していた。このように構成することで、印刷データ解析部３０４の解析処理に先だって、ＰＤＬデータから不要なページ構造を削除することができる。
【００９７】
一方、ＰＤＬの言語仕様によっては、フォントデータやタイルパターン等のリソース以外に、描画ステータスをページ間でまたがって引き継げる種類のＰＤＬも存在する。描画ステータスの一例としては、描画処理に用いるペン色やペンの太さ、ＲＯＰ(raster operation processing)演算、文字サイズをはじめとするフォント選択パラメータなど、様々な項目がある。尚、以下の説明では、描画ステータスがページ間にまたがる場合を「描画ステータスの継承レベルがジョブである」と記し、ページの切り替わりによって描画ステータスが初期値に設定される場合を「描画ステータスの継承レベルがページである」と記す。
【００９８】
上述のような言語仕様のＰＤＬについても、削除対象ページに含まれる描画ステータスに影響するコマンドを出力することにより、任意ページの削除を実現できるが、ＰＤＬの言語仕様に応じて処理方法を切り換えるよう構成することもできる。実施形態５では、リソース及び描画ステータスの継承レベルに応じて、ページ削除方法として以下の３種類の処理を切り換えるものとする。
【００９９】
（Ａ）リソースの継承レベル、及び描画ステータスの継承レベルが共にページ
＜方法Ａ＞
印刷データ加工部３０９によって、削除対象ページのページ開始コマンドからページ終了コマンドまでの全コマンドを読み飛ばす。この場合、リソース継承レベルはページであるため、削除対象ページに含まれるリソース制御コマンドは、ページ間の参照状況を考慮することなく読み飛ばすことができる。
【０１００】
（Ｂ）リソースの継承レベルがジョブで、描画ステータスの継承レベルがページ
＜方法Ｂ＞
前述の実施形態１〜４で説明したいずれかの方法を適用した印刷データ加工部３０９によって、削除対象ページのコマンドを読み飛ばす。
【０１０１】
（Ｃ）リソースの継承レベルが任意、描画ステータスの継承レベルがジョブ
＜方法Ｃ＞
印刷データ加工部３０９は、ジョブ制御ヘッダ部に、削除対象ページ情報を付加して処理を終了する。そして、印刷処理時に、ジョブ制御ヘッダ部を解析した印刷データ解析部３０４は、エンジン制御部３０６に対して、削除対象ページ情報を伝える。エンジン制御部３０６は、削除対象ページ情報の通知を受け取ると、削除対象ページに相当するＰＤＬデータが削除されていないと判断する。そして、その削除対象ページ情報から特定される削除対象ページの画像データをプリンタエンジン２１５へ出力することなく読み捨てる。
【０１０２】
尚、リソースの継承レベル、及び描画ステータスの継承レベルの判定は、ＰＤＬ言語の種別によって静的に判定する方法、或いは継承レベルを指定するコマンドを解析して動的に判定する方法のいずれかで行う。継承レベルを指定するコマンドとしては、例えばジョブ開始を定義するＢｅｇｉｎＪｏｂコマンドを用い、そのコマンドのパラメータで継承レベルを指定できる。また、ＰＤＬ言語の種別による判定と継承レベルを指定するコマンドによる判定とを組み合わせることで、継承レベルを判定するように構成しても良い。
【０１０３】
図１３は、実施形態５に係る画像出力装置（ＭＦＰ）１０２によるページ削除処理を説明するフローチャートである。尚、この処理を実行するプログラムはフラッシュメモリ２０３又はＨＤＤ２１１に記憶されており、実行時、そのプログラムがＲＡＭ２０４に展開されＣＰＵ２０２の制御の下に実行されることにより、このフローチャートで示す処理が達成される。ここでは、ＣＰＵ２０２がそのプログラム実行することにより、その機能が達成される図３で説明した各機能部による処理として、このフローチャートによる処理手順を説明する。尚、実施形態５に係る印刷システム、画像出力装置１０２及びＰＣ１０１の構成は、前述の実施形態１と同様であるため、その説明を省略する。
【０１０４】
図１３において、Ｓ１３０１〜Ｓ１３０２は、実施形態１のＳ７０１〜Ｓ７０２の各処理内容と同じであるため、説明は省略する。
【０１０５】
続くＳ１３０３で印刷データ加工部３０９は、図５に示したジョブ制御ヘッダ部５０１、或いはジョブ開始コマンドのパラメータを読み出し、継承レベルの種別を判定する。実施形態５では、「＠ＰＪＬ  ＥＮＴＥＲ  ＬＡＮＧＵＡＧＥ＝」に続く文字列から、ＰＤＬ種別が「ＰＤＬ１」であると判定し、ＰＤＬ種別毎に予め決められた継承レベルであると判定する。次にＳ１３０４に進み印刷データ加工部３０９は、ＰＤＬ種別の判定結果を基に、リソース及び描画ステータスの継承レベルが、上述のＡに該当するかを判定する。ここで継承レベルがＡの場合はＳ１３０５に進み、上述の方法Ａによって削除対象ページに含まれる全てのコマンドを削除する。一方、Ｓ１３０４で継承レベルがＡでないと判定したときはＳ１３０６に進み、継承レベルが上述のＢかどうか判定する。継承レベルがＢと判定するとＳ１３０７に進み、方法Ｂによってページ削除処理を行う。更に、Ｓ１３０６で継承レベルがＢでないと判定したときは、上述のＣであると判定してＳ１３０８に進み、上述の方法Ｃによってページ削除処理を行う。即ち、Ｓ１３０８では、印刷データ加工部３０９は、削除対象ページ情報をＰＤＬデータに付加してＰＤＬデータ３２２として出力して、処理を終了する。
【０１０６】
図１４は、実施形態５に係る画像出力装置（ＭＦＰ）１０２による図１３のＳ１３０７のページ削除処理を説明するフローチャートである。尚、この処理を実行するプログラムはフラッシュメモリ２０３又はＨＤＤ２１１に記憶されており、実行時、そのプログラムがＲＡＭ２０４に展開されＣＰＵ２０２の制御の下に実行されることにより、このフローチャートで示す処理が達成される。ここでＳ１４０１〜Ｓ１４０５の各ステップは、印刷データ解析部３０４及びページ画像生成部３０５が実行するステップであり、Ｓ１４０６〜Ｓ１４１０はエンジン制御部３０６が実行するステップである。
【０１０７】
まずＳ１４０１で印刷データ解析部３０４は、印刷データ加工部３０９が出力したＰＤＬデータ３２２を参照して削除対象ページ情報を取得し、Ｓ１４０６以降でエンジン制御部３０６が参照するために、エンジン制御部３０６に対して通知する。次のＳ１４０２〜Ｓ１４０５の各ステップは、ページ削除を行わない通常の印刷処理と同様で良い。まずＳ１４０３で印刷データ解析部３０４はＰＤＬデータを解析し、Ｓ１４０４で、その解析結果に基づいてページ画像生成部３０５がページ画像データを生成してＨＤＤ２１１に格納する。そして、このページ画像データの生成処理を、Ｓ１４０５でジョブ終了コマンドが検知されるまで繰り返して、ＰＤＬデータに含まれる全てのページ画像データを生成する。
【０１０８】
こうしてページ画像データを生成すると、エンジン制御部３０６はＳ１４０６以降のループ処理において、ＨＤＤ２１１に格納されたページ画像データを順次読み出し、削除対象ページでないページ画像データのみをプリンタエンジン２１５に出力して印刷する。そのためにエンジン制御部３０６はＳ１４０６で、まず印刷データ解析部３０４から受け取った削除対象ページ情報を参照して、削除対象ページを特定する。そしてＳ１４０７以降のループ処理において、ＨＤＤ２１１に格納済みのページ画像データを先頭ページから順次読み出し、Ｓ１４０８で削除対象ページかどうか判定する。ここで読み出したページ画像データが削除対象ページであると判定するとＳ１４０９に進み、その画像データをプリンタエンジン２１５へ出力することなく読み捨てる。一方、削除対象ページでないと判定した場合はＳ１４１１に進み、通常通り、その画像データをプリンタエンジン２１５へ出力して印刷する。こうして、ページ画像データの読み捨て、或いは印刷処理を印刷ジョブ内の最終ページまで繰り返すことで、削除対象ページのみを印刷しないようにして印刷を行うことができる。
【０１０９】
尚、実施形態５では、説明を簡単にするため、ページ画像データの生成までと、ページ画像データの出力処理をシーケンシャルに実行するように説明した。しかし、ＰＤＬデータの解析とページ画像データの生成と、生成済みのページ画像データの印刷を並行して実行しても良い。
【０１１０】
以上説明したように実施形態５によれば、ＰＤＬのリソース及び描画ステータスの継承レベルに応じて、最適な方法で、任意ページの削除に対応した印刷処理を実現できる。
【０１１１】
尚、全てのＰＤＬ種別に対してページ画像データを読み飛ばす方法Ｃを適用することでも、任意ページの削除を実現することもできる。但し、この場合は、削除対象ページについてもＰＤＬデータの解析及びページ画像データの生成処理を行うため、予めＰＤＬデータを加工して実現する方法Ａ及び方法Ｂに比べると処理効率が低下する。
【０１１２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【０１１３】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【０１１４】
１０１…ＰＣ，１０２…画像出力装置（ＭＦＰ），２０２…ＣＰＵ，２１１…ＨＤＤ，２１５…プリンタエンジン、３０２…印刷ジョブ管理部、３０３…ＰＤＬデータ記憶部、３０９…印刷データ加工部
【図１】
0006659099.tif 000002
【図２】
0006659099.tif 000003
【図３】
0006659099.tif 000004
【図４】
0006659099.tif 000005
【図５】
0006659099.tif 000006
【図６】
0006659099.tif 000007
【図７】
0006659099.tif 000008
【図８】
0006659099.tif 000009
【図９】
0006659099.tif 000010
【図１０】
0006659099.tif 000011
【図１１】
0006659099.tif 000012
【図１２】
0006659099.tif 000013
【図１３】
0006659099.tif 000014
【図１４】
0006659099.tif 000015