(57)【要約】【課題】ＰＣＬＸＬ描画命令の後に、ＰＣＬ５で「両面指定」や「給紙段指定」などの制御命令が発行されると、制御命令が効かない順序で印刷データが作られてしまう。【解決手段】第１の印刷用言語で記述された印刷ジョブに基づいて印刷する画像形成装置であって、前記印刷ジョブに含まれる１ページのデータに、パススルーデータが含まれるかを判定し、パススルーデータが含まれていると判定した場合、当該パススルーデータが、第１の印刷用言語とは異なる第２の印刷用言語の制御命令を含むかどうか判定する。そして、その制御命令が含まれていると判定した場合、前記パススルーデータを前記１ページのデータの先頭に移動する。【選択図】  図６
2020027476.tif 000002
【特許請求の範囲】
【請求項１】
第１の印刷用言語で記述された印刷ジョブに基づいて印刷する画像形成装置であって、
前記印刷ジョブに含まれる１ページのデータに、パススルーデータが含まれるかを判定する第１判定手段と、
前記第１判定手段が前記パススルーデータが含まれていると判定した場合、当該パススルーデータが、前記第１の印刷用言語とは異なる第２の印刷用言語の制御命令を含むかどうか判定する第２判定手段と、
前記第２判定手段が前記制御命令が含まれていると判定した場合、前記パススルーデータを前記１ページのデータの先頭に移動する移動手段と、
を有することを特徴とする画像形成装置。
【請求項２】
前記印刷ジョブにおいて、前記１ページのデータはＢｅｇｉｎＰａｇｅ命令に続いて記述されており、前記移動手段は、前記パススルーデータを前記ＢｅｇｉｎＰａｇｅ命令の直後に移動することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記移動手段は更に、前記１ページのデータにおいて、前記ＢｅｇｉｎＰａｇｅ命令から前記パススルーデータまでのデータを、移動した前記パススルーデータの直後に移動することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記移動手段は、前記１ページのデータにおいて、前記ＢｅｇｉｎＰａｇｅ命令から前記パススルーデータまでのデータの量が所定量よりも多いときは、前記パススルーデータを前記ＢｅｇｉｎＰａｇｅ命令の直後に移動しないことを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記パススルーデータが描画命令を含むかどうか判定する第３判定手段を更に有し、
前記移動手段は、前記第３判定手段が前記パススルーデータが描画命令を含むと判定すると、前記パススルーデータを前記ＢｅｇｉｎＰａｇｅ命令の直後に移動しないことを特徴とする請求項２乃至４のいずれか１項に記載の画像形成装置。
【請求項６】
前記移動手段は、前記１ページのデータが複数のパススルーデータを含む場合、最初のパススルーデータだけを移動することを特徴とする請求項１乃至５のいずれか１項に記載の画像形成装置。
【請求項７】
前記制御命令は、両面指定命令、或いは、給紙段指定命令を含むことを特徴とする請求項１乃至６のいずれか１項に記載の画像形成装置。
【請求項８】
前記第１の印刷用言語は、ＰＣＬＸＬであることを特徴とする請求項１乃至７のいずれか１項に記載の画像形成装置。
【請求項９】
前記第２の印刷用言語は、ＰＣＬ５であることを特徴とする請求項１乃至８のいずれか１項に記載の画像形成装置。
【請求項１０】
第１の印刷用言語で記述された印刷ジョブに基づいて印刷する画像形成装置を制御する制御方法であって、
前記印刷ジョブに含まれる１ページのデータに、パススルーデータが含まれるかを判定する第１判定工程と、
前記第１判定工程が前記パススルーデータが含まれていると判定した場合、当該パススルーデータが、前記第１の印刷用言語とは異なる第２の印刷用言語の制御命令を含むかどうか判定する第２判定工程と、
前記第２判定工程が前記制御命令が含まれていると判定した場合、前記パススルーデータを前記１ページのデータの先頭に移動する移動工程と、
を有することを特徴とする制御方法。
【請求項１１】
コンピュータを、請求項１乃至９のいずれか１項に記載の画像形成装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置とその制御方法、及びプログラムに関するものである。
【背景技術】
【０００２】
従来、マイクロソフト社の文書作成アプリケーションソフトウェアであるワード（登録商標）などのアプリケーションには、フィールドと呼ばれる領域を設定する機能がある。このフィールドには、例えばヘッダやフッタがあり、自動的にページ番号や日付等を入れることができる。更に、このフィールドには、印刷用言語であるＰＣＬ５の命令を記載する機能がある。このワードから、プリンタドライバを介した印刷を行う際、このフィールドに記載したＰＣＬ５命令は、ドライバによるＰＤＬへの変換処理を経由せず、直接、プリンタに送られるため、この機能はドライバパススルーと呼ばれる。この機能を使用することにより、プリンタドライバの設定に関わらず命令を発行できる。このため、プリンタで必ず両面で印刷したい文書や、決められた給紙カセットの用紙で印刷したい場合など、予めワードのテンプレートを作成し、フィールドに、ＰＣＬ５でそれらの命令を記載することが行われている。
【０００３】
また従来より、ＰＣＬ５とは異なる印刷用言語であるＰＣＬＸＬが知られており、このＰＣＬＸＬを用いて記述された印刷命令を実行できるＰＣＬＸＬプリンタが知られている。
【０００４】
いまユーザが、ＰＣＬ５を用いて記述された印刷命令を実行できるＰＣＬ５プリンタに印刷させるための文書テンプレートとして、ＰＣＬ５の命令をフィールドに記載した文書テンプレートを利用している場合がある。そして、ユーザが利用するプリンタがＰＣＬ５プリンタからＰＣＬＸＬプリンタに切り替わっても、文書テンプレートが更新されない場合、フィールドにＰＣＬ５命令が記載された文書がＰＣＬＸＬ用のプリンタに送信されることになる。この場合、ＰＣＬＸＬプリンタに対して、ＰＣＬＸＬ用のプリンタドライバからＰＣＸＬの印刷命令が送信され、更に、フィールドに記載されたＰＣＬ５の印刷命令がドライバパススルーでＰＣＬＸＬプリンタに送信される。
【０００５】
特許文献１に記載の画像形成装置は、ＰＣＬＸＬプリンタが、ドライバパススルーでＰＣＬ５命令を受信した場合、パススルー命令内のＰＣＬ５命令をＰＣＬＸＬ命令に置き換える。そして、置き換えの際、矛盾が生じるようであれば、矛盾が生じないように置き換えを行なうことが記載されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１８６０８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら上記従来技術では、フィールドにＰＣＬ５命令が記載された文書をＰＣＬＸＬ用のプリンタドライバを用いてＰＣＬＸＬプリンタで印刷する際は、以下のような課題があった。即ち、ＰＣＬＸＬプリンタは、ＰＣＬＸＬドライバから送信されたＰＣＬＸＬ命令と、ドライバパススルーにより送信されたＰＣＬ５命令が混在する印刷命令を処理することになる。この際、ＰＣＬＸＬ命令とＰＣＬ５命令との実行順序が、考慮されていなかった。例えば、ＰＣＬＸＬ描画命令の後に、ＰＣＬ５で「両面指定」や「給紙段指定」などの制御命令が発行されると、制御命令が効かない順序で印刷データが作られてしまう可能性がある。
【０００８】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【０００９】
本発明の目的は、印刷ジョブの１ページのデータにパススルーデータの制御命令が含まれていれば、当該パススルーデータの制御命令をページの開始に移動することにより、その制御命令を有効にできる技術を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明の一態様に係る画像形成装置は以下のような構成を備える。即ち、
第１の印刷用言語で記述された印刷ジョブに基づいて印刷する画像形成装置であって、
前記印刷ジョブに含まれる１ページのデータに、パススルーデータが含まれるかを判定する第１判定手段と、
前記第１判定手段が前記パススルーデータが含まれていると判定した場合、当該パススルーデータが、前記第１の印刷用言語とは異なる第２の印刷用言語の制御命令を含むかどうか判定する第２判定手段と、
前記第２判定手段が前記制御命令が含まれていると判定した場合、前記パススルーデータを前記１ページのデータの先頭に移動する移動手段とを有することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、印刷ジョブの１ページのデータにパススルーデータの制御命令が含まれている場合、その制御命令を有効に機能させて印刷を実行できる。
【００１２】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１３】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る印刷システムと、画像形成装置の構成を説明する図（Ａ）と、実施形態１に係る画像形成装置の動作を制御するコントローラのソフトウェア構成を示す機能ブロック図（Ｂ）。
【図２】従来の画像形成装置が実行する印刷処理の処理手順を説明するフローチャート。
【図３】図２のＳ２０３の処理を説明するフローチャート。
【図４】従来のＰＣＬＸＬ印刷系におけるパススルー処理の概要を説明する図。
【図５】実施形態１に係る画像形成装置による印刷処理手順を説明するフローチャート。
【図６】図５のＳ５０３のパススルーデータ入れ替え処理の処理手順を説明するフローチャート。
【図７】実施形態１に係る画像形成装置による図５のＳ５０３のパススルーデータの入れ替え処理の具体例を説明する図。
【図８】本発明の実施形態２に係る画像形成装置が実行する図５のＳ５０３のパススルーデータの入れ替え処理を説明するフローチャート。
【発明を実施するための形態】
【００１４】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでするものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１５】
［実施形態１］
図１（Ａ）は、本発明の実施形態１に係る印刷システムと、画像形成装置の構成を説明する図である。
【００１６】
画像形成装置１０１〜１０３は、ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ＳＦＰ（Ｓｉｎｇｌｅ  Ｆｕｎｃｔｉｏｎ  Ｐｒｉｎｔｅｒ）、ＬＢＰ（Ｌａｓｅｒ  Ｂｅａｍ  Ｐｒｉｎｔｅｒ）のうち、いずれのプリンタであってもよい。また、画像形成装置１０１〜１０３は、ＭＦＰ、ＳＦＰ、ＬＢＰ以外のプリント方式のプリンタであってもよい。また、図１では画像形成装置が３つ存在する例を示したが、１以上の任意の構成でも構わない。尚、画像形成装置１０１〜１０３は同じ構成であるため、以下、画像形成装置１０１を例に説明する。画像形成装置１０１は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０５を介し、各種指示を行うホストコンピュータ（ＰＣ）１０４と接続される。また画像形成装置１０１は、ホストコンピュータ１０４からの印刷指示内容に応じて処理を実行する。また、図１に示すように、複数の画像形成装置がＬＡＮ１０５を介して接続される場合は、各画像形成装置は、他の画像形成装置から印刷ジョブを受け取り印刷実行処理が可能である。
【００１７】
画像形成装置１０１は、コントローラ１１０、プリント機構１１１、カードリーダ１１２、操作パネル１１３を備える。コントローラ１１０は、ネットワークＩ／Ｆ１２０、リーダＩ／Ｆ１２１、パネルＩ／Ｆ１２２、ＣＰＵ１２３、ＨＤＤ（記憶装置）１２４、ＲＡＭ１２５、ＲＯＭ１２６、デバイスＩ／Ｆ１２７、ＲＩＰ（ラスタイメージプロセッサ）１２８、画像処理回路１２９を備え、これらはシステムバス１３０を介して接続されている。コントローラ１１０は、画像形成装置１０１全体を制御する。ネットワークＩ／Ｆ１２０は、例えばＬＡＮカード等で実現され、ＬＡＮ１０５に接続して外部装置との間で情報の入出力を行う。リーダＩ／Ｆ１２１は、外部からの認証情報を受け取るカードリーダ１１２に対するインタフェース部であり、外部から入力された認証情報を受け取ってＣＰＵ１２３に伝える役割をする。パネルＩ／Ｆ１２２は、各種メニューや印刷ジョブ情報等を表示可能な表示画面を有する操作パネル１１３のインタフェースであり、操作パネル１１３に対して操作画面データを出力する。またパネルＩ／Ｆ１２２は、操作パネル１１３から操作者が入力した情報をＣＰＵ１２３に伝える役割をする。ＣＰＵ１２３は、画像形成装置１０１全体を制御するための中央処理装置である。ＨＤＤ１２４は、ハードディスクドライブなどの記憶装置であり、各種処理のためのシステムソフトウェア及び入力された印刷ジョブや画像データ等を格納する。ＲＡＭ１２５は、ＣＰＵ１２３が動作するためのシステムワークメモリであり、入力された印刷ジョブや画像データを一時記憶するための画像メモリでもある。ＲＯＭ１２６はブートＲＯＭであり、システムのブートプログラムが格納されている。ＣＰＵ１２３は、このブートプログラムを実行してＨＤＤ１２４に格納されているプログラムをＲＡＭ１２５に展開し、その展開したプログラムを実行することにより、この画像形成装置１０１全体を制御する。
【００１８】
デバイスＩ／Ｆ１２７は、プリント機構１１１とコントローラ１１０とを接続し、画像データの同期系／非同期系の変換を行う。ＲＩＰ１２８は、印刷ジョブに含まれる描画コマンド（ＰＤＬコマンド）や中間データ（ディスプレイリスト）を解析してイメージに展開する。画像処理回路１２９は、印刷ジョブを解析して生成されたイメージデータに対してプリント機構１１１に応じた補正、解像度変換等の処理を行う。プリント機構１１１は、コントローラ１１０の指示に従って、印刷を実行する。カードリーダ１１２は、ユーザが持つＩＤカード等の情報を読み取り可能な機能を有し、ＩＤカードから読み取ったユーザ情報をコントローラ１１０へ通知する。操作パネル１１３は、コントローラ１１０より操作画面データを受け取り、受け取った画面の表示やユーザからの操作指示を受け取りコントローラ１１０へ通知する。
【００１９】
図１（Ｂ）は、実施形態１に係る画像形成装置１０１の動作を制御するコントローラ１１０のソフトウェア構成を示す機能ブロック図である。
【００２０】
コントローラ１１０は認証部１３１、設定部１３２、書誌管理部１３３、印刷制御部１３４、ジョブ解析部１３５、先行処理部１３６、留め置き制御部１３７、印刷実行部１３８を備える。また、これら各部（１３１〜１３８）の機能は、ＣＰＵ１２３がＲＡＭ１２５に展開したプログラムを実行することによって実現される。
【００２１】
認証部１３１は、リーダＩ／Ｆ１２１よりシステムバス１３０を通じて認証情報を受け取り、留め置き制御部１３７へ通知する。設定部１３２は、パネルＩ／Ｆ１２２よりシステムバス１３０を通じて操作パネル１１３への入出力の制御を行う。書誌管理部１３３は、留め置き制御部１３７が受信した印刷ジョブや印刷ジョブに関する情報を作成し管理する。印刷制御部１３４は、ネットワークＩ／Ｆ１２０を通じて入力された印刷指示や、印刷ジョブの情報を取得し、留め置き制御部１３７や印刷実行部１３８に対して印刷ジョブの処理を指示する。ジョブ解析部１３５は、留め置き制御部１３７が受信した印刷ジョブの解析を行う。先行処理部１３６は、留め置き制御部１３７が受信した印刷ジョブのジョブ解析部１３５の解析結果に応じて、印刷ジョブのレンダリング処理を行う。留め置き制御部１３７は、印刷制御部１３４から受け取った印刷ジョブに対して印刷ジョブの解析、管理、先行レンダリング処理の制御や印刷実行部１３８への印刷指示を行う。印刷実行部１３８は、印刷制御部１３４や留め置き制御部１３７より受け取った印刷ジョブを解析し、ＲＩＰ１２８や画像処理回路１２９を制御して画像データを生成し、デバイスＩ／Ｆ１２７を通じてプリント機構１１１へ出力して印刷させる。
【００２２】
図２は、従来の画像形成装置が実行する印刷処理の処理手順を説明するフローチャートである。
【００２３】
まずＳ２０１で、ネットワークＩ／Ｆを通じてホストコンピュータなどから送信された印刷ジョブを受信する。次にＳ２０２に進み、受信した印刷ジョブのＰＤＬの種別を判定する。ここでＰＣＬＸＬを用いて記述された印刷命令を含む印刷ジョブであると判定するとＳ２０３に進み、図３を参照して後述するＰＣＬＸＬデータから印刷画像データの生成処理を行ってＳ２０５に進む。一方、Ｓ２０２でＰＣＬＸＬ以外のＰＤＬ（ここでは、ＸＰＳ）と判定するとＳ２０４に進み、ＸＰＳデータから印刷画像データを生成してＳ２０５に進む。Ｓ２０５で、各ＰＤＬ処理で生成された印刷用の画像データに基づいて印刷処理を実行する。
【００２４】
図３は、図２のＳ２０３の処理を説明するフローチャートである。
【００２５】
Ｓ３０１で、受信した印刷ジョブデータを取得する。次にＳ３０２に進み、その取得したデータがパススルー命令か否かを判定する。パススルー命令でなければＳ３０３に進み、パススルー命令であればＳ３０５へ進む。Ｓ３０３で、パススルー命令以外のＰＣＬＸＬ命令としてそれぞれの命令に従った処理を行ってＳ３０４に進む。Ｓ３０４で、次のデータがあるか否かを判定し、データがあればＳ３０１へ戻り、データが無ければ、この処理を終了して呼び出し元に戻る。
【００２６】
またＳ３０５で、データ解析モードをＰＣＬ５の解析に切り替える。そしてＳ３０６に進み、パススルー命令のデータをＰＣＬ５命令として解析し、その命令に従った印刷命令を作成する。そしてＳ３０７に進み、そのパススルー命令の最後まで処理したかどうか判定し、終わりでなければＳ３０６へ戻り、終わりであればＳ３０４へ進む。ここでパススルー命令の最後かどうかの判定は、パススルー命令にパススルーデータサイズが記載されるので、そのサイズ分処理を行ったか否かで判定できる。
【００２７】
図４は、従来のＰＣＬＸＬ印刷系におけるパススルー処理の概要を説明する図である。
【００２８】
図４（Ａ）は、パススルー時の印刷処理手順を示す図であり、４０１はワード文書である。４０２はワード文書内のフィールドを示し、ＰＣＬ５命令で長辺綴じの両面印刷指定している例である。４０３はワード文書内で、印刷される文字列を示す。文字列４０３は、ワード文書上での表示と印刷結果は同じである。しかしフィールド４０２のワード文書上での表示は、フィールド内にＰＣＬ５の制御命令等を含むことが可能であるため、印刷結果とは必ずしも一致しない。このワード文書で印刷が実行されると、プリンタ４０６に対応するプリンタドライバ４０４を起動する。プリンタドライバ４０４は、フィールド４０２のデータに関しては変換処理を行わずに、ＰＣＬＸＬのパススルーデータとしてそのままＰＣＬ５命令をプリンタ４０６に送信する。よって、パススルーデータの発行順を制御することはできない。一方、印刷文字など通常の描画に関しては、ワード文書からプリンタドライバ４０４に描画データを渡し、プリンタドライバ４０４のＰＣＬＸＬ命令への変換処理４０５により、ＰＣＬＸＬデータを変換してプリンタ４０６に送信する。プリンタ４０６は、受信したＰＣＬＸＬデータを、ＰＣＬＸＬの印刷処理部４０７により解析して印刷用の画像データに変換して印刷する。
【００２９】
図４（Ｂ）は、プリンタドライバ４０４から送信されるパススルーデータを含むＰＣＬＸＬデータを示す図である。４０８はＰＣＬＸＬデータ全体を示し、その内部に、ＰＣＬＸＬのパススルー命令でＰＣＬ５データ４０９を内包している状態を示す。パススルー命令は、パラメータにＰＣＬ５命令で記述するパススルーデータのサイズを含むため、パススルーデータサイズは容易に取得できる。
【００３０】
図４（Ｃ）は、ＰＣＬ５の制御命令の一例を示す図である。４１０は、ＰＣＬ５コマンドでの両面指定命令を示し、片面指定、両面指定（長辺綴じ）、両面指定（短辺綴じ）が指定できる。４１１は、ＰＣＬ５コマンドでの給紙段指定命令を示し、自動給紙、メインカセット、手差し給紙などが指定できる。
【００３１】
図５は、実施形態１に係る画像形成装置１０１による印刷処理手順を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ１２３がＲＡＭ１２５に展開したプログラムを実行することにより達成される。
【００３２】
まずＳ５０１でＣＰＵ１２３は印刷制御部１３４として機能し、ネットワークＩ／Ｆ１２０を通じてホストコンピュータ１０４などから送信された印刷ジョブを受信する。次にＳ５０２に進みＣＰＵ１２３はジョブ解析部１３５として機能し、その受信した印刷ジョブに含まれるＰＤＬの種別を判定する。この判定で、ＰＣＬＸＬを用いて記述された印刷命令を含むＰＣＬＸＬジョブであると判定するとＳ５０３に進み、図６を参照して後述するパススルー入れ替え処理を行う。そしてＳ５０４に進みＣＰＵ１２３はジョブ解析部１３５として機能し、ＰＣＬＸＬデータから印刷用の画像データを生成してＳ５０５に進む。一方、Ｓ５０２の判定で、ＰＣＬＸＬ以外のＰＤＬ（実施形態１ではＸＰＳ）と判定したときはＳ５０６に進みＣＰＵ１２３は、他のＰＤＬ（実施形態１ではＸＰＳ）データから印刷用の画像データを生成してＳ５０５に進む。Ｓ５０５でＣＰＵ１２３は印刷実行部１３８として機能し、各ＰＤＬ処理で生成された画像データに基づいて印刷処理を実行して、この処理を終了する。
【００３３】
図６は、図５のＳ５０３のパススルーデータ入れ替え処理の処理手順を説明するフローチャートである。
【００３４】
まずＳ６０１でＣＰＵ１２３はジョブ解析部１３５として機能し、受信した印刷ジョブデータを取得する。次にＳ６０２に進みＣＰＵ１２３はジョブ解析部１３５として機能し、受信データが取得できたかを判定し、取得できなければ、この処理を終了して呼び出し元に戻り、取得できればＳ６０３に進む。Ｓ６０３でＣＰＵ１２３はジョブ解析部１３５として機能し、取得したデータがＢｅｇｉｎＰａｇｅ命令か否かを判定する。この判定でＮＯの場合はＳ６０１へ進み、ＹＥＳの場合にはＳ６０４へ進む。Ｓ６０４でＣＰＵ１２３はジョブ解析部１３５として機能し、ＢｅｇｉｎＰａｇｅ命令の位置をＲＡＭ１２５に記憶する。これは、後にパススルー命令を挿入する際の挿入位置として利用するためである。
【００３５】
次にＳ６０５に進みＣＰＵ１２３はジョブ解析部１３５として機能し、受信した印刷ジョブデータを取得する。そしてＳ６０６でＣＰＵ１２３は、受信データが取得できたかを判定し、取得できなければ、この処理を終了して呼び出し元に戻り、取得できればＳ６０７に進む。Ｓ６０７でＣＰＵ１２３はジョブ解析部１３５として機能し、取得したデータがパススルー命令か否かを判定する。この判定でＮＯの場合にはＳ６０８へ進み、ＹＥＳの場合にはＳ６１１へ進む。Ｓ６０８でＣＰＵ１２３はジョブ解析部１３５として機能し、取得したデータをＲＡＭ１２５に保存してＳ６０９に進む。Ｓ６０９でＣＰＵ１２３はジョブ解析部１３５として機能し、取得したデータがＢｅｇｉｎＰａｇｅ命令か否かを判定する。この判定でＮＯの場合にはＳ６０５に戻り、ＹＥＳの場合にはＳ６１０に進みＣＰＵ１２３は、ＲＡＭ１２５に保存したデータを破棄してＳ６０４に進む。
【００３６】
一方、Ｓ６０７の判定でＹＥＳのときはＳ６１１に進みＣＰＵ１２３はジョブ解析部１３５として機能し、パススルーデータ内にＰＣＬ５の制御命令があるか否かを判定する。ＰＣＬ５の制御命令があるときはＳ６１２へ進み、そうでないときはＳ６１３へ進む。Ｓ６１２でＣＰＵ１２３はジョブ解析部１３５として機能し、Ｓ６０４でＲＡＭ１２５に記憶したＢｅｇｉｎＰａｇｅ命令の位置に、そのパススルーデータを挿入する。そしてＳ６０８でＲＡＭ１２５に保存したデータを、その挿入したパススルーデータの直後に移動する。このＳ６１２の処理は、図７を参照して詳しく後述する。そしてＳ６１３に進みＣＰＵ１２３はジョブ解析部１３５として機能し、ＲＡＭ１２５に保存したデータを破棄してＳ６０１に戻る。
【００３７】
図７は、実施形態１に係る画像形成装置１０１による図５のＳ５０３のパススルーデータの入れ替え処理の具体例を説明する図である。
【００３８】
７０１は、画像形成装置１０１に入力される入力データを示し、ＰＣＬＸＬの印刷データである。７０２はＢｅｇｉｎＰａｇｅ命令を示し、この命令は、各ページの先頭で必ず記載され、片面印刷や両面印刷を指定するパラメータを含んでいる。７０２では、片面印刷を指定している。７０３は、通常のＰＣＬＸＬデータを示し、ＢｅｇｉｎＰａｇｅ命令とパススルー命令の間に発行されたものである。７０４は、ＰＣＬＸＬのパススルー命令で、パラメータとしてパススルーデータサイズを含んでいる。ここで指定されたデータサイズ分をＰＣＬ５命令として解釈し処理する。７０５は、パススルーデータ内のＰＣＬ５命令を示し、実施形態１では、ＰＣＬ５で、長辺綴じで両面印刷を指定する制御命令が含まれている。
【００３９】
次に変換後のデータ７０６は、入力データ７０１のＰＣＬＸＬデータに対して、パススルーデータの入れ替え処理を行った変換後のＰＣＬＸＬデータを示す。７０７は、７０２と同じＢｅｇｉｎＰａｇｅ命令である。７０８は、ＰＣＬＸＬのパススルー命令７０４に対応するＰＣＬＸＬのパススルー命令で、ＢｅｇｉｎＰａｇｅ命令７０８の直後に移動されている。更に、７０９は、ＰＣＬ５命令７０５に対応するＰＣＬ５命令で、パススルー命令７０８の後に移動されている。７１０は、通常のＰＣＬＸＬデータ７０３に対応するＰＣＬＸＬデータで、ＰＣＬ５命令７０９の直後に移動されている。
【００４０】
このように実施形態１によれば、ＰＣＬＸＬデータにパススルーデータが含まれていて、かつ、パススルーデータにＰＣＬ５の制御命令を含むページがあれば、パススルーデータをＢｅｇｉｎＰａｇｅ命令の直後に移動する。即ち、ワード文書のフィールドにＰＣＬ５の制御命令が挿入された文書をＰＣＬＸＬプリンタドライバを使用して印刷する際、描画命令よりも先に制御命令を実行することができる。これにより、ドライバパススルーで命令されたＰＣＬ５コマンドの後にＰＣＬＸＬコマンドが実行されるため、ＰＣＬ５の制御命令が挿入された文書をＰＣＬＸＬプリンタドライバから印刷した場合でも、制御命令を有効に機能させることができる。
【００４１】
また、将来、ワードやＯＳのバージョンアップ等で、パススルーデータが送られる順番が変わっても、それに対応できる画像形成装置を提供することができる。
【００４２】
［実施形態２］
図８は、本発明の実施形態２に係る画像形成装置１０１が実行する図５のＳ５０３のパススルーデータの入れ替え処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ１２３がＲＡＭ１２５に展開したプログラムを実行することにより達成される。また実施形態２に係る印刷システムの構成、及び画像形成装置１０１の構成等は前述の実施形態１と同じであるため、その説明を省略する。
【００４３】
Ｓ８０１でＣＰＵ１２３はジョブ解析部１３５として機能し、印刷データを一時保存するメモリをＲＡＭ１２５に確保し、メモリサイズをＲＡＭ１２５に設定する。次にＳ８０２に進みＣＰＵ１２３はジョブ解析部１３５として機能し、受信した印刷ジョブデータを取得する。次にＳ８０３に進みＣＰＵ１２３はジョブ解析部１３５として機能し、受信データが取得できたかを判定し、取得できなければ、この処理を終了して呼び出し元に戻り、取得できればＳ８０４に進む。Ｓ８０４でＣＰＵ１２３はジョブ解析部１３５として機能し、取得したデータがＢｅｇｉｎＰａｇｅ命令か否かを判定する。そうであればＳ８０５へ進み、ＢｅｇｉｎＰａｇｅ命令でなければＳ８０２へ進む。
【００４４】
Ｓ８０５でＣＰＵ１２３はジョブ解析部１３５として機能し、ＢｅｇｉｎＰａｇｅ命令の位置をＲＡＭ１２５に記憶する。これは、後にパススルー命令を挿入する際の挿入位置として利用するためである。そしてＳ８０６に進みＣＰＵ１２３はジョブ解析部１３５として機能し、受信した印刷ジョブデータを取得する。次にＳ８０７に進みＣＰＵ１２３はジョブ解析部１３５として機能し、受信データが取得できたかを判定し、取得できなければ、この処理を終了して呼び出し元に戻り、取得できればＳ８０８に進む。
【００４５】
Ｓ８０８でＣＰＵ１２３はジョブ解析部１３５として機能し、取得したデータがパススルー命令か否かを判定する。そうであればＳ８１３に進み、パススルー命令でないときはＳ８０９に進む。Ｓ８０９でＣＰＵ１２３はジョブ解析部１３５として機能し、Ｓ８０１でＲＡＭ１２５に確保したメモリに空きがあるか否かを判定し、空きがあればＳ８１０に進んでデータをＲＡＭ１２５に保存し、空きがなければＳ８１６へ進む。そしてＳ８１１に進みでＣＰＵ１２３はジョブ解析部１３５として機能し、取得したデータがＢｅｇｉｎＰａｇｅ命令か否かを判定する。ＢｅｇｉｎＰａｇｅ命令であればＳ８１１２に進み、そうでないときはＳ８０６に進む。Ｓ８１２でＣＰＵ１２３はジョブ解析部１３５として機能し、ＲＡＭ１２５に保存したデータを破棄してＳ８０５に戻る。
【００４６】
したがって、Ｓ８０９で、所定量以上のデータが保存されたときはＳ８１６でその保存されているデータを破棄してＳ８０２に進むため、所定量よりも多いデータが保存されたときはパススルー命令の移動、保存したデータの移動は実行されない。
【００４７】
一方、Ｓ８０８の判定で、パススルー命令のときはＳ８１３に進みＣＰＵ１２３はジョブ解析部１３５として機能し、パススルーデータ内にＰＣＬ５の両面指定命令或いは給紙段指定命令があるか否かを判定する。ＰＣＬ５の両面指定命令或いは給紙段指定命令があるときはＳ８１４へ進み、そうでないときはＳ８１６へ進む。Ｓ８１４でＣＰＵ１２３はジョブ解析部１３５として機能し、パススルーデータにＰＣＬ５の描画命令があるか否かを判定し、描画命令があるときはＳ８１６へ進み、保存しているデータを破棄する。一方、そうでないときはＳ８１５へ進む。
【００４８】
これにより、パススルーデータにＰＣＬ５の描画命令を含むときは、パススルーデータを移動すると描画結果が異なるため、パススルーデータに移動を行わない。
【００４９】
Ｓ８１５でＣＰＵ１２３はジョブ解析部１３５として機能し、Ｓ８０５でＲＡＭ１２５に記憶したＢｅｇｉｎＰａｇｅ命令の位置に、その挿入位置に、そのパススルーデータを挿入する。またＳ８１０でＲＡＭ１２５に保存したデータを、その挿入したパススルーデータの直後に移動する。そしてＳ８１６に進みＣＰＵ１２３はジョブ解析部１３５として機能し、ＲＡＭ１２５に保存したデータを破棄してＳ８０２に戻る。こうして、ここでは１ページのデータに含まれる最初のパススルーデータだけが移動される。
【００５０】
以上説明したように実施形態２によれば、限られたメモリ容量であっても、パススルーデータの移動が可能なシステムを提供することが出来る。
【００５１】
また実施形態１，２では、パススルーデータを移動してから、ＰＣＬＸＬデータの印刷処理を行う例で説明したが、ページごとにページの先頭部分だけを見て、パススルーデータの移動を行うか否か判定するようにしてもよい。
【００５２】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００５３】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００５４】
１０１〜１０３…画像形成装置、１１０…コントローラ、１２３…ＣＰＵ、１２５…ＲＡＭ、１０４…ホストコンピュータ、１３４…印刷制御部、１３５…ジョブ解析部
【図１】
2020027476.tif 000003
【図２】
2020027476.tif 000004
【図３】
2020027476.tif 000005
【図４】
2020027476.tif 000006
【図５】
2020027476.tif 000007
【図６】
2020027476.tif 000008
【図７】
2020027476.tif 000009
【図８】
2020027476.tif 000010