(57)【要約】【課題】本体装置では処理できないフォントを含む印刷データであるか否かを判定するためには、印刷データを全て解析する必要がある。そのため、外部装置に印刷データを転送して処理を代行する構成において、外部装置への不要な転送を避けるために、処理できないフォントの有無を判定する場合、本体装置の処理負荷が増大してしまう。一方、フォントの有無を判定せずに転送すると転送トラフィックが増大してしまう。【解決手段】本体装置と、前記本体装置の代替装置として機能し、本体装置から転送された印刷データを解析してページ画像を生成する外部装置とから構成される画像出力システムにおいて、本体装置は、フォントを管理するリソース管理手段と、前記フォントのライセンスを管理するライセンス管理部と、フォントが本体装置に登録されておらず、かつライセンスが有効である場合、所定の判定基準に基づいて転送するか否かを判定するジョブ制御部を備える。【選択図】図２
2014119998.tif 000002
【特許請求の範囲】
【請求項１】
外部リソースを提供する外部装置に対して印刷データの処理を振り分けることが可能な出力処理システムであって、
設定された振り分けレベルを記憶する記憶手段と、
前記振り分けレベルごとに、当該振り分けレベルに対応した振り分け条件を印刷データが満たしているか否かを判定する判定手段と、
前記振り分け条件を満たしている印刷データを前記外部装置に転送し、前記外部装置により前記外部リソースを用いた処理を実行させる転送手段と
を有することを特徴とする出力処理システム。
【請求項２】
前記外部リソースは、該外部リソースの有効化のために入力されたライセンスキーが正しく、かつ前記外部リソースを持つ外部装置が接続可能である場合に有効化され、
前記判定手段は、前記外部リソースが有効化されている場合に前記振り分け条件の判定を行うことを特徴とする請求項１に記載の出力処理システム。
【請求項３】
前記振り分けレベルは、前記印刷データの内容を調べる必要性の有無と、該必要性がある場合には、前記印刷データの内容の一部を調べる必要性と、前記印刷データの内容の全部を調べる必要性とに応じて決められることを特徴とする請求項１または２に記載の出力処理システム。
【請求項４】
前記振り分けレベルには、
無条件であることを対応する振り分け条件とする第１のレベルと、
前記印刷データが、所定のページ記述言語で記述されており、かつ、所定のジョブ制御言語ではないことを対応する振り分け条件とする第２のレベルと、
前記印刷データが前記第２のレベルの振り分け条件を満たしており且つ前記印刷データが前記外部リソースを使用することを示す識別子を含むこと、または、前記印刷データが前記第２のレベルの振り分け条件を満たしており且つ前記印刷データの先頭から所定範囲内に前記外部リソースを用いる命令を含むことを、対応する振り分け条件とする第３のレベルと、
前記印刷データが前記第２のレベルの振り分け条件を満たし、かつ、前記出力処理システムのユーザインタフェースの表示言語が所定言語であることを対応する振り分け条件とする第４のレベルと、
前記印刷データが前記第２のレベルの振り分け条件を満たし、かつ、印刷データで前記外部リソースが少なくとも一度指定されていた実績があることを対応する振り分け条件とする第５のレベルと、
前記印刷データが前記第２のレベルの振り分け条件を満たし、かつ、前記印刷データ中でリソースが実際に指定されていることを対応する振り分け条件とする第６のレベルと
の少なくともいずれかを含むことを特徴とする請求項１乃至３のいずれか一項に記載の出力処理システム。
【請求項５】
前記外部リソースは、フォントデータであることを特徴とする請求項１乃至４のいずれか一項に記載の出力処理システム。
【請求項６】
前記所定のページ記述言語には、フォントデータを指定しないページ記述言語を含まないことを特徴とする請求項５に記載の出力処理システム。
【請求項７】
前記外部装置は、外部フォントを用いて、前記印刷データに対応したページ画像を生成することを特徴とする請求項１乃至６のいずれか一項に記載の出力処理システム。
【請求項８】
請求項１乃至７のいずれか一項に記載の出力処理システムとしてコンピュータを動作させるためのプログラム。
【請求項９】
外部リソースを提供する外部装置に対して印刷データの処理を振り分けることが可能な出力処理システムにより行われる出力処理方法であって、
設定された振り分けレベルを記憶手段に記憶する記憶工程と、
判定手段が、前記振り分けレベルごとに、当該振り分けレベルに対応した振り分け条件を印刷データが満たしているか否かを判定する判定工程と、
転送手段が、前記振り分け条件を満たしている印刷データを前記外部装置に転送し、前記外部装置により前記外部リソースを用いた処理を実行させる転送工程と
を有することを特徴とする出力処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばホストコンピュータ等の外部装置から入力された印刷データに基づいて印刷媒体上にページ画像を形成し、出力する出力処理装置および出力処理システムに関する。特に、フォントデータなどの印刷処理に必要なリソースを用いて印刷データを処理する出力処理システム及び出力処理方法に関する。
【背景技術】
【０００２】
ページ記述言語（以下、ＰＤＬと呼ぶ。）による印刷データを受信し印刷を行う画像出力装置においては、ＰＤＬにて文字の印字が指定された場合、前記画像出力装置に予め保持されたフォントデータを用いて対応する画像を生成する。
【０００３】
ここで、近年は、フォントデータに対して様々な書体のサポートや多言語対応の要望が高まっており、必要とされるフォントデータは益々増えている。特に、日本や中国、韓国等の漢字文化圏においては、文字集合（文字セット）として用意すべき文字数が多く、例えば、中国繁体字用の文字セット：Ｂｉｇ５では、およそ1万３０００種類もの文字コードを収録している。さらに、Ｕｎｉｃｏｄｅ文字セットのようにＣＪＫ統合漢字や漢字文化圏以外の言語もサポートする場合は、さらに大量の文字コードを用意する必要がある。
【０００４】
このようなフォントデータの大容量化に伴って、印刷データで指定されたフォントを、画像出力装置、特に簡素な構成の画像出力装置では搭載していないこともあり得る。そこで印刷ジョブの処理に必要なフォントデータを保持していない画像出力装置は、通信ネットワークに接続された他の装置（以下、外部装置と呼ぶ）にフォントデータの送付要求を行う方法が提案されている（例えば特許文献１等参照）。
【０００５】
一方、画像形成装置（以下、本体装置と記す）に入力された印刷データを必要に応じて他の画像形成装置（以下、外部装置）へ転送して分散印刷を行う技術が提案されている。この技術では、外部装置が印刷データにて指示されたフォントデータを備えており、かつフォントデータの使用ライセンスが有効であれば、本体装置にフォントデータを保持していない場合でも意図した通りの出力を得ることができる。しかし、外部装置の方が必要なフォントデータを有していないこともあり得るため、外部装置で使用不可能なフォントが印刷データ中に指定されている場合は、当該フォントが指定されたページの印刷データを本体装置で処理する技術が提案されている（例えば特許文献２等参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−１３７４５５号公報
【特許文献２】特開２０１１−０１６３４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に示した従来技術では、本体装置が保持していないフォントデータをネットワークに接続された外部装置から受信する構成としたため、たとえ印字文字数が僅かであってもフォントデータの送受信に伴う処理負荷が大きくなってしまう場合があった。特に漢字等の多バイトフォントデータは１書体当りのデータサイズが数ＭＢ〜数１０ＭＢにもなるため、利用の都度フォントデータをダウンロードする構成ではネットワークトラフィックの増大を招き、処理効率が悪いという課題があった。
【０００８】
また、特許文献１では、フォントデータの複製に伴ってフォントデータを保持する装置の台数がライセンス数を超える場合、外部装置のフォントデータを削除した上で当該フォントを本体装置に記憶する。このため、フォントデータの使用状況によっては待ち時間が増大するという課題もあった。
【０００９】
また、本体装置と外部装置とがＬＡＮ等で接続されている場合であればフォントデータのライセンス数の管理も可能だが、外部装置をインターネット上のクラウド環境等に配置し複数の装置の処理を代行するような構成では、管理が煩雑になるという課題もある。
【００１０】
また、特許文献２に示した従来技術では、外部装置および本体装置のいずれでも使用できないフォントが指定されている印刷データは本体装置で処理するため、指定されたフォントの利用はできず、所望の印刷結果を得たいという課題に対する解決にはなっていない。
【００１１】
本発明は上記従来例に鑑みてなされたもので、本体装置から外部装置への負荷分散を行う出力処理システムにおいて、本体装置及び外部装置で利用可能なリソースに応じた適切な負荷の振り分けを実現する出力処理システム及び出力処理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明は以下の構成を備える。すなわち、外部リソースを提供する外部装置に対して印刷データの処理を振り分けることが可能な出力処理システムであって、
設定された振り分けレベルを記憶する記憶手段と、
前記振り分けレベルごとに、当該振り分けレベルに対応した振り分け条件を印刷データが満たしているか否かを判定する判定手段と、
前記振り分け条件を満たしている印刷データを前記外部装置に転送し、前記外部装置により前記外部リソースを用いた処理を実行させる転送手段とを有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、本体装置及び外部装置で利用可能なリソースに応じた適切な負荷の振り分けを実現することができる。
【図面の簡単な説明】
【００１４】
【図１】画像出力装置および外部の画像処理装置の接続形態例を示す図である。
【図２】画像出力装置および外部の画像処理装置の主要構成部およびそれぞれの制御プログラムのモジュール構成を示す図である。
【図３】画像出力装置におけるライセンス有効化処理の手順を示すフローチャートである。
【図４】画像出力装置における起動時の処理手順を示すフローチャートである。
【図５】実施形態１における印刷データの構成例を示す図である。
【図６】印刷データの振り分け制御の手順を示すフローチャートである（振り分けレベル＝１〜４まで）。
【図７】印刷データの振り分け制御の手順を示すフローチャートである（振り分けレベル＝５以上）
【図８】外部リソース使用識別子の例を示す図である。
【図９】実施形態２における、印刷データの構成例を示す図である。
【発明を実施するための形態】
【００１５】
［実施形態１］
以下、本発明を実施するための最良の形態について図面を用いて説明する。  図１は、本実施形態における画像出力システムを構成する各装置の接続例を示す図であって、コンピュータ（ＰＣ）１０１、画像出力装置（本体装置）１０２、外部画像処理装置（外部装置）１０４が、ネットワーク１０５によって接続されている例を示している。図１において、本体装置１０２は操作部１０３を備えたデジタル複合機の例を示しており、ＰＣ１０１上で動作するアプリケーションソフトの指示に基づいて作成された印刷データを受信し、対応するページ画像を既知の電子写真技術によって紙に印刷する。なお本実施形態では、印刷データは、ヒューレット・パッカード社が開発したＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｍｍａｎｄ  Ｌａｎｇｕａｇｅ）等のページ記述言語（ＰＤＬ）によって記述されている。なお、操作部１０３は、メニュー項目の設定やリセット等の各種操作を行うための操作パネル、本体装置１０２の各種ステータスや構成情報を表示するＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）から構成されている。また画像出力システムは、文書等を画像化して出力するためのシステムであり、出力処理システムと呼ぶこともできる。
【００１６】
外部装置１０４は、本体装置１０２から転送された印刷データを受信して印刷処理の一部を代行するＰＤＬアクセラレータであって、印刷データを解析して対応するページ画像を生成した後、当該ページ画像を圧縮画像データとして本体装置１０２へ返送する。外部装置１０４は、画像出力装置１０２から要求されたサービス（本例の場合には印刷処理の一部）を提供するサーバということもできる。
【００１７】
なお、本実施形態では、外部装置１０４は本体装置１０２と同じＬＡＮに接続されている構成としたが、別のネットワーク、例えばインターネット上に配置されている構成でも構わないし、複数の画像出力装置からの転送処理を受け付けるよう構成することもできる。また、簡単のため印刷データを生成するＰＣ１０１は単独のコンピュータとして説明したが、データベースを備えたサーバ・クライアントシステムとして構成されていても構わない。
【００１８】
＜画像出力装置１０２の主要構成＞
図２は、本実施形態における画像出力装置１０２および外部装置１０４の主要構成部の一例、およびネットワーク１０５によって接続された形態を示す図である。
【００１９】
また、図２のＲＯＭ２０３内のブロックは、ＲＯＭ２０３に格納された制御プログラムのモジュール構成を示す図であり、以下、図２を参照して画像処理装置１０２の主要構成について説明する。
【００２０】
コントローラ部２０１は画像出力装置１０２のコントローラ部を示しており、ＣＰＵ２０２、ＲＡＭ２０４、フラッシュＲＯＭ２０３等を備え、ＲＯＭ２０３内の制御プログラムがＣＰＵ２０２にロードされ実行されることで機能する制御部として構成されている。すなわち、ＣＰＵ２０２が、フラッシュＲＯＭ２０３内に格納した各制御部１００１〜１００６に相当する制御プログラムをロードし実行することによって、以下に説明するフローチャートの各機能すなわち各制御部１００１〜１００６が実現される。以下、各制御部１００１〜１００６の機能について説明する。
【００２１】
ジョブ制御部１００１は、後述する所定の条件、あるいはＰＣ１０１より入力されたジョブ形式の印刷データを解析した結果に基づいて、本体装置１０２にて処理可能な印刷データであるか否かを判定する。そして、その判定の結果、本体装置１０２にて処理できない印刷データであると判定された場合は、受信した印刷データを外部装置１０４にて処理するために、ネットワーク管理部２０８を制御して前記印刷データの送出処理を行う。ここで、ジョブ制御部１００１は、前記印刷データを解析する際は、ＰＤＬデータ解析部１００２を呼び出して解析処理を依頼する。
【００２２】
一方、ジョブ制御部１００１が本体装置にて印刷データを処理可能であると判定した場合は、ＰＤＬデータ解析部１００２を呼び出す。ＰＤＬデータ解析部１００２は、ＰＤＬにて記述された印刷データを解析し、中間形式である描画オブジェクト（ディスプレイリスト）を生成する。そして、ページ画像生成部（レンダラ）１００３は、１ページ分の描画オブジェクトを展開してビットマップ画像、すなわちページ画像を生成する。
【００２３】
ここで、ＰＤＬの解析からページ画像の生成までの一連の描画処理においては、印刷データ、描画オブジェクト、およびページ画像は、ＲＡＭ２０４上に予め割り当てられた格納領域に一時的に格納される。外部より受信した印刷データは受信バッファ２０７に、描画オブジェクトはディスプレイメモリ２０５に、そしてページ画像は所定の圧縮処理を施された後にスプールメモリ２０６にそれぞれ格納される。また、ＲＡＭ２０４には、前記制御プログラムをロードするプログラム領域の他、後述の処理を行うための各種データやステータスを保持・管理するためのワークメモリとしても機能する。
【００２４】
そして、エンジン制御部１００６は、ページ画像を伸長してビデオ信号に変換し、所定のインターフェースによってプリンタエンジン２１２へ出力すると共に、プリンタエンジン２１２に対して紙搬送等の制御に関する指示を行う。プリンタエンジン２１２は、エンジン制御部１００６の指示に従って、既知の電子写真プロセスによってビデオ信号を反映した潜像を生成し、トナーを記憶媒体である紙面上に定着させることで印刷を行う。
【００２５】
続いてリソース管理部１００４は、描画オブジェクトを生成する際に参照される、フォントデータ等のＰＤＬリソースを本体装置２０１に登録あるいは削除する制御を行うと共に、ＰＤＬリソースの搭載状況の管理を行う。なお、本実施形態においては、ハードディスク（ＨＤＤ）等の不揮発性記憶装置を外部記憶装置Ｉ／Ｏ２１０に接続できる構成とし、リソース管理部１００４は、ＨＤＤが装着されている場合に限りＨＤＤにＰＤＬリソースを登録する。また、ＰＤＬデータ解析部１００２は、印刷データを解析しフォントを指定する描画命令を含んでいると判定すると、リソース管理部１００４に対して指定されたフォントの搭載状況を問い合わせ、指定されたフォントが使用可能であるか否かを判定する。
【００２６】
ライセンス管理部１００５は、有償のＰＤＬリソースなどのオプション機能（有償オプション機能と呼ぶ）に関する使用許諾の管理、および有償オプション機能の有効性の判定を行う。ここで、ライセンス管理部１００５は、操作部Ｉ／Ｆ２０９に接続された操作部１０３より入力されたライセンスキーが有効であるか否かを既知の暗号化技術等を用いて判定するものとする。リソース管理部１００４が印刷データに含まれるフォントの使用可否を判定する際、有償フォントについては、本体装置に前記フォントが登録されている場合であっても、ライセンス管理部１００５にてライセンス無効と判定された場合は使用不可と判定される。
【００２７】
なお、ＲＯＭ２０３内に格納される制御部としては、不図示のＵＩ制御部に加え、メモリ管理やタスク制御を行うオペレーティングシステム（ＯＳ）等も含まれている。
なお、本実施形態に適用するプリンタエンジン２１２としては、電子写真技術による複合機の他、インクジェットプリンタ等の各種印刷方式を適用可能であり、さらにＳＦＰ等の単一機能を備えた機器構成にも適用可能である。
【００２８】
＜外部装置１０４の主要構成＞
続いて、外部装置１０４のコントローラ部２１３の構成について以下に説明する。図２のＲＯＭ２１５内のブロックは、ＲＯＭ２１５に格納された制御プログラムのモジュール構成を示す図であり、画像形成装置と同様に、ＣＰＵによりこれらのプログラムモジュールを実行することで、機能ブロック１００７〜１０１０が実現される。  本実施形態では、外部装置１０４は本体装置１０２のＰＤＬ解析処理を代替してページ画像を生成するＰＤＬアクセラレータであるため、本体装置１０２と同等のページ画像を出力として得るため本体装置１０２と同様の構成の制御部を備える。すなわち、ＰＤＬデータ解析部１００８、ページ画像生成部１００９、ディスプレイメモリ２１７、スプールメモリ２１８、受信バッファ２１９、ネットワーク管理部２２２、ＣＰＵ２１４、外部記憶装置Ｉ／Ｏ２２０は、それぞれ本体装置１０２の構成と同様である。
【００２９】
一方、本体装置１０２と異なる構成としては、ＨＤＤ２２１を最初から備えており、ＰＤＬ解析処理に必要な外部リソース、例えばフォントデータ（ＰＤＬリソース）を予め保持している点と、エンジン制御部１００６、プリンタエンジン２１２を持たない点が挙げられる。従って、リソース管理部１０１０では、常にＰＤＬリソースが存在すると判定される。
【００３０】
また、本実施形態の構成では、ＰＤＬリソースのライセンス管理は本体装置１０２側にて行うため、外部装置１０４にはライセンス管理部を備えていない。
【００３１】
さらに、ＰＤＬリソースの有無による差異を除き、外部装置１０４にて生成されるページ画像は本体装置１０２で生成される結果と同一であることが望ましいため、例えばカラーマッチング方法等の印刷環境情報は両装置間で同一にする必要がある。そのため、本実施形態においては、本体装置１０２のジョブ制御部１００１が外部装置１０４に対して印刷データを転送する際、操作部１０３にて設定された印刷メニュー値を印刷環境情報として、転送する印刷データに付加する。そして、外部装置１０４のＰＤＬデータ解析部１００８は、前記印刷データに付加された印刷環境情報を参照して印刷データの解析処理を行えば良いため、外部装置１０４は操作部も備えていない。
【００３２】
最後に、ジョブ制御部１００７は、本体装置１０２とは異なり、印刷データの転送要否の判定を行うことなく受信制御を行う。さらに、ＰＤＬ解析の結果生成されスプールメモリ２１８に格納された圧縮済みページ画像の出力制御も行い、ネットワーク管理部２２２を経由して本体装置１０２に対して前記ページ画像を出力する。
【００３３】
＜有償ＰＤＬリソースのライセンスキーの有効性の判定手順＞
続いて、本実施形態におけるライセンス管理部１００５において、有償ＰＤＬリソースを有効化するために操作部１０３から入力されたライセンスキーの有効性を判定する手順について、フォントデータを例として図３のフローチャートを用いて以下に説明する。なお、以下のフローチャートに示す処理手順は、前述した図２の各制御部のプログラムがＣＰＵ２０２にロードされ、実行されることによって実行される。また、下記の処理手順が未実行の場合、ライセンス情報は無効化された状態で初期設定されているものとする。また、有効化処理の対象となるリソースを対象リソースあるいは対象ＰＤＬリソースと呼ぶ。
【００３４】
まず、ライセンス管理部１００５は、ユーザオペレーションによって入力されたライセンスキー（例えば数値や文字列などのコード）を操作部１０３から受け付け（Ｓ３０１）、所定の判定方法によって、入力されたライセンスキーが適切な値であるか否かを判定する（Ｓ３０２）。ライセンスキーが適切な値でない場合、ライセンス管理部１００５は操作部１０３に備えられた操作パネル上にライセンスキーが正しくない旨のエラーメッセージを表示し（Ｓ３０８）、対象ＰＤＬリソースのライセンス情報を無効に設定する。ここで、ＰＤＬリソースのライセンス情報は、不図示のＥＥＰＲＯＭ等の不揮発性メモリ内に格納され、一度有効化された後は電源再投入後も有効化された状態（有効状態）が維持される。
【００３５】
一方、Ｓ３０２の判定において入力されたライセンスキーが適切な値であると判定された場合はＳ３０３に進み、ライセンス管理部１００５はリソース管理部１００４に対象ＰＤＬリソースであるフォントデータの登録情報を問い合わせる。リソース管理部１００４は外部記憶装置Ｉ／Ｆ２１０にＨＤＤ（図２では未接続）が接続されており、かつＨＤＤに問い合わされたフォントデータが格納されているか否かを調べ、フォントデータの格納状況をライセンス管理部１００５へ通知する。
【００３６】
ライセンス管理部１００５は、前記通知内容に応じてライセンスの有効化処理を切り替える。まず、受信した通知内容がフォントデータを格納していることを示している場合は、ライセンス管理部１００５は、ライセンス情報を有効化し（Ｓ３１０）、処理を終える。有効化とは、たとえば当該リソースが有効であることを示すインジケータをセットするなどして実現できる。
【００３７】
一方、通知内容がフォントデータを格納していないことを示している場合は、ライセンス管理部１００５は、Ｓ３０４以降のステップにおいて、外部装置１０４内にフォントデータが格納されているか否かによって、ライセンス情報を有効にして良いか否かを判定する。まず、外部装置１０４がネットワーク経由で接続されているかを確認し（Ｓ３０４）、接続されている場合は、外部装置１０４にフォントデータの格納状況を問い合わせる（Ｓ３０５）。そして、外部装置からの問い合わせ結果を元に、外部装置１０４にフォントデータが格納されているか否かを判定し（Ｓ３０６）、格納されている場合はライセンス情報を有効化して処理を終える（Ｓ３０７）。
【００３８】
なお、Ｓ３０４において外部装置１０４との接続が確認できなかった場合、あるいはＳ３０６において外部装置１０４にフォントデータが格納されていない場合は、異常系のエラー処理としてライセンス情報を無効化して処理を終える（Ｓ３１１）。
【００３９】
上記に示した処理手順によって、本体装置１０２にＰＤＬリソースが格納されていなくとも、外部装置１０４内に対応するＰＤＬリソースが格納されていることが確認できた場合は、本体装置１０２におけるライセンス情報を有効化する。
【００４０】
＜初期化処理＞
図４は、本体装置１０２の電源投入時の初期化処理において、ジョブ制御部１００１が外部装置１０４に対して印刷データを転送可能な否かを決定する手順、並びにＰＤＬデータ解析部１００２が、有償で追加的に提供されるフォントデータを有効化する手順について示したフローチャートである。なおこのフォントデータを追加フォントや追加フォントデータ、あるいは外部フォントデータなどと呼び、また以下の説明では単に前記フォントデータとも呼ぶ。
【００４１】
ここでＰＤＬデータ解析部１００２は、リソース管理部１００４およびライセンス管理部１００５に対してそれぞれ問い合わせを行って得られた判定結果に基づいて、フォントデータの有無並びにライセンス情報の状況を判定する。また、外部装置１０４に対して印刷データを転送可能な否かの情報は、ＲＡＭ２０４上のワークメモリに領域を割り当てられたフラグｕｓｅＡＣＣｆｌａｇ（転送可能フラグと呼ぶ）として保持され、印刷データが入力された際にジョブ制御部１００１によって参照される。ここで、前記フラグの値は、１がＯＮ（外部装置へ転送可能）を、０がＯＦＦ（転送不可）であることを示すものとする。なお、外部装置１０４に対して印刷データを転送するか否かを制御する処理を、以下では便宜上「印刷データの振り分け処理」とも表現する。
【００４２】
まずジョブ制御部１００１は、最初にｕｓｅＡＣＣｆｌａｇをＯＦＦに初期化する（Ｓ４０１）。続いて、ＰＤＬデータ解析部１００２は、ライセンス管理部１００５に対して有償フォントデータのライセンス情報を問い合わせる（Ｓ４０２）。ライセンスが有効であればＳ４０３に、無効であればＳ４０７に分岐する。
【００４３】
ライセンス情報が無効である場合、リソース管理部１００４は、前記フォントデータがＨＤＤ（図２では不図示）内に格納されているかを判定する（Ｓ４０７）。そして、フォントデータが存在する場合は、ライセンス情報を有効化できるので有効化を促す旨のメッセージを操作パネル１０３上に表示する（Ｓ４０８）。
【００４４】
一方フォントデータがＨＤＤ内に格納されていない場合、ＰＤＬデータ解析部１００２は、フォントデータを選択できないよう、フォントテーブルに前記フォントデータの情報を登録せずにフォントテーブルの初期化を行う（Ｓ４０６）。フォントテーブルは、ＰＤＬデータ解析部１００２が印刷データの指示に従って選択すべきフォントを検索するために参照するテーブルであって、フラッシュＲＯＭ２０３またはＨＤＤ（図２では不図示）内の全フォントデータの情報がエントリとして登録される。なお、転送可能フラグｕｓｅＡＣＣｆｌａｇはＯＦＦのままであるため、印刷データ受信時は振り分け処理が行われない。
【００４５】
Ｓ４１１以降のステップは、振り分け処理を行う場合に必要な情報を初期化する処理であるが、ライセンス無効時は印刷データ処理時に参照しないため、説明は後述する。
【００４６】
一方、Ｓ４０２でライセンス情報が有効であると判定した場合、リソース管理部１００４はＳ４０７と同様に前記フォントデータがＨＤＤ内に格納されているか否かを確認する（Ｓ４０３）。そして、前記フォントデータが格納されている場合、ＰＤＬデータ解析部１００２は前記フォントデータも含む全てのフォントデータをフォントテーブルに登録することで、前記フォントを選択可能な状態で初期化を行う（Ｓ４１０）。なお、この場合もｕｓｅＡＣＣｆｌａｇはＯＦＦのままであるため、印刷データ受信時は振り分け処理が行われない。
【００４７】
一方、Ｓ４０３にて前記フォントデータを格納していないと判定された場合、ジョブ制御部１００１は、外部装置１０４との接続状態を確認し（Ｓ４０４）、接続されていることが確認できた場合はｕｓｅＡＣＣｆｌａｇをＯＮに設定する（Ｓ４０５）。なお、本実施形態では、Ｓ４０４にて外部装置１０４との接続が確認できない場合、ジョブ制御部１００１はＳ４０９にてエラーが発生している旨を示すメッセージを操作部１０３に表示する（Ｓ４０９）。この時、ライセンス情報が有効になるケースは、図３に示したように、本体装置１０２が前記フォントデータを保持しているか、または前記フォントデータを格納した外部装置１０４が接続されている場合である。従って、Ｓ４０４で外部装置１０４と接続できない場合を、本実施形態では例外処理として扱う。
【００４８】
続くＳ４０６では、本体装置１０２は前記フォントデータを保持していないため、外部装置１０４との接続可否に関わらず、ライセンス管理が必要な前記フォントを除いたフォントのみをフォントテーブルに登録する。
【００４９】
最後に、ジョブ制御部１００１は、振り分け処理を行う際に参照する２つの情報（変数）を初期化する。まず、Ｓ４１１にてセットする"振り分けレベル"は、印刷ジョブの振り分け処理を行う際、ジョブ制御部１００１が外部装置１０４へ印刷ジョブを転送するか否かを判定するための条件が予め複数のレベルとして設定されている変数である。本実施形態では、振り分けレベルは操作部１０３の印刷メニュー値として用意されており、ユーザが前記メニューを操作することで複数のレベルから１つを選択することができる。ジョブ制御部１００１は、選択された印刷メニュー値の振り分けレベルを取得して、ＲＡＭ２０４上のワーク領域に割り当てられた変数にセットしておく。なお、振り分けレベルの詳細については、図６、図７を用いて後述する。
【００５０】
そして、ジョブ制御部１００１は、同じくＲＡＭ２０４上のワーク領域に割り当てられた変数"振り分け履歴フラグ"を０（ｆａｌｓｅ）に初期化して、起動時の処理化処理を終える。振り分け履歴フラグは、後述する振り分け処理において、ＰＤＬデータ解析部１００２が入力された印刷データを全て解析した結果に基づいて、外部装置１０４へ印刷ジョブを転送した場合に１（ｔｒｕｅ）にセットされる変数である。
【００５１】
ジョブ制御部１００１は、上記に説明した手順によって設定された転送可能フラグ（ｕｓｅＡＣＣｆｌａｇ）、振り分けレベル、および振り分け履歴フラグを参照して、印刷ジョブの振り分け制御を行う。
【００５２】
＜印刷データの構成例＞
図５は、本実施形態における印刷データの構成例を示した図であって、図５（ａ）はジョブ制御言語およびＰＤＬデータから構成される全体構成を示し、図５（ｂ）は前記ＰＤＬデータ内の描画命令として、フォント選択に関連する描画命令の例を示した図である。
【００５３】
図５（ａ）において、ジョブ制御言語はジョブ制御ヘッダ部５０１とジョブ制御フッタ部５０３とから構成され、ＰＤＬデータ５０２を取り囲むように配置され、１つの印刷ジョブを構成している。
【００５４】
なお本実施形態では、ジョブ制御言語としてヒューレット・パッカード社が開発したＰＪＬ（Ｐｒｉｎｔｅｒ  Ｊｏｂ  Ｌａｎｇｕａｇｅ）を、ＰＤＬとしてＰＣＬ（Ｐｒｉｎｔｅｒ  Ｃｏｍｍａｎｄ  Ｌａｎｇｕａｇｅ）の例を示したが、本発明はこれに限らない。また、ここではＰＪＬによって１つの印刷ジョブを構成する例を示したが、ＰＪＬを含まずＰＤＬデータのみで印刷データを構成しても構わない。
【００５５】
ここで、図５中の"｛ｅｃ｝"は、エスケープシーケンス（１６進数で０ｘ１Ｂ）を表しており、後続する所定の文字列との組み合わせによりＰＪＬモードへの移行を指示している。具体的には、ＰＤＬデータ解析部１００２は、印刷データ中に"｛ｅｃ｝％−１２３４５Ｘ"を見つけると、処理中のＰＤＬデータが存在する場合はＰＤＬ解析処理を終了し、ＰＪＬモードに移行する。
【００５６】
また、"＠ＰＪＬ"は後続の文字列との組み合わせによって、ＰＤＬを処理する際の環境変数の設定や、ＰＤＬ種別の指定といった各種ジョブ制御のための指示を表しており、改行コード"｛ｌｆ｝"（１６進数で０ｘ０Ａ）によって区切られる。例えば、図中の"＠ＰＪＬ  ＪＯＢ｛ｌｆ｝"はＰＪＬジョブの開始を宣言しており、"＠ＰＪＬ  ＥＮＴＥＲ  ＬＡＮＧＵＡＧＥ＝ＰＣＬ｛ｌｆ｝"は、ＰＤＬ種別としてＰＣＬを指定している。ＰＤＬデータ解析部１００２は、ＰＤＬ種別の指定を受けると、予め１つ以上備えられたＰＤＬ解析部（パーサ）の中からＰＣＬが選択される。
【００５７】
最後に、ジョブ制御フッタ部に含まれる"＠ＰＪＬ  ＥＯＪ｛ｌｆ｝"によって、ＰＪＬジョブの終了を宣言している。
【００５８】
ＰＤＬデータ５０２では、ＰＣＬコマンドによって用紙サイズ等のページ設定のほか、後述するフォント選択、文字として印字されるテキストコード、改ページ（フォームフィード命令）などが含まれている例を示している。図５（ｂ）は、フォント選択の具体例を示した図であって、全てのＰＣＬコマンド（描画命令）はエスケープシーケンスによって表現されている。例えば、"｛ｅｃ｝（１８Ｎ"はシンボルセットとしてＵｎｉｃｏｄｅを、"｛ｅｃ｝（ｓ１７００６Ｔ"はタイプフェイスとして中国語・繁体字フォントを指定している。その他、図中では、ピッチ（固定ピッチ／プロポーショナルピッチ）、文字高さ、スタイル（正体／イタリック）や、ストロークウェイトの指定が成されており、これらの描画命令によってフォント種別が特定される。
【００５９】
ＰＤＬデータ解析部１００２は、上述したフォント選択に関する描画命令を順次解析し、所定の優先順位に従ってフォント種別を確定するため、描画命令からどのフォントデータが指定されているかを判定するためには、全ての描画命令を解析しなければならない。
【００６０】
＜振り分け制御手順＞
以下、図６および図７のフローチャート並びに図８を用いて、図４のＳ４１１で取得した"振り分けレベル"に応じて、ジョブ制御部１００１が受信した印刷データを外部装置１０４へ振り分けるか否かを決定する手順について説明する。
【００６１】
図６（ａ）は、振り分けレベルが１または２に設定されている場合の決定手順を示しており、図６（ｂ）は、図６（ａ）の手順にて振り分けレベルが１、２のいずれでもないと判定された後、振り分けレベルが３または４の場合に行われる決定手順を示している。
【００６２】
図６（ａ）において、まずジョブ制御部１００１は、本体装置１０２を起動した際に設定したｕｓｅＡＣＣＦｌａｇがＯＮであるか否かを調べる（Ｓ６０１）。ここで送信可能フラグｕｓｅＡＣＣＦｌａｇがＯＦＦである場合（Ｓ６０１でＮｏ）は、図４に示した通り、本体装置１０２が追加フォントデータを保持しているか、あるいはライセンスが無効であるか、あるいは外部装置と接続できないことを示しているため、印刷データを本体装置１０２にて処理すると判定して処理を終了する。
【００６３】
続いて、送信可能フラグｕｓｅＡＣＣＦｌａｇがＯＮである場合（Ｓ６０１でＹｅｓ）、ジョブ制御部１００１は、振り分けレベルが１であるか否かを調べ（Ｓ６０２）、振り分けレベルが１であれば（Ｓ６０２でＹｅｓ）処理をＳ６０７へ進め、外部装置１０４へ印刷データを転送する。すなわち、振り分けレベルが１であれば、送信可能フラグｕｓｅＡＣＣＦｌａｇがＯＮであることのみを条件として印刷データを外部装置へと転送する。
【００６４】
一方、Ｓ６０２で振り分けレベルが１でなかった場合（Ｓ６０２でＮｏ）、ジョブ制御部１００１は、ＰＤＬデータ解析部１００２を呼び出し、Ｓ６０３〜Ｓ６０５の各ステップにて印刷データのジョブ種別を調べる。なお以下の処理フローにおいて、ジョブ制御部１００１は、ＰＤＬデータ解析部１００２の印刷データの解析結果を受けて、処理フローを制御する。そして、振り分けレベルが２である場合（Ｓ６０６の判定がＹｅｓの場合）は、前記ジョブ種別が所定条件に合致しさえすれば、前記フォントデータを用いる印刷データか否かに関わらずに印刷データを転送する（Ｓ６０７）。
【００６５】
ここで、本実施形態における、所定条件に合致するジョブ種別は、ジョブ制御言語がＰＪＬ形式であるか、あるいはＰＤＬの種別がＰＣＬであるジョブとし、前記フォントデータを使用しないジョブ種別は本体装置１０２で処理するように振り分ける。すなわち、ジョブ制御部１００１は、印刷データが図５に示したようなＰＪＬ形式のジョブ制御言語で構成されているか、あるいはＰＤＬ単独で記述された印刷データであるかを判定し（Ｓ６０３）、何れでもない場合は印刷データを本体装置１０２にて処理すると判定して（Ｓ６０３でＮｏ）処理を終了する。このような例としては、ＭｉｃｒｏＳｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）上で動作するプリンタドライバにて生成される印刷データが該当し、この場合は独自形式のジョブ制御言語によって記述され、印刷データ内で前記フォントデータを用いないことが予め判明している。
【００６６】
一方、印刷データがＰＪＬ形式のジョブ制御言語であるか、またはＰＤＬ単独で記述されている場合（Ｓ６０３でＹｅｓ）、ジョブ制御部１００１は、ＰＤＬデータ解析部１００２に印刷データの先頭の所定サイズ、例えば５１２バイト分のデータを解析させる（Ｓ６０４）。そしてジョブ制御部１００１は、印刷データがＰＪＬ形式を含む構成である場合、"＠ＰＪＬ  ＥＮＴＥＲ  ＬＡＮＧＵＡＧＥ"によるＰＤＬ種別の指定がなされているかを調べ、ＰＤＬ種別がＰＣＬであるかを判定する。また、印刷データがＰＤＬのみで構成されている場合は、ジョブ制御部１００１は、前記所定サイズの印刷データ内に、ＰＣＬのシンタックスに合致しない描画コマンドが含まれているか否かを調べることで、ＰＤＬ種別がＰＣＬであるか否かを調べる（Ｓ６０５）。なお、前記のＰＤＬ種別の判定方法は、既知のＰＤＬ種別自動判別方法と同様で良いため、詳細な説明は省略する。ＰＤＬ種別がＰＣＬである場合（Ｓ６０５でＹｅｓ）、ジョブ制御部１００１は振り分けレベルが２であるかを判定する（Ｓ６０６）。一方、ＰＤＬ種別がＰＣＬでない場合（Ｓ６０５でＮｏ）、ジョブ制御部１００１は処理を図６（ｂ）のＳ６０８へ進める。
【００６７】
そしてジョブ制御部１００１は、振り分けレベルが２である場合（Ｓ６０６でＹｅｓ）、処理対象の印刷データが特定のジョブ制御言語ではなく、かつＰＤＬ種別がＰＣＬである印刷データであると判定し、印刷データを外部装置１０４へ転送する（Ｓ６０７）。
【００６８】
図６（ｂ）では、まずジョブ制御部１００１は、振り分けレベルが３であるか否かを調べる（Ｓ６０８）。振り分けレベルが３であれば（Ｓ６０８でＹｅｓ）、ジョブ制御部１００１は、Ｓ６０３の結果を元に、前記印刷データ内にリソース使用識別子を含んでいるか否かを調べる（Ｓ６０９）。ここで、リソース使用識別子は、前記フォントデータを使用する印刷データであるか否かを示す識別子であって、本実施形態では図８に示したようにジョブ制御言語のコメントとして記述されるものとする。具体的には、ＰＪＬ内のジョブ制御ヘッダ部に、"＠ＰＪＬ  ＣＯＭＭＥＮＴ  ＵＳＥ＿ＥＸＴ＿ＦＯＮＴ"と記述された文字列が存在する場合は、前記印刷データ内で前記フォントデータを用いる可能性があることを示している。リソース使用識別子は、ＰＣ１０１上で動作するプリンタドライバが印刷データを生成する際に付加するものとするが、必ずしも実際に前記フォントデータを用いる描画コマンドが含まれるとは限らない。そして、ジョブ制御部１００１は、リソース使用識別子が含まれていると判定した場合（Ｓ６０９でＹｅｓ）、Ｓ６１０にて前記印刷データを外部装置１０４へ転送する。すなわち振り分けレベルが３の場合、処理対象の印刷データが特定のジョブ制御言語ではなく、かつＰＤＬ種別がＰＣＬである印刷データについては、リソース使用識別子が含まれていれば外部装置１０４へと転送する。
【００６９】
一方、リソース使用識別子が印刷データに含まれていない場合（Ｓ６０９でＮｏ）、ジョブ制御部１００１は、Ｓ６１１にて印刷データ先頭内に前記フォントデータを使用する描画コマンドが含まれているかを調べる。印刷データ先頭内に前記フォントデータを使用する描画コマンドが含まれている場合（Ｓ６１１でＹｅｓ）、処理はＳ６１０に進む。なお、Ｓ６０４における印刷データ解析の際に、Ｓ６１１に相当するＰＤＬコマンドの解析処理を合わせて行っておいても良い。
【００７０】
Ｓ６０８にて振り分けレベルが３でない場合（Ｓ６０８でＮｏ）あるいは、Ｓ６１１にて前記フォントデータを用いる描画コマンドがジョブ先頭部に検出されなかった場合（Ｓ６１１でＮｏ）、処理はＳ６１２に進み、ジョブ制御部１００１は、振り分けレベルが４であるか否かを調べる。
【００７１】
ここで、振り分けレベルが４である場合（Ｓ６１２でＹｅｓ）、Ｓ６１３にてジョブ制御部１００１は、操作部１０３で提供する自然言語ユーザインターフェース（ＬＵＩ）の表示言語を調べ、所定の言語に設定されているなら前記フォントデータを使用する可能性が高いと判定し（Ｓ６１３でＹｅｓ）、印刷データを転送する。なお、本実施形態では、前記の所定言語は、中国簡体字（Ｃ）／韓国語（Ｋ）／台湾繁体字（Ｔ）／日本語（Ｊ）の何れかであるとする。またＬＵＩのように高度なＵＩでなくとも、通常のテキストＵＩやグラフィクスＵＩにも本実施形態に係る発明を適用でき、その場合にはＳ６１３では、それらＵＩの表示のために使用されている言語の種類を識別する。このように、振り分けレベルが４の場合には、本体装置でユーザインタフェースのために用いられている言語が所定の言語である場合に、印刷データを外部装置に転送する。
【００７２】
以下、図６（ｂ）に示したフローでも振り分け先が決定されず、振り分けレベルが５または６である場合の処理手順について、図７を用いて以下に説明する。
【００７３】
まず、ジョブ制御部１００１は、振り分けレベルが５であるか否かを判定する（Ｓ７０１）。振り分けレベルが５と判定された場合（Ｓ７０１でＹｅｓ）、ジョブ制御部１００１は、本体装置１０２に電源が投入された後に、印刷データを解析して、以前に前記フォントデータが描画コマンドで指定されていることを一度でも検出しているか否かを判定する（Ｓ７０２）。
【００７４】
ジョブ制御部１００１は、前記フォントデータが以前に描画コマンドで指定されていることを一度でも検出していると判定し（Ｓ７０２でＹｅｓ）、印刷データを外部装置１０４へ転送する（Ｓ７０３）。ここでは、Ｓ７０２において振り分け履歴フラグがｔｒｕｅ（オン）にセットされていれば、以前に前記フォントデータを用いた描画コマンドを検出したことがあると判定する。この場合には印刷データを解析することなく、振り分け履歴フラグがオンであることのみをもって印刷データを転送する。振り分け履歴フラグがオフであれば、印刷データを実際にパースして、追加フォントデータを使用するコマンドの有無を判定する。なお、振り分け履歴フラグの制御については、Ｓ７０４以降のステップにて説明する。
【００７５】
Ｓ７０１において振り分けレベルが５でなかった場合（Ｓ７０１でＮｏ）、またはＳ７０２にて振り分けフラグがｆａｌｓｅ（オフ）であった場合（Ｓ７０２でＮｏ）は、ジョブ制御部１００１は、ＰＤＬデータ解析部１００２に、ＰＤＬデータ全体をスプールして解析させる（Ｓ７０４）。そしてジョブ制御部１００１は、前記フォントデータを用いた描画コマンドが含まれているか否かを判定する（Ｓ７０５）。ジョブ制御部１００１は、印刷データに前記フォントデータを用いる描画コマンドが含まれると判定した場合（Ｓ７０５でＹｅｓ）、振り分け履歴フラグをｔｒｕｅ（オン）にセットする。
【００７６】
なお、振り分け履歴フラグは、図４のフローチャートに示した電源投入時の起動処理にてｆａｌｓｅに初期化しておいても良いし、工場出荷時にｆａｌｓｅに初期化されたＮＶＲＡＭ内に保持する構成でも構わない。ただし、前者の場合は電源をＯＦＦにする度に初期化されるが、後者の構成では一度ｔｒｕｅにセットされた後は、電源ＯＦＦ後も初期化されない点が異なる。
【００７７】
一方、印刷データ内に前記フォントデータを用いる描画コマンドが検出されなかった場合（Ｓ７０５でＮｏ）、ジョブ制御部１００１は、外部装置１０４へ印刷データを転送する必要がないため、印刷データの処理を本体装置１０２において処理するように決定する。
【００７８】
なお、上記の説明では、Ｓ７０４にて全てのＰＤＬデータを解析する際のみ振り分け履歴フラグをセットする構成としたが、Ｓ６１１において検出した場合にも振り分け履歴フラグをｔｒｕｅにセットするように制御しても構わない。
【００７９】
以上のように、振り分けレベルが５の場合、印刷データ中で使用される追加フォントデータがあるか、あるいは印刷データ中で追加フォントデータが利用された実績があれば、印刷データを外部装置１０４に転送する。また振り分けレベルが６の場合、印刷データ中で、実際に追加フォントデータが使用されていれば、印刷データを外部装置１０４に転送する。
【００８０】
上述の手順によって、振り分けレベルに応じた印刷データの転送条件は以下のようになる。なお、追加フォントデータのライセンスが有効であり、かつ、接続可能な外部装置が追加フォントデータを提供することを前提とする。
【００８１】
レベル１（第１のレベル）：印刷データの種別には因らず、無条件で外部装置１０４へ転送する。
【００８２】
レベル２（第２のレベル）：ＰＤＬ種別がＰＣＬであって、かつ所定のジョブ制御言語でない印刷データの場合、常に外部装置１０４へ転送する。
【００８３】
レベル３（第３のレベル）：印刷データがレベル２の条件を満たし、かつ、印刷データ内にリソース使用識別子を含むか、または印刷データの先頭から所定範囲内の位置に該フォントデータを選択する描画命令を検知した場合、外部装置１０４へ転送する。リソース使用識別子は、前記フォントデータを使用する可能性があるシステムにおいて、ＰＣ１０１上で動作する印刷データ生成部がＰＪＬ形式にて印刷データに付加する。
【００８４】
レベル４（第４のレベル）：印刷データがレベル２の条件を満たし、かつ、パネル操作部１０３の表示言語が所定言語である場合、外部装置１０４へ転送する。
【００８５】
レベル５（第５のレベル）：印刷データがレベル２の条件を満たし、かつ、ＰＤＬデータで実際に前記フォントデータが指定されているか若しくは過去に指定されていた実績がある場合、外部装置１０４へ転送する。すなわち、印刷データ中でＰＤＬリソースが少なくとも一度指定されていた実績がある場合、外部装置１０４へ転送する。
【００８６】
レベル６（第６のレベル）：印刷データがレベル２の条件を満たし、かつ、印刷データ中で実際に前記フォントデータが実際に指定されている場合に限り、印刷データを外部装置１０４へ転送する。
【００８７】
以上のように、振り分けレベルはレベル１から６まで、印刷データの内容を調べる必要性の有無と、該必要性がある場合には、前記印刷データの内容の一部を調べる必要性と、前記印刷データの内容の全部を調べる必要性とに応じて決められている。
【００８８】
そして上述の説明のように、振り分けレベルが１〜４の何れかに設定されている場合、全ての印刷データをスプールしてＰＤＬコマンドを解析することなく外部装置へ転送するか否かを決定するため、振り分け制御を高速に行うことができる。また振り分けレベルが５に設定されている場合も、最初の印刷ジョブを除けば、二つ目以降は解析されることなく外部装置に転送される。特に、印刷データにラスタイメージ等の描画コマンドを含んでいるか、ページ数が多くデータサイズが大きい場合は、前記印刷データのスプールと解析による処理負荷を大幅に削減することができる。
【００８９】
一方、振り分けレベルを選択可能なよう構成したことで、前記フォントデータを用いていない印刷データを不用意に転送してしまうことを抑制できるため、フォントデータのライセンスが有効である場合の振り分け制御を適切に行うことができる。
【００９０】
なお、本実施形態では、外部装置１０４はＰＤＬデータを解析して対応するページ画像を生成した後、当該ページ画像を圧縮画像データとして本体装置１０２へ返送するＰＤＬアクセラレータとして構成したが、紙等の記憶媒体に印刷して出力する構成しても構わない。
【００９１】
［実施形態２］
第１の実施形態においては、ＰＤＬ種別がＰＣＬである場合について発明を説明したが、本発明はこれに限らず、フォントリソースを参照して印刷処理を行う他のＰＤＬであっても良い。例えばＰＤＦ（ＩＳＯ  ３２０００）にも適用が可能である。
【００９２】
図９は、ＰＤＦデータの基本的なファイル構成の概要を示している。図９において、ヘッダ部９０１はＰＤＦ仕様のバージョン番号を規定する。ヘッダ部９０１は、ＰＤＦデータがバージョン１．４の仕様に準拠したシンタックスで記述されている例を示しいている。ジョブ制御部１００１は、ＰＤＬデータ解析部１００２を呼び出して印刷データのジョブ種別を調べる際、前記ヘッダ部が"％ＰＤＦ−１．＊"（"＊"は任意）と記載されていることを認識した時点で、前記印刷データはＰＤＦであると識別する。なお、上記の手順は、図６のＳ６０４およびＳ６０５に相当する。
【００９３】
ボディ部９０２は、印刷データに格納された文書を構成する複数の各種オブジェクトが含まれる。ＰＤＬデータ解析部１００２は、ボディ部９０４内に含まれるフォントオブジェクト（フォント辞書）を調べ、追加フォントデータを使用するか否かを調べる。
【００９４】
本実施形態のＰＤＬデータ解析部１００２は、ボディ部９０４の文字列オブジェクト９０２が参照するフォント辞書９０３を調べ、"ＦｏｎｔＦｉｌｅ２"エントリを含まないフォントデスクリプタ辞書を検出した場合は、追加フォントデータが必要であると判定する。一方、"ＦｏｎｔＦｉｌｅ２"エントリを含む場合は、フォントデータの実体（９０４）がＰＤＦファイルに埋め込まれていると判定し、後続のフォント辞書を順次調べる。なお、上記の手順は、図７のＳ７０４およびＳ７０５に相当する。
【００９５】
最後にフッタ部９０５は、ＰＤＦデータ内におけるオブジェクトの位置関係を含む相互参照表、および相互参照表の位置やカタログ等の特殊なオブジェクトの位置を示すトレーラを含むフッタ部である。
【００９６】
以下、第２の実施形態におけるジョブ制御部１００１が、"振り分けレベル"に応じて受信した印刷データを外部装置１０４へ振り分けるか否かを決定する手順のうち、実施形態１との差分点についてのみ説明する。
【００９７】
まず、印刷データがＰＤＦである場合はジョブ制御言語を含まないため、本実施形態では、図６のＳ６０３では常にＹｅｓと判定される。続いて、Ｓ６０４、Ｓ６０５については、図９の９０１に示したヘッダ部の記述内容を調べ、前記印刷データがＰＤＦであるか否かを判定する。続いて、ＰＤＦにはジョブ制御言語を含まないためリソース使用識別子による判定は行わず、従ってＳ６０９では常にＮｏと判定される。最後に、追加フォントデータを含むか否かの確認手順は、前述したＳ７０４・Ｓ７０５に相当する、フォント辞書９０３の記述内容を調べる手順にて判定する。
【００９８】
上記に示したように、本発明はフォントデータを用いて描画処理を行う複数の異なった種類の印刷データに適用することができる。
【００９９】
なお上記実施形態で説明した振り分けレベルの少なくとも一部を実装するシステムであっても、本発明が解決する課題を少なくとも部分的には解決することができる。
【０１００】
＜実施形態による課題解決＞
上述した実施形態１，２により、本体装置が自装置の処理能力に応じて、受信した印刷データを外部装置へ転送し印刷処理の少なくとも一部を依頼する構成において、印刷データの転送を行うか否かを決定するための判定基準に関する以下の課題が解決されている。
【０１０１】
（１）まず、不必要な転送を極力避けようとした場合、印刷データ内に本体装置で処理できないフォントの指定を含んでいるか否かを確認するために、画像処理に先立って前記印刷データを全て解析する必要があった。そのため、本体装置の処理負荷が増えてしまうという問題があった。例えば、ＰＣＬのような一般的なＰＤＬでは、印刷データ内の任意のページでフォントを選択するコマンドを発行することができるため、ジョブ単位での転送を行う構成においては、ジョブ終了を検知するまで印刷データを転送すべきか否かは確定できない。従って、本体装置にて１ジョブ分全ての印刷データを一時的にスプールしておく必要があるため、スプールメモリが増大してしまう。
【０１０２】
（２）本体装置の処理負荷を増大させない目的で、印刷データ内のフォント指定を確認することなく外部装置へ転送しようとした場合は、本体装置でも期待通りの処理が可能な印刷データも外部装置へ転送してしまうことになる。そのため、ネットワーク上のデータトラフィックを不必要に増大させてしまう問題があった。特に、外部装置が印刷処理の一部を代行する構成、すなわち印刷データを解析して対応するページ画像を生成し、当該ページ画像を圧縮画像データとして本体装置へ返送するＰＤＬアクセラレータとして構成した場合は、転送負荷の影響が大きくなる。更に、外部装置に処理負荷が集中することで、システム全体の処理速度が低下してしまうという問題もあった。
【０１０３】
なお、本体装置のコントローラプログラム等をＨＤＤではなくフラッシュＲＯＭ２０３上に配置し、ＨＤＤをオプションとして追加できるよう構成することでも、本体装置の初期コストを低減させつつ課題を解決することが可能である。ただし、この場合は、製品出荷後に必要なフォントデータを本体装置のＨＤＤにダウンロードしておく前準備が必要となるため、特に大量の画像出力装置を設置するような場合は、作業負荷が増大するという課題がある。
【０１０４】
本実施形態では、上記課題を解決して以下の効果を達成できる。すなわち、フォントデータのライセンスは本体装置にて管理するため、１台の外部装置に複数の画像出力装置が接続する構成であっても、ライセンス管理が煩雑になることなく、リソースの不正使用を防止することができる。
【０１０５】
また、本体装置にＨＤＤを追加できる構成の場合であっても、リソースを本体装置に予めダウンロードしておく前準備が不要となる。
【０１０６】
さらに、本実施形態に係る発明によれば、振り分けレベルが１〜５の何れかに設定されている場合、全ての印刷データをスプールしてＰＤＬコマンドを解析することなく外部装置へ転送するか否かを決定するため、振り分け制御を高速に行うことができる。また、前記印刷データのスプールと解析による本体装置１０２の処理負荷を大幅に削減することができる。
【０１０７】
また、振り分けレベルを選択可能なよう構成したことで、フォントデータを用いていない印刷データを不用意に転送してしまうことを抑制できるため、フォントデータのライセンスが有効である場合の振り分け制御を適切に行うことができる。さらに、ネットワークトラフィックの不用意な増大を抑えることができる。
【０１０８】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014119998.tif 000003
【図２】
2014119998.tif 000004
【図３】
2014119998.tif 000005
【図４】
2014119998.tif 000006
【図５】
2014119998.tif 000007
【図６】
2014119998.tif 000008
【図７】
2014119998.tif 000009
【図８】
2014119998.tif 000010
【図９】
2014119998.tif 000011