(57)【特許請求の範囲】
【請求項１】
第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段と、
前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データに含まれる一以上の画像オブジェクトの中に、前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲からはみ出るものがあるかどうかを判定する判定手段であって、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがある場合には、予め定められたエラー処理を行い、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがなければ前記予め定められたエラー処理を行わない、ことを特徴とする判定手段と、
前記第２の印刷装置に前記第２の印刷データを出力する出力手段と、
を有する印刷データ変換装置。
【請求項２】
前記判定手段は、前記第１の印刷データの解釈結果を用いて前記各画像オブジェクトのビットマップ画像をメモリ上に描画し、その結果生成された前記各画像オブジェクトのビットマップ画像の中に前記印刷可能範囲の外側に位置する印刷ドットがある場合には、予め定められたエラー処理を行い、生成された前記各画像オブジェクトのビットマップ画像の中に前記印刷可能範囲の外側に位置する印刷ドットがない場合には、前記予め定められたエラー処理を行わない、
ことを特徴とする請求項１記載の印刷データ変換装置。
【請求項３】
前記判定手段は、前記各画像オブジェクトの基準位置がｘ座標について互いに等しくなるよう、前記各画像オブジェクトをｘ方向に移動させ、移動後の前記各画像オブジェクトを前記メモリ上に描画し、その描画の結果のビットマップ画像の印刷ドットの中に前記印刷可能範囲の外側に位置するものがあるか否かを判定する、ことを特徴とする請求項１又は２に記載の印刷データ変換装置。
【請求項４】
前記判定手段は、前記各画像オブジェクトの前記ｘ方向についての前記基準位置を、前記画像オブジェクトの前記ｘ方向についての中央位置に設定し、設定後の前記各画像オブジェクトの前記基準位置が前記ｘ方向について互いに等しくなるように、前記各画像オブジェクトを前記ｘ方向に移動させる、ことを特徴とする請求項３に記載の印刷データ変換装置。
【請求項５】
前記一以上の画像オブジェクトの各々の存在範囲を規定する外枠の座標情報に基づき、前記印刷可能範囲からはみ出る可能性のある画像オブジェクトを候補オブジェクトとして特定し、特定した候補オブジェクトについてのみ、前記印刷可能範囲の外側に位置する印刷ドットがあるか否かを調べるためにビットマップ画像を生成する、ことを特徴とする請求項２〜４のいずれか１項に記載の印刷データ変換装置。
【請求項６】
第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段と、
前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲を記憶する記憶手段と、
前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データを構成する画像オブジェクトを解析して、前記画像オブジェクトのビットマップ画像をメモリ上に描画するとともに、前記ビットマップ画像を構成する印刷ドットのうち、最も外側となる印刷ドットを特定する特定手段と、
前記特定手段により特定される前記ビットマップ画像の印刷ドットのうち、最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側となるか否かを判定する判定手段と、
前記第２の印刷装置に前記第２の印刷データを出力する出力手段と、
を有する印刷データ変換装置。
【請求項７】
前記特定手段により特定された前記ビットマップ画像の印刷ドットのうちで最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側に存在する、と前記判定手段により判定された場合には予め定められたエラー処理を行い、前記特定手段により特定された前記ビットマップ画像の印刷ドットのうちで最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側に存在しない、と前記判定手段により判定された場合には予め定められたエラー処理を行わない警告手段、
を有する請求項６記載の印刷データ変換装置。
【請求項８】
コンピュータを、
第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段、
前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データに含まれる一以上の画像オブジェクトの中に、前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲からはみ出るものがあるかどうかを判定する判定手段であって、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがある場合には、予め定められたエラー処理を行い、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがなければ前記予め定められたエラー処理を行わない、ことを特徴とする判定手段、
前記第２の印刷装置に前記第２の印刷データを出力する出力手段、
として機能させるためのプログラム。
【請求項９】
コンピュータを、
第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段、
前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲を記憶する記憶手段、
前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データを構成する画像オブジェクトを解析して、前記画像オブジェクトのビットマップ画像をメモリ上に描画するとともに、前記ビットマップ画像を構成する印刷ドットのうち、最も外側となる印刷ドットを特定する特定手段、
前記特定手段により特定される前記ビットマップ画像の印刷ドットのうち、最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側となるか否かを判定する判定手段、
前記第２の印刷装置に前記第２の印刷データを出力する出力手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷データ変換装置及びプログラムに関する。
【背景技術】
【０００２】
例えば従来の企業の基幹システムでは、メインフレーム等のホストコンピュータが、メーカー独自の印刷データ記述言語で記述した印刷データを生成し、その言語に対応した専用の印刷装置にてその印刷データを処理している場合がある。このような状況に対し、近年、そのような独自の印刷データ記述言語の印刷データを、専用の印刷装置ではない他の印刷装置、例えばオフィス等で用いられる一般的なデジタルプリンタや複合機（コピー機、プリンタ、スキャナ等の複数の機能を備えた多機能装置）等でも印刷したいというニーズがある。このようなニーズに応えるには、基幹システム独自の印刷データ記述言語で記述された印刷データを、ポストスクリプト（登録商標）やＥＭＦ（enhanced metafile）等の標準的な印刷データ記述言語に変換する変換サーバを用意すればよいが、それだけでは十分ではない。それは、印刷装置の機種によって用紙上での印刷可能な範囲が異なるからである。
【０００３】
すなわち、例えば、元の専用の印刷装置で印刷した場合に、印刷可能な領域内に正しく印刷されていた文字列が、他の印刷装置の印刷可能な領域からはみ出してしまい、一部が欠けて印刷されることがある。またその逆に、元の専用の印刷装置では印刷可能範囲外にあるために印刷されなかった文字列が、印刷可能範囲がより広い他の印刷装置では印刷されてしまうこともある。いずれの場合も、他の印刷装置を用いた場合、印刷結果の見栄え（外観）が元の専用の印刷装置の印刷結果とは異なったものとなる。
【０００４】
異なる機種の印刷装置に出力する際の文字列のはみ出しを印刷実行前に検知する技術として、特許文献１に記載された技術がある。
【０００５】
特許文献１には、デザインデータが表す画像内に文字列を配置する加工を行うことで、印刷用画像データを生成する装置が開示されている。この装置では、印刷用画像に文字枠を配置するための文字枠設定ダイアログボックスに、「印刷保証領域」の表示欄と「文字枠」の表示欄とが設けられている。「印刷保証領域」の表示欄は、印刷可能領域を（左上座標）−（右下座標）のフォーマットで、ピクセル単位で表示する。「文字枠」の表示欄は、文字列を取り囲む文字枠の占める文字枠領域を（左上座標）−（右下座標）のフォーマットで、ピクセル単位で表示する。すなわち、この装置では、ユーザが配置しようとする文字列の外枠の範囲である文字枠領域を計算し、印刷保証領域と共にユーザインタフェース画面に表示している。そして、文字枠領域と印刷保証領域の上下左右の端部の座標を比較することで、前者が後者からはみ出るかどうかを判定し、はみ出る場合には警告を発している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２５０７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、元の印刷装置が印刷可能範囲と、他の印刷装置が印刷可能範囲とが異なっていても、他の印刷装置を用いた印刷において、元の専用の印刷装置で印刷した場合と同じ外観の印刷物を得ることを目的とする。
【課題を解決するための手段】
【０００８】
請求項１に係る発明は、第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段と、前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データに含まれる一以上の画像オブジェクトの中に、前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲からはみ出るものがあるかどうかを判定する判定手段であって、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがある場合には、予め定められたエラー処理を行い、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがなければ前記予め定められたエラー処理を行わない、ことを特徴とする判定手段と、前記第２の印刷装置に前記第２の印刷データを出力する出力手段と、を有する印刷データ変換装置である。
【０００９】
請求項２に係る発明は、前記判定手段は、前記第１の印刷データの解釈結果を用いて前記各画像オブジェクトのビットマップ画像をメモリ上に描画し、その結果生成された前記各画像オブジェクトのビットマップ画像の中に前記印刷可能範囲の外側に位置する印刷ドットがある場合には、予め定められたエラー処理を行い、生成された前記各画像オブジェクトのビットマップ画像の中に前記印刷可能範囲の外側に位置する印刷ドットがない場合には、前記予め定められたエラー処理を行わない、ことを特徴とする請求項１記載の印刷データ変換装置である。
【００１０】
請求項３に係る発明は、前記判定手段は、前記各画像オブジェクトの基準位置がｘ座標について互いに等しくなるよう、前記各画像オブジェクトをｘ方向に移動させ、移動後の前記各画像オブジェクトを前記メモリ上に描画し、その描画の結果のビットマップ画像の印刷ドットの中に前記印刷可能範囲の外側に位置するものがあるか否かを判定する、ことを特徴とする請求項１又は２に記載の印刷データ変換装置である。
【００１１】
請求項４に係る発明は、前記判定手段は、前記各画像オブジェクトの前記ｘ方向についての前記基準位置を、前記画像オブジェクトの前記ｘ方向についての中央位置に設定し、設定後の前記各画像オブジェクトの前記基準位置が前記ｘ方向について互いに等しくなるように、前記各画像オブジェクトを前記ｘ方向に移動させる、ことを特徴とする請求項３に記載の印刷データ変換装置である。
【００１２】
請求項５に係る発明は、前記一以上の画像オブジェクトの各々の存在範囲を規定する外枠の座標情報に基づき、前記印刷可能範囲からはみ出る可能性のある画像オブジェクトを候補オブジェクトとして特定し、特定した候補オブジェクトについてのみ、前記印刷可能範囲の外側に位置する印刷ドットがあるか否かを調べるためにビットマップ画像を生成する、ことを特徴とする請求項２〜４のいずれか１項に記載の印刷データ変換装置である。
【００１３】
請求項６に係る発明は、第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段と、前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲を記憶する記憶手段と、前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データを構成する画像オブジェクトを解析して、前記画像オブジェクトのビットマップ画像をメモリ上に描画するとともに、前記ビットマップ画像を構成する印刷ドットのうち、最も外側となる印刷ドットを特定する特定手段と、前記特定手段により特定される前記ビットマップ画像の印刷ドットのうち、最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側となるか否かを判定する判定手段と、前記第２の印刷装置に前記第２の印刷データを出力する出力手段と、を有する印刷データ変換装置である。
請求項７に係る発明は、前記特定手段により特定された前記ビットマップ画像の印刷ドットのうちで最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側に存在する、と前記判定手段により判定された場合には予め定められたエラー処理を行い、前記特定手段により特定された前記ビットマップ画像の印刷ドットのうちで最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側に存在しない、と前記判定手段により判定された場合には予め定められたエラー処理を行わない警告手段、を有する請求項６記載の印刷データ変換装置である。
請求項８に係る発明は、コンピュータを、第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段、前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データに含まれる一以上の画像オブジェクトの中に、前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲からはみ出るものがあるかどうかを判定する判定手段であって、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがある場合には、予め定められたエラー処理を行い、前記一以上の画像オブジェクトの中に前記印刷可能範囲からはみ出るものがなければ予め定められたエラー処理を行わない、ことを特徴とする判定手段、前記第２の印刷装置に前記第２印刷データを出力する出力手段、として機能させるためのプログラムである。
請求項９に係る発明は、コンピュータを、第１の印刷装置に対応する第１の印刷データを第２の印刷装置にて印刷する場合に、前記第１の印刷データを、前記第２の印刷装置に対応する第２の印刷データへと変換する変換手段、前記第１の印刷装置が印刷データを印刷することが可能な範囲を示す印刷可能範囲を記憶する記憶手段、前記第１の印刷データを前記第２の印刷装置にて印刷する場合に、前記第１の印刷データを構成する画像オブジェクトを解析して、前記画像オブジェクトのビットマップ画像をメモリ上に描画するとともに、前記ビットマップ画像を構成する印刷ドットのうち、最も外側となる印刷ドットを特定する特定手段、前記特定手段により特定される前記ビットマップ画像の印刷ドットのうち、最も外側に位置する印刷ドットが、前記記憶手段に記憶されている印刷可能範囲より外側となるか否かを判定する判定手段、前記第２の印刷装置に前記第２の印刷データを出力する出力手段、として機能させるためのプログラムである。
【発明の効果】
【００１４】
請求項１又は８に係る発明によれば、他の印刷装置を用いた場合でも元の専用の印刷装置で印刷した場合と同じ外観の印刷物を得ることができる。
【００１５】
請求項２、６、又は９に係る発明によれば、画像オブジェクトの外枠と印刷可能範囲との比較により印刷不良の有無を判定する方式よりも、判定の精度を高めることができる。
【００１６】
請求項３に係る発明によれば、判定のために画像オブジェクトを描画するメモリのサイズを、画像オブジェクトの位置を移動させずに描画する方式よりも小さくすることができる。
【００１７】
請求項４に係る発明によれば、判定のために画像オブジェクトを描画するメモリのサイズを、各画像オブジェクトの基準位置を中央位置に設定しない場合よりも小さくすることができる。
【００１８】
請求項５に係る発明によれば、ビットマップ画像の描画対象とする画像オブジェクトの数を少なくし、描画のための演算処理量を少なくすることができる。
請求項７に係る発明によれば、第１の印刷装置で印刷されなかった部分が第２の印刷装置で印刷されてしまうという異常を精度よくユーザに通知することができる。
【図面の簡単な説明】
【００１９】
【図１】実施形態の印刷サーバの構成の例を示す図である。
【図２】印刷可能範囲と文字列オブジェクトとの位置関係の例を示す図である。
【図３】文字列オブジェクトの印字位置及びサイズを説明するための図である。
【図４】傾いた文字列オブジェクトの印字位置及びサイズを説明するための図である。
【図５】外枠が印字可能範囲からはみ出る文字列オブジェクト群の絞り込みを説明するための図である。
【図６】文字列オブジェクトを同じ高さに揃えて重ね合わせる処理を説明するための図である。
【図７】文字列オブジェクトの重ね合わせの結果を例示する図である。
【図８】判定領域を説明するための図である。
【図９】外枠に対してそれぞれ異なる位置に基準点（基準高さ）が設定された文字列の例を示す図である。
【図１０】図９に例示した文字列を、基準点が同じ高さになるよう高さ揃えをした結果を示す図である。
【図１１】境界判定部の処理手順の前半部分の一例を示す図である。
【図１２】境界判定部の処理手順の後半部分の一例を示す図である。
【発明を実施するための形態】
【００２０】
元の印刷装置用に作成された第１の印刷データを、その元の印刷装置とは印刷可能範囲が異なる他の印刷装置にて印刷する場合、元の印刷装置では印刷可能範囲外にあるために印刷されなかった画像の部分が、他の印刷装置では印刷されてしまうことがある。以下に示す実施形態では、このような状況を避けるための手法を提案する。ここで、第１の印刷データは、例えば上記「元の印刷装置」に対応する第１の印刷データ記述言語で記述されていてもよい。また、上記「他の印刷装置」は、当該「他の印刷装置」に対応する第２の印刷データ記述言語で記述された第２の印刷データを受け入れて印刷するものであってもよい。
【００２１】
図１に示すように、本発明に係る印刷データ変換装置の一実施形態である印刷データ変換部１１０を内蔵した印刷サーバ１００は、ローカル・エリア・ネットワーク等のネットワークを介して、ＴＣＰ／ＩＰ等の通信プロトコルを用いて、上位ホスト１５０及びプリンタ１６０と通信する。
【００２２】
上位ホスト１５０は、例えばメインフレーム等のコンピュータであり、印刷データを印刷サーバ１００に送って印刷処理を依頼する。ここで、上位ホスト１５０は、印刷対象の画像内容を表す印刷データを、特定の基準プリンタに対応した専用のページ記述言語（以下「ＰＤＬ」という。ＰＤＬはPage Description Languageの略）で記述する印刷データ作成機能を有する。基準プリンタは、例えばメインフレームのための専用の印刷装置として開発されたプリンタであり、上述した専用ＰＤＬに対応している。上位ホスト１５０のこの印刷データ作成機能を用いた場合、用紙上での各画素の位置座標を規定する原点である印刷原点位置や、用紙表面のうちの印刷可能な範囲（「印刷可能範囲」と呼ぶ）は、基準プリンタの性能・仕様に合わせたものとなる。
この印刷可能な範囲は、印刷サーバ１００の記憶部（図示せず）に記憶されており、印刷データの各画像オブジェクトのビットマップ画像の中に印刷可能範囲の外側に印字ドットがあるか判定する際に、記憶部から読みだされて利用される。
【００２３】
一方、印刷サーバ１００に接続されるプリンタ１６０は、そのような基準プリンタとは異なる機種のプリンタであり、上位ホスト１５０の専用ＰＤＬには対応していない。
【００２４】
印刷サーバ１００は、上位ホスト１５０の印刷データ作成機能により作成された専用ＰＤＬの印刷データをスプールし、プリンタ１６０が解釈可能なＰＤＬ（例えばＰｏｓｔＳｃｒｉｐｔ（登録商標）やＰＤＦ（Portable Document Format））のデータに変換してプリンタ１６０に提供する。
【００２５】
印刷サーバ１００の受信部１０１は、上位ホスト１５０と通信を行い、印刷データを順次受信して一定量蓄えるとプロセス制御部１０２に渡すという処理を、受信終了まで繰り返す。プロセス制御部１０２は、例えばマルチプロセッサ等のアーキテクチャで並行動作するＰＤＬ解析部１０３と出力制御部１０４との実行同期をとりながら、受信した印刷データを順次、ＰＤＬ解析部１０３に渡す。
【００２６】
ＰＤＬ解析部１０３は、受信した印刷データのＰＤＬによる記述内容を解析して、例えばページ単位で中間コードに置き換える。中間コードは、ＰＤＬとビットマップ画像の中間のデータであり、例えばＰＤＬで表される画像オブジェクトをより細かい単位（例えば同一画素値が走査線方向に連続したランなど）に分解して記述したものである。
【００２７】
出力制御部１０４は、プロセス制御部１０２からの指示に従い、ＰＤＬ解析部１０３で解析が完了したページの中間コードを読み出し、印刷ジョブデータとして必要な制御情報（給紙トレー指示等の環境情報等）など付加を行ったのち、ページ出力部１０５にそのページの中間コードを渡す。
【００２８】
ページ出力部１０５では、ページの中間コードを受け取り、ページ内の論理印刷領域ごとに領域描画部１０６を呼び出す。論理印刷領域は、例えば、元のＰＤＬで記述された個々の画像オブジェクト（例えば、文字列、グラフィックス、イメージ（ビットマップ））である。領域描画部１０６は、論理印刷領域ごとの中間コードを処理して、その論理印刷領域の画像を表す画像形成（描画）コマンド群を作成する。例えば、印刷サーバ１００のオペレーティングシステムがWindows（登録商標）である場合、領域描画部１０６が作成する画像形成コマンド群はＥＭＦのデータとなる。ページ出力部１０５は、作成された当該ページの各論理印刷領域の画像形成コマンド群のデータを境界判定部１０７に渡す。境界判定部１０７は、受け取った各論理印刷領域のデータから、当該ページ内の画像オブジェクトの中に、基準プリンタの印刷可能範囲の境界から外にはみ出すものがあるかどうかを判定する。はみ出すものがある場合には異常、ない場合は正常と判定される。この判定処理の詳細は後で説明する。
【００２９】
境界判定部１０７の判定結果が正常（すなわち当該ページ内には印刷可能範囲からはみ出す画像オブジェクトが存在しない）である場合は、ページ出力部１０５は、そのページの画像形成コマンド群を、オペレーティングシステムの印刷コンポーネント１０８に渡す。図では、一例としてWindows（登録商標）の印刷コンポーネント１０８を示している。この印刷コンポーネント１０８には、Windows（登録商標）スプーラ、ポート／言語モニタ、及びプリンタドライバが含まれる。スプーラは、ページ出力部１０５から受け取ったページのデータ（画像形成コマンド群）をスプールする。プリンタドライバは、ページの画像を表す画像形成コマンド群を、プリンタ１６０が受け付け可能なＰＤＬのデータに変換する。ポート／言語モニタは、プリンタ１６０の状態を監視し、プリンタ１６０に対してＰＤＬデータを送信する。なお、印刷コンポーネント１０８は既存のものでよいので、これ以上の詳細な説明は省略する。
【００３０】
次に、境界判定部１０７の処理について詳しく説明する。
【００３１】
図２は、用紙２００上の印刷可能範囲２１０と、印刷データに含まれる様々な文字列オブジェクト２２１〜２２８との位置関係の例を示している。
【００３２】
図２の例では、印刷可能範囲２１０は横幅が画素数sx、縦長が画素数syの範囲である。まず、印刷可能範囲２１０が、印刷サーバ１００から出力されるＰＤＬデータが元来出力先として想定していた基準プリンタ（図示省略）が印刷可能な範囲である場合の例を説明する。この場合において、実際に印刷を行うプリンタ１６０の印刷可能範囲が基準プリンタの印刷可能範囲２１０よりも広く、前者が後者を内包する場合には、基準プリンタとプリンタ１６０とで印刷結果が異なったものとなってしまう場合がある。この点について、以下に説明する。
【００３３】
すなわち、基準プリンタの印刷可能範囲２１０からはみ出る文字列オブジェクトがページ内に１つもなければ、より広範囲を印刷可能なプリンタ１６０でも文字列オブジェクトはすべて印刷可能範囲内に収まるので、基準プリンタとプリンタ１６０とで印刷結果の見栄えに相違はない（例えば、一方に文字の欠けが生じるなどということはない）。これに対し、ページ内に基準プリンタの印刷可能範囲２１０からはみ出る文字列オブジェクトが存在すると、基準プリンタでは印刷されなかったはみ出し部分が、より広範囲を印刷可能なプリンタ１６０では印刷されてしまう場合があり、これが基準プリンタとプリンタ１６０の印刷結果の見栄えに大きな相違をもたらす。プリンタ１６０により基準プリンタの印刷を再現するという目的の下では、そのような相違が生じる可能性がある場合には、印刷データの変換を停止して印刷を取りやめたり、警報を発してユーザに注意を促したりするなどの対処が必要である。
【００３４】
ここで注意すべきは、仮に文字列オブジェクトの外枠が基準プリンタの印刷可能範囲から外にはみ出していたとしても、はみ出している部分が完全に空白であれば、問題はないということである。すなわち、この場合、文字列オブジェクトの外枠内の領域のうち基準プリンタの印刷可能範囲からはみ出た部分が、より広範囲を印刷可能なプリンタ１６０の印刷可能範囲内に入っているとしても、そのはみ出た部分は空白なので、結局その部分はプリンタ１６０でも印刷されない。このため、印刷結果の見栄えは、基準プリンタの場合と変わらない。
【００３５】
このように基準プリンタの印刷可能範囲からオブジェクトの空白部分しかはみ出さない場合にも異常と判定し、印刷の取りやめや警報を行ったのでは、作業効率の悪化を招いてしまう。そこで以下では、基準プリンタの印刷可能範囲からオブジェクトの空白部分しかはみ出さない場合には正常と判定するような判定法を説明する。
【００３６】
説明に当たって、まず図２のページ例について説明する。図２に例示した各文字列オブジェクト２２１〜２２８には、それぞれそのオブジェクト内の各文字の実体（レターフェース）を内包する外枠（図２ではそれぞれ点線の矩形で示している）が規定されている。この外枠は、印刷の走査線（一般に用紙の横（ｘ）方向の辺と平行）に平行な辺と、これに垂直な辺とからなる矩形である。この外枠は、典型的には、文字列を構成する各文字のボディフェース（仮想ボディとも呼ばれる）を文字列に沿って連結してできる矩形である。文字列オブジェクト内の各文字の実体は、この文字列の外枠内に収まる。文字列オブジェクト２２２のように斜めに傾いた文字列の場合は、例えば、傾いた文字列内の各文字のボディフェースを連結したものに外接する矩形が、その文字列オブジェクト２２２の外枠となる。この外枠の情報は、ＰＤＬ（基準プリンタの専用ＰＤＬ、及びＰＤＦ等の標準的なＰＤＬのいずれでも）で記述された印刷データ内の、文字列オブジェクトの記述内に含まれているか、又はその文字列オブジェクトの記述に含まれる情報から計算することができる。
【００３７】
ＰＤＬによるページ上の文字列オブジェクトの指定は、図３及び図４に例示するように、その文字列のページ上での位置を示す印字位置（px, py）と、文字列の情報（すなわち文字コードの列）とを含む。そして、実際に印刷する文字の範囲は、ポイント数、文字ピッチ、及び拡大・縮小などの修飾情報によって、文字列の印字サイズ（bx, by）が決まる。したがって、その文字列オブジェクトの印字範囲すなわち外枠は、左上座標（px, py + by）と右下座標（px + bx, py）とにより画定される矩形として考えることができる。図３及び図４には、文字列オブジェクト２２１及び２２２を例示したが、他の文字列オブジェクトについても同様である。また、図３及び図４の例では、印字位置（px, py）に、文字列オブジェクトの外枠の左下隅の頂点を位置合わせするデフォルト配置の場合を例示したが、例えばベースラインを上下にシフトさせる等の描画コマンドや修飾情報により、文字列オブジェクトの外枠のどの部分を印字位置に位置合わせするかが変更される場合もある。
【００３８】
再び図２を参照すると、図２の例は、矩形の印刷可能範囲２１０の右端の境界線２１２から当該範囲２１０の外側への、文字列のはみ出しの態様をいくつか例示している。
【００３９】
この例において、文字列オブジェクト２２１及び２２２は、全体が印刷可能範囲２１０内に含まれている。これに対し、文字列オブジェクト２２３，２２４，２２７及び２２８は、当該オブジェクト（点線で示す外枠で囲まれた部分）の一部が印刷可能範囲２１０から境界線２１２を越えて外側（右側）にはみ出しており、文字列オブジェクト２２５及び２２６は全体が印刷可能範囲２１０の外側に位置する。このうち、文字列オブジェクト２２４は印字される文字自体が印刷可能範囲２１０からはみ出ているのに対し、文字列オブジェクト２２３は末尾に空白文字の部分のみが印刷可能範囲２１０の外にはみ出している。また、文字列オブジェクト２２８は、空白文字のみからなる文字列であり、印刷可能範囲２１０からはみ出しているのも空白部分のみである。
【００４０】
図２の例において、例えば文字列オブジェクト２２４及び２２７は、文字自体の一部が基準プリンタの印刷可能範囲２１０から外にはみ出ている。したがって、基準プリンタで印刷した場合、それらはみ出た文字自体部分は印刷されない。しかし、それら文字列オブジェクト２２４及び２２７を、より広範囲を印刷可能なプリンタ１６０で印刷すると、基準プリンタでは印刷されなかった部分が印刷されてしまう。
【００４１】
これに対し、文字列オブジェクト２２３及び２２８のうち印刷可能範囲２１０から外にはみ出すのは空白部分だけなので、プリンタ１６０で印刷を行っても印刷結果の見栄えは基準プリンタでの印刷結果と変わらない。
【００４２】
全体が印刷可能範囲２１０の外に位置する文字列オブジェクト２２５及び２２６についても同様である。すなわち、文字列オブジェクト２２５は、基準プリンタでは印刷されないものの、より広範囲を印刷可能なプリンタ１６０では文字列の一部が印刷されてしまう可能性がある。それに対し、完全な空白文字列である文字列オブジェクト２２６は、基準プリンタでもプリンタ１６０でも印刷結果は空白である。
【００４３】
このように、文字実体が印刷可能範囲２１０からはみ出す場合と、空白部分のみが印刷可能範囲２１０からはみ出す場合とを切り分けるために、この実施形態では、境界判定部１０７がページ内の文字列オブジェクト群を実際にメモリ上に描画し、その描画結果において白（すなわち空白）でない値を持つ画素（以下、白でない画素のことを「印刷ドット」と呼ぶ）が印刷可能範囲２１０の外側に存在するかどうかを判定する。描画結果において印刷ドットが印刷可能範囲２１０の外側にあれば、印刷可能範囲２１０からはみ出る文字実体部分が存在することになり、ひいてはプリンタ１６０で印刷すると基準プリンタの印刷結果とは見栄えが異なってくる可能性があると判定される。この場合、境界判定部１０７はエラーと判定し、これに応じて印刷データ変換処理の停止、あるいは警報出力などのエラー処理が行われる。
【００４４】
印刷サーバ１００又はその内部の印刷データ変換部１１０が実行する変換処理、すなわち、基準プリンタの専用ＰＤＬからＥＭＦやプリンタ１６０用の標準的なＰＤＬへの変換では、ビットマップ画像の描画は本来不要である。本実施形態では、その本来不要な描画処理を印刷データ変換部１１０にあえて実行させることで、空白部分しかはみ出さない場合と、文字実体がはみ出す場合とを切り分けられるようにしている。
また、印刷データ変換部１１０では、印刷データを構成するオブジェクトを解析して、ビットマップ画像を生成する。このビットマップ画像の印刷する画素である印刷ドットは、印刷可能範囲２１０の外側にあるか否かの判定に用いられることになる。
つまり、印刷データ変換部１１０は、ビットマップ画像の印刷ドットを印刷可能範囲２１０に描画することで、実質的に、印刷データを構成する画像オブジェクトを解析して、画像オブジェクトの印刷ドットのうち、少なくとも、印刷可能範囲２１０の最も外側となる印刷ドットを特定するものとして機能する。
そして、境界判定部１０７は、印刷データ変換部１１０により特定される印刷可能範囲２１０の最も外側となる印刷ドットが、印刷可能範囲２１０より外側となるか否かを判定するものとして機能する。
【００４５】
さて、この判定のために十分大きなメモリ領域を確保し、そのメモリ領域に対して１ページ分のＰＤＬデータの解釈結果のビットマップ画像を描画し、その描画結果の中に、印刷可能範囲２１０の外側に位置する白でない画素があるかを判定してももちろんよい。しかし、これには大きなメモリ領域を必要とする。印刷データ変換に本来必要でないビットマップ描画に対して使用するメモリの量は少ないに越したことはない。
【００４６】
そこで、以下に例示する判定処理では、印刷可能範囲２１０からのはみ出し判定に用いるメモリの量を極力少なくする。
【００４７】
この判定処理では、まず各文字列オブジェクト２２１〜２２８の外枠の座標情報を用いることで、大まかなふるい分けを行う。すなわち、図５に例示するように、まず各文字列オブジェクト２２１〜２２８の外枠（図中、点線で示した）の座標情報と、印刷可能範囲２１０の座標情報とを比較することで、外枠が印刷可能範囲２１０内に収まっている文字列オブジェクト２２１及び２２２と、外枠が印刷可能範囲２１０からはみ出している文字列オブジェクト２２３〜２２８（図５中で破線で囲んだ）とを分類する。図５（及び図２）は、印刷可能範囲２１０の右端の境界線２１２からのはみ出しに着目しているので、この分類判定では、文字列オブジェクトの外枠の右端のｘ座標が、その境界線２１２のｘ座標よりも大きい（すなわち右側にある）場合に、その文字列オブジェクトの外枠が印刷可能範囲２１０からはみ出していると判定される。そして、これ以降の処理では、外枠がはみ出している文字列オブジェクトのみを対象とする。
【００４８】
次に、それら絞り込まれた判定対象の文字列オブジェクト群を移動（すなわち印字位置を変更）することで、それら文字オブジェクトが描画される範囲を小さくする。この移動は、はみ出し判定の基準である境界線２１２に平行な方向について行う。
【００４９】
図６は、図２及び図５の一部を拡大したものである。図６の例では、判定対象の文字列オブジェクト２２３〜２２８の印字位置を、境界線２１２に平行に、すなわちｙ方向に沿って上方又は下方に移動させる。この移動は、文字列オブジェクト２２３〜２２８のｙ方向に沿った分布範囲を小さくするためのものなので、判定対象の文字列オブジェクト２２３〜２２８の印字位置のｙ座標を、ある基準のｙ座標に近づくように移動させる。特に、それら文字列オブジェクト２２３〜２２８の印字位置のｙ座標を、ある基準のｙ座標（高さ）に一致させることで、それら文字列オブジェクト２２３〜２２８のｙ方向の分布範囲が最小となる。図６の例では、文字列オブジェクト２２３〜２２８の印字位置のｙ座標を、印刷可能範囲２１０の縦（ｙ）方向の中央位置に一致させるよう、移動、すなわち印字位置の設定変更を行う。なお、文字列オブジェクト群の移動先は、印刷可能範囲２１０の縦方向についてあらかじめ定めた特定の位置であればよく、縦方向の中央位置である必要は必ずしもない。
【００５０】
また、判定対象の文字列オブジェクト２２３〜２２８のうち、外枠全体が印刷可能範囲２１０の外側（すなわち図６にてハッチングで示す印刷不可範囲２３２内）にある文字列オブジェクト２２５及び２２６に関しては、上述のｙ方向の移動に加え、ｘ方向についても印字位置を移動させる。すなわち、文字列オブジェクト２２５及び２２６の左端（すなわち、ｘ方向に関して着目する境界線２１２に近い側の端部）が境界線２１２に近づくよう、特にその左端が境界線２１２に一致するまで、それら文字列オブジェクト２２５及び２２６を移動させる。これにより、文字列オブジェクト２２５及び２２６のｘ方向についての分布範囲が小さくなる。外枠全体が印刷可能範囲２１０の外側にある文字列オブジェクト２２５及び２２６については、外枠内に印刷ドット（白でない画素）があれば、印刷可能範囲２１０からはみ出る文字実体が存在することになり、このことは、外枠の右端を境界線２１２に一致させるよう当該オブジェクトを移動させても変わらない。
【００５１】
以上に説明した文字列オブジェクト２２３〜２２８の移動処理により、図７に示すような移動結果が得られる。ここで、本実施形態では、移動処理により重なり合った文字列オブジェクト２２３〜２２８の外枠の分布範囲のうち、境界線２１２より右側（すなわち印刷可能範囲２１０の外側）の範囲（図中の判定領域２３４）をカバーできる最小のメモリ領域を確保する。印刷可能範囲２１０からはみ出す文字実体部分があるかどうかは、描画結果の印刷ドットがその判定領域２３４内にあるか否かで判定することができ（あれば、はみ出す部分有り）、印刷可能範囲２１０内の部分の描画結果は判定には不要である。したがって、境界線２１２から外側の判定領域２３４をカバーする最小限のメモリ領域があれば、そのはみ出し判定は可能であり、且つ判定に必要なメモリ量が最小となる。
【００５２】
判定領域２３４について、より大きく表示した図８を参照して説明する。図８の例は、境界線２１２から外側にはみ出る文字列オブジェクトが、ページ内に１つ（文字列オブジェクト２２７のみ）しか存在しない場合の例である。この例では、文字列オブジェクト２２７内の各文字のボディフェースを連結してできる外枠で囲まれる領域のうち、境界線２１２より外側（図では右側、言い換えれば印刷不可範囲２３２内）の領域が、判定領域２３４となる。図７の例のように複数の文字列オブジェクト２２３〜２２８が重なる場合には、それら各文字列オブジェクトそれぞれの判定領域を内包する最小の矩形を、それら複数の文字列オブジェクト２２３〜２２８についての判定領域２３４とすればよい。
【００５３】
なお、デフォルトでは、文字列オブジェクトの外枠の特定の基準点（例えば左下隅の頂点）が、指定された印字位置に位置合わせされるのであるが、コマンドや文字列に対する修飾情報により、文字列オブジェクトの基準点がシフトされる場合があるのは前述の通りである。このような基準点のシフトがあることを考慮すると、上述したような文字列オブジェクトの印字位置を移動させるだけでは、判定領域２３４（ひいては、判定に用いるメモリ領域）が最小にならない場合がある。
【００５４】
例えば、図９に例示するように、基準点Ｒが外枠の左下隅（あるいは基準高さが外枠の最下位置）に設定されている文字列オブジェクト２２７と、基準点Ｓが外枠の左上隅の上方（あるいは基準高さが外枠の最上位置よりも上方）に設定されている文字列オブジェクト２２４とがある場合を考える。これら文字列オブジェクト２２４と２２７の基準点Ｒ及びＳのｙ方向位置（高さ）を点Ｍの高さに合わせるようそれら両オブジェクトを移動させると、図１０に示すような配置となる。図１０に示す配置では、文字列オブジェクト２２４と２２７とが重なっていないので、これら全体をカバーする判定領域のサイズは、それらオブジェクトが重なり合う場合よりも大きくなってしまう。
【００５５】
このような問題に対処するための改善策として、判定対象のすべての文字列オブジェクトの基準点（又は基準高さ）を一致させる操作を行ってもよい。特に、各文字列オブジェクトの基準点（又は基準高さ）を、当該文字列オブジェクトの外枠のｙ方向についての中央の高さ（「縦センター」と呼ぶ）とすればよい。これにより、それら各文字列オブジェクトの印字位置を一致させた場合に、境界線２１２から外にはみ出す領域（すなわち判定領域２３４）が最小となる。
【００５６】
このような改善策も含めた場合の、境界判定部１０７の処理手順の一例を、図１１及び図１２に示す。境界判定部１０７は、１ページごとに、当該ページのＰＤＬデータ（あるいはその変換結果のＥＭＦデータ）を対象として、図１１及び図１２の処理を実行する。図１１及び図１２に例示する手順は、印刷可能範囲２１０の右端の境界線２１２から右側にはみ出る文字列を探し出す場合の例である（図２〜図８参照）。
【００５７】
この処理では、まず基準プリンタの印刷可能範囲２１０の幅sx、高さsy、及び高さ方向の中央位置の高さsy/2の情報を取得する（Ｓ１０）。次に、文字列オブジェクトの基準点（基準高さ）を縦センターに設定する（Ｓ１２）。これは、上述した文字列オブジェクトの基準点を一致させる改善策の処理である。Ｓ１２の処理は、例えば、基準点を縦センターに設定するコマンドを、後述するコマンド群を一時記憶する一時記憶部（図示省略）に追加する形で行ってもよい。
【００５８】
次に、１ページ分のデータ（ＰＤＬデータ又はＥＭＦ）の先頭から順にコマンドを１つ取り出し（Ｓ１４）、取り出したコマンドが文字列オブジェクトの描画コマンドであるか否かを判定する（Ｓ１６）。文字列の描画コマンドであれば、その描画コマンドのパラメータから、その文字列の外枠の座標（例えば左上隅と右下隅の座標）を求める（Ｓ１８）。そして、求めた外枠の座標と、Ｓ１０で取得した印刷可能範囲２１０の幅sxとを比較することで、その外枠全体が印刷可能範囲２１０内に収まるか否かを判定する（Ｓ２０）。このＳ２０は、オブジェクトの外枠の座標を用いたスクリーニング（粗い判定）である。Ｓ２０で収まると判定された場合は、その文字列は印刷可能範囲２１０からはみ出すことはないので、詳細な判定の対象から外す。この場合、Ｓ３４に進んで、１ページのデータの最後（ＥＯＦ：End Of File）まで処理が完了したかどうかを判定し、完了していない場合は、Ｓ１４に戻って次のコマンドについての処理を行う。
【００５９】
Ｓ２０で、外枠が印刷可能範囲２１０に収まらないと判定された場合、その外枠内の文字実体が印刷可能範囲２１０からはみ出すか否かの詳細な判定に進む。この詳細判定では、まず判定対象の文字列オブジェクトの描画コマンドの印字位置パラメータのｙ座標をsy/2に変更する（Ｓ２２）。これにより、当該文字列オブジェクトが印刷可能範囲２１０のｙ方向についての中央の高さに寄せられることになる。次に、当該文字列オブジェクトの外枠の左端と境界線２１２のｘ座標同士を比較することで、外枠全体が印刷可能範囲２１０の外側に位置するか否かを判定し（Ｓ２４）、この判定結果が肯定（Ｙｅｓ）の場合には、当該文字列オブジェクトの描画コマンドの印字位置パラメータのｘ座標をｓｘ（境界線２１２のｘ座標）に変更する（Ｓ２６）。この処理により、印刷可能範囲２１０の完全に外にあるオブジェクトが境界線２１２まで寄せられる。Ｓ２４の判定結果が否定の場合は、Ｓ２６は飛ばす。
【００６０】
次に、文字列の高さ（by）と文字列のｘ座標の最大値の更新を行う（Ｓ２８，Ｓ３０）。これらのステップは、判定領域２３４の範囲を求めるための処理である。１ページ中に存在する文字列の高さbyが判定領域２３４の高さであり、ｘ座標の最大値が判定領域２３４の右端のｘ座標である。ここで、すべての文字列の基準点（基準高さ）が縦センターに設定（Ｓ１２，Ｓ３８）されているので、判定領域２３４のｙ方向の中央位置のｙ座標はsy/2である。また、判定領域２３４の右端のｘ座標はsx（境界線２１２）である。より詳しくは、Ｓ２８では、保持しているbyの最大値を今回の判定対象の文字列オブジェクトの外枠の高さと比較し、byの最大値を両者のうち大きい方の値に更新する。Ｓ３０では、保持しているｘ座標の最大値を今回の判定対象の文字列オブジェクト（Ｓ２６に該当するものはｘ方向に移動済み）の右端のｘ座標と比較し、ｘ座標の最大値を両者のうち大きい方の値に更新する。
【００６１】
以上のようにしてＳ２２（及びＳ２６）等で変更された文字列オブジェクトの描画コマンドを一時記憶部に記憶する（Ｓ３２）。一時記憶部は、はみ出しの詳細判定のために追加したコマンド（例えば描画基準点の設定コマンド）や修正したコマンド（例えば印字位置を変更した文字列描画コマンド）を、出現順に記憶していく記憶装置である。Ｓ１４〜Ｓ４０のループを繰り返すことで、判定に必要なコマンド群が順に一時記憶部に蓄積されていく。
【００６２】
Ｓ３２の後、Ｓ３４に進んで、１ページのデータの最後（ＥＯＦ：End Of File）まで処理が完了したかどうかを判定し、完了していない場合は、Ｓ１４に戻って次のコマンドについての処理を行う。
【００６３】
Ｓ１４で取得したコマンドが文字列描画コマンドでないとＳ１６で判定された場合、そのコマンドが画像オブジェクトの描画基準点（基準高さ）を変更するものかどうかを判定する（Ｓ３６）。この判定の結果が肯定であれば、文字列の基準点を縦センターに再設定する（Ｓ３８）。例えば、Ｓ３６で検出した基準点変更コマンドを縦センターへの変更に書き換えるなどする。この場合、Ｓ４０では、その変更後の基準点変更コマンドは不要なコマンドではないと判定され（判定結果はＮｏ）、そのコマンドが一時記憶部に追加される（Ｓ３２）。
【００６４】
Ｓ１４で取得されるコマンドには、文字列描画コマンドや基準点変更コマンド以外にも様々なものがあり、それら様々なものの中には、はみ出しの詳細判定に影響を与えるものとそうでないものとがある。例えば、文字列に対する修飾（例えば字体指定）を指定するコマンドは、描画される文字列の画像に直接影響を与えるものである。はみ出しの詳細判定に影響を与える（例えば描画される文字列の画像に変更をもたらす）コマンドは、詳細判定のために必要なコマンドであり、そうでないコマンドは不要なコマンドである。Ｓ１４で取得されたコマンドが文字列描画コマンドでも基準点変更コマンドでもない場合、Ｓ３８はスキップされ、Ｓ４０にてそのコマンドが不要か否かが判定される。そして、不要でないコマンドはＳ３２にて一時記憶部に追加され、不要であるコマンドは一時記憶部には追加されない。その後Ｓ３４で１ページの最後に達したかどうかを判定し、達していなければＳ１４に戻って次のコマンドを処理する。
【００６５】
このようにして１ページの最後までの処理が終わると（Ｓ３４の判定結果がＹｅｓ）、ページ内のすべての文字列オブジェクトが図７に例示したように境界線２１２方向の中央に寄せられた状態となる。また、寄せられた後のそれら文字列群を収容する判定領域２３４が、左上隅の座標が(sx, sy / 2 + by最大値 / 2)、右下隅の座標が(sx + 文字列のｘ座標最大値, sy / 2 - by最大値 / 2)の矩形として確定する。境界判定部１０７は、この判定領域２３４内の画素群を記憶できるサイズのメモリ領域を確保する。
【００６６】
Ｓ３４の判定結果がＹｅｓの場合、図１２に示すように、まずページ内のすべての文字列の外枠が印刷可能範囲２１０内であるかを否か判定する（Ｓ４２）。これには、例えば、すべての文字列オブジェクトについてのＳ２０の判定結果を記憶しておけばよい。Ｓ４２の判定結果がＹｅｓの場合、文字列描画による詳細な判定を行うまでもなく、ページ内のすべての文字列は印刷可能範囲２１０内に収まることが明らかなので、この判定処理を正常終了する。この場合、境界判定部１０７は、正常との判定結果をページ出力部１０５に供給し、これに応じページ出力部１０５は領域描画部１０６が生成した描画（画像形成）コマンド群を後段の印刷コンポーネント１０８に供給する。これにより、そのページはプリンタ１６０で印刷されることになる。
【００６７】
一方、Ｓ４２の判定結果が否定の場合、境界判定部１０７は、一時記憶部に蓄積されたコマンド群を先頭から順に実行していくことにより、確保した判定領域２３４用のメモリ領域上に、ページ内の各文字列のビットマップ画像を描画していく（Ｓ４４）。すなわち、コマンドの実行の結果求められる判定領域２３４内の各位置の画素値を、メモリ領域内の当該位置に対応するアドレスに書き込んでいく。描画の対象となる文字列は、判定領域２３４の外の印刷可能範囲２１０内にも分布している（図７，図８参照）が、メモリ領域にドットを描画するのは、判定領域２３４内に位置するドットのみである。判定領域２３４の外に位置する部分については、コマンドの解釈は進めるが、メモリ上へのドットの描画は行わない。そして、すべてのコマンドの実行後に、判定領域２３４（に対応するメモリ領域）内の各画素の値を調べ、その中に印刷ドット（すなわち白でない画素）が存在するかどうかを判定する（Ｓ４６）。判定領域２３４内に印刷ドットが存在すれば（Ｓ４６の判定結果がＹＥＳ）、境界判定部１０７は、印刷可能範囲２１０から外にはみ出る文字実体が存在すると判定し、異常との判定結果をページ出力部１０５に返す。異常との判定結果を受けたページ出力部１０５は、あらかじめ定められたエラー処理を実行する（Ｓ４８）。エラー処理は、例えば領域描画部１０６が生成した当該ページの画像形成コマンド群の印刷コンポーネント１０８への出力の停止、又はユーザに注意を促す警報の発報等が考えられる。
【００６８】
以上、本実施形態の境界判定部１０７の処理内容の一例を、印刷可能範囲２１０の右端の境界線２１２から外側（右側）へ文字列がはみ出るかどうかを判定する場合を例にとって説明した。印刷可能範囲２１０の左端、上端、下端の各境界線から外側に文字列がはみ出るかどうかを判定する場合も同様の処理を行えばよい。
【００６９】
例えば、上端の境界線から文字列がはみ出すか否かを判定するには、ページ内の文字列オブジェクトの中から外枠がその境界線より上にあるものを抽出し、抽出した各文字列オブジェクトを当該境界線の延びるｘ方向について特定の位置（例えばｘ座標がsx/2の位置）に移動させることでそれら文字列オブジェクトが重なるようにし、それら移動後の文字列オブジェクトをメモリ上に描画し、描画結果の中に上端の境界線より上に位置する印刷ドットが存在すれば、はみ出す文字列があると判定すればよい。この場合、上にはみ出すかどうかを判定する必要があるので、各オブジェクトの描画基準点の位置合わせ（Ｓ１２）は横方向について行う（例えば、描画基準点のｘ方向位置を、文字列の外枠の左端に揃えるなど）。また、外枠全体が上端の境界線より上に位置する文字列オブジェクトについては、Ｓ２６で外枠の下端がその境界線に一致するまで移動させてもよい。また、判定領域２３４の横幅はページ内の文字列オブジェクトの外枠の横幅の最大値とし、縦長はそれら文字列オブジェクトの高さ（by）の最大値の半分とすればよい。
【００７０】
以上では、横書きの文字列の場合を例にとったが、本実施形態の手法は縦書きの場合にも適用し得る。
【００７１】
以上の例では、１ページ分の文字列オブジェクトをあらかじめ定めた高さまで移動させてメモリ上に重ねて描画し、その重ねた描画の結果に基づきはみ出しを判定したが、重ねて描画した結果に基づき判定することは一例に過ぎない。この代わりに、１ページ内の文字列オブジェクトごとに、そのオブジェクトをあらかじめ定めた高さに移動させてメモリ上に描画し、描画結果の印刷ドットが印刷可能範囲からはみ出るかどうかを判定してもよい。この場合、印刷ドットがはみ出る文字列オブジェクトが見つかった時点で、エラー処理を行えばよい。
【００７２】
以上の例では、基準プリンタの印刷可能範囲２１０内から１ドット幅分でも外にはみ出れば異常（印字不良）と判定されるが、数ドット幅程度ならはみ出してもよいという場合もあり得る。そのような場合には、基準プリンタのハードウエア制約から決まる本来の印刷可能範囲２１０の境界線を、はみ出してもよい許容幅の画素数分だけ外側（右端の境界線２１２の場合は右側）にずらし、ずらした後の境界線に囲まれる範囲を印刷可能範囲として、上述と同様の処理を行えばよい。
【００７３】
また、以上の例では、文字列がはみ出すかどうかを判定する判定対象の印刷可能範囲２１０は基準プリンタの印刷可能範囲であったが、この代わりに印刷可能範囲２１０として印刷データを実際に印刷するプリンタ１６０の印刷可能範囲を用いてもよい。プリンタ１６０の印刷可能範囲から文字実体がはみ出す文字列は、プリンタ１６０で印刷した場合、一部分が欠けて印刷されることになる。基準プリンタではそれら文字列がすべて欠けることなく印刷されていたとすると、このような欠けを含む印刷結果は不良となる。したがって、プリンタ１６０の印刷可能範囲から文字実体がはみ出す文字列が存在するか否かを上述した手順で判定し、はみ出すと判定した場合にエラー処理を行うようにしてもよい。
【００７４】
また、判定対象の印刷可能範囲２１０を、プリンタのハードウエアに依存した範囲ではなく、クリップ領域等のような仮想的に設定される印刷範囲としてもよい。
【００７５】
また、文字列以外の画像オブジェクト（例えばグラフィックスやビットマップイメージ）のはみ出し判定にも、同様の処理が適用可能である。
【００７６】
以上に例示した印刷サーバ１００、又は印刷データ変換部１１０は、例えば、汎用のコンピュータにそれら各装置の持つ機能モジュールの処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、ＣＰＵ等のマイクロプロセッサ、ランダムアクセスメモリ（ＲＡＭ）およびリードオンリメモリ（ＲＯＭ）等のメモリ（一次記憶）、ＨＤＤ（ハードディスクドライブ）を制御するＨＤＤコントローラ、各種Ｉ／Ｏ（入出力）インタフェース、ローカル・エリア・ネットワークなどのネットワークとの接続のための制御を行うネットワークインタフェース等が、たとえばバスを介して接続された回路構成を有する。また、そのバスに対し、例えばＩ／Ｏインタフェース経由で、ＣＤやＤＶＤなどの可搬型ディスク記録媒体に対する読み取り及び／又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び／又は書き込みのためのメモリリーダライタ、などが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがＣＤやＤＶＤ等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。固定記憶装置に記憶されたプログラムがＲＡＭに読み出されＣＰＵ等のマイクロプロセッサにより実行されることにより、上に例示した機能モジュール群が実現される。
【符号の説明】
【００７７】
１００  印刷サーバ、１０１  受信部、１０２  プロセス制御部、１０３  解析部、１０４  出力制御部、１０５  ページ出力部、１０６  領域描画部、１０７  境界判定部、１０８  印刷コンポーネント、１１０  印刷データ変換部、１５０  上位ホスト、１６０  プリンタ、２００  用紙、２１０  印刷可能範囲、２１２  境界線、２２１〜２２８  文字列オブジェクト、２３２  印刷不可範囲、２３４  判定領域。
【図１】
0005527343.tif 000002
【図２】
0005527343.tif 000003
【図３】
0005527343.tif 000004
【図４】
0005527343.tif 000005
【図５】
0005527343.tif 000006
【図６】
0005527343.tif 000007
【図７】
0005527343.tif 000008
【図８】
0005527343.tif 000009
【図９】
0005527343.tif 000010
【図１０】
0005527343.tif 000011
【図１１】
0005527343.tif 000012
【図１２】
0005527343.tif 000013