(57)【要約】【課題】  アウトライン化された文字情報を印刷する際に、印刷可能な文字画像データへの変換処理を最小限に抑えることによって高速化を図る。【解決手段】    アウトライン文字データと文字コードとを対応付けた文字情報を含むＰＤＦファイルの印刷処理において、入力された文字情報にかかる文字コードに対応する文字画像データがキャッシュメモリに格納されているか否かを判定する（Ｓ１７０５）。格納されていなければ、当該文字コードに対応する文字画像データを生成してキャッシュメモリに格納し（Ｓ１７０６）、該文字画像データに基づく描画処理を行う（Ｓ１７０８）。格納されていれば、該格納された文字画像データに基づく描画処理を行う（Ｓ１７０７）。【選択図】  図１７
2007216434.tif 000002
【特許請求の範囲】
【請求項１】
アウトライン化されたアウトライン文字データと文字コードとを対応付けた文字情報を含む画像ファイルについて、該文字情報に対応する文字画像データを格納したキャッシュメモリを使用した印刷を行う印刷制御方法であって、
前記画像ファイルにおける文字情報を入力する入力ステップと、
該入力された文字情報が特定情報を含むか否かを判定する特定情報判定ステップと、
前記特定情報判定ステップにて前記文字情報が特定情報を含むと判定された場合に、該入力された文字情報にかかる文字コードに対応する文字画像データが、前記キャッシュメモリに格納されているか否かを判定するキャッシュ判定ステップと、
前記キャッシュ判定ステップにおいて前記文字画像データが前記キャッシュメモリに格納されていないと判定された場合に、前記文字情報にかかる文字コードに対応する文字画像データを生成する文字画像生成ステップと、
該生成された文字画像データを前記文字コードに対応付けて前記キャッシュメモリに格納するキャッシュ格納ステップと、
前記文字画像生成ステップで生成された文字画像データに基づく文字描画処理を行う第１の文字描画ステップと、
前記キャッシュ判定ステップにおいて前記文字画像データが前記キャッシュメモリに格納されていると判定された場合に、前記キャッシュメモリに格納された前記文字画像データに基づく文字描画処理を行う第２の文字描画ステップと、
を有することを特徴とする印刷制御方法。
【請求項２】
さらに、前記画像ファイルのファイルサイズが変更されているか否かを判定するサイズ判定ステップを有し、
該サイズ判定ステップにおいて前記ファイルサイズの変更がなかったと判定された場合に、前記第１または第２の文字描画ステップを実行することを特徴とする請求項１記載の印刷制御方法。
【請求項３】
さらに、前記入力ステップで入力された文字情報にかかるアウトライン文字データに基づくベクトル文字描画処理を行うベクトル描画ステップを有し、
前記サイズ判定ステップにおいて前記ファイルサイズの変更があったと判定された場合に、前記ベクトル描画ステップを実行することを特徴とする請求項２記載の印刷制御方法。
【請求項４】
さらに、前記入力ステップで入力された文字情報にかかるアウトライン文字データに基づくベクトル文字描画処理を行うベクトル描画ステップを有し、
前記特定情報判定ステップにて前記文字情報が特定情報を含まないと判定された場合に、前記ベクトル描画ステップを実行することを特徴とする請求項１記載の印刷制御方法。
【請求項５】
前記文字情報は、前記文字コードおよび文字色、文字サイズの情報からなる文字種情報を含み、
前記文字画像生成ステップにおいては、前記文字種情報に基づいて文字画像データを生成することを特徴とする請求項１乃至４のいずれかに記載の印刷制御方法。
【請求項６】
前記文字種情報は、前記文字情報に対応するコメント文として記載されることを特徴とする請求項５記載の印刷制御方法。
【請求項７】
前記文字種情報は、前記画像ファイルのメタデータとして記載されることを特徴とする請求項５または６記載の印刷制御方法。
【請求項８】
前記文字種情報はさらに、前記文字種情報の先頭を特定するためのキー文字列を含むことを特徴とする請求項５乃至７のいずれかに記載の印刷制御方法。
【請求項９】
前記入力ステップにおいては、ページ単位に含まれる複数の文字情報を入力し、
前記キャッシュ格納ステップにおいては、前記複数の文字情報に対応する文字画像データを前記キャッシュメモリに格納する
ことを特徴とする請求項１乃至８のいずれかに記載の印刷制御方法。
【請求項１０】
アウトライン化されたアウトライン文字データに対し、文字コードと文字画像データを対応付けた文字情報を含む画像ファイルの印刷を行う印刷制御方法であって、
前記画像ファイルにおける文字情報を入力する入力ステップと、
該入力された文字情報に対応する前記文字画像データが前記画像ファイル内に存在するか否かを判定する判定ステップと、
前記判定ステップにおいて前記文字画像データが前記画像ファイル内に存在すると判定された場合に、該文字画像データに基づく文字描画処理を行う第１の文字描画ステップと、
前記判定ステップにおいて前記文字画像データが前記画像ファイル内に存在しないと判定された場合に、前記入力ステップで入力された文字情報にかかるアウトライン文字データに基づくベクトル文字描画処理を行う第２の文字描画ステップと、
を有することを特徴とする印刷制御方法。
【請求項１１】
前記文字画像データは、前記画像ファイルのメタデータとして記載されることを特徴とする請求項１０記載の印刷制御方法。
【請求項１２】
前記文字画像データはビットマップデータであることを特徴とする請求項１乃至１１のいずれかに記載の印刷制御方法。
【請求項１３】
前記画像ファイルはＰＤＦ形式のファイルであることを特徴とする請求項１乃至１２のいずれかに記載の印刷制御方法。
【請求項１４】
アウトライン化されたアウトライン文字データと文字コードとを対応付けた文字情報を含む画像ファイルについて、該文字情報に対応する文字画像データを格納したキャッシュメモリを使用した印刷を行う印刷装置であって、
前記画像ファイルにおける文字情報を入力する入力手段と、
該入力された文字情報が特定情報を含む文字情報か否かを判定する特定情報判定手段と、
前記特定情報判定手段が前記文字情報が特定情報を含むと判定した場合に、該入力された文字情報にかかる文字コードに対応する文字画像データが、前記キャッシュメモリに格納されているか否かを判定するキャッシュ判定手段と、
前記キャッシュ判定手段において前記文字画像データが前記キャッシュメモリに格納されていないと判定された場合に、前記文字情報にかかる文字コードに対応する文字画像データを生成する文字画像生成手段と、
該生成された文字画像データを前記文字コードに対応付けて前記キャッシュメモリに格納するキャッシュ格納手段と、
前記文字画像生成手段で生成された文字画像データに基づく文字描画処理を行う文字描画手段と、を有し、
前記文字描画手段は、前記キャッシュ判定手段において前記文字画像データが前記キャッシュメモリに格納されていると判定された場合に、前記キャッシュメモリに格納された前記文字画像データに基づく文字描画処理を行うことを特徴とする印刷制御装置。
【請求項１５】
さらに、前記画像ファイルのファイルサイズが変更されているか否かを判定するサイズ判定手段を有し、
前記文字描画手段は、前記サイズ判定手段において前記ファイルサイズの変更があったと判定された場合に、前記アウトライン文字データに基づくベクトル文字描画処理を行うことを特徴とする請求項１４記載の印刷装置。
【請求項１６】
前記文字描画手段は、前記特定情報判定手段が前記文字情報が特定情報を含まないと判定した場合に、前記アウトライン文字データに基づくベクトル文字描画処理を行うことを特徴とする請求項１４または１５記載の印刷装置。
【請求項１７】
情報処理装置上で実行されることによって、該情報処理装置を請求項１乃至１３の何れかに記載された印刷制御方法を実行するように制御することを特徴とするプログラム。
【請求項１８】
請求項１７に記載されたプログラムが記録されたことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷装置および印刷制御方法に関し、特に、アウトライン化された文字データの印刷を行う印刷装置および印刷制御方法に関する。
【背景技術】
【０００２】
近年、環境問題がクローズアップされている中で、オフィス等におけるペーパーレス化が急速に進んでいる。そこで、従来からバインダ等で蓄積、保存された紙文書をスキャナで読み取ってＰＤＦ（ポータブルドキュメントフォーマット）に変換し、画像記憶装置（データベース）に蓄積、保存する文書管理システムが構築されている。
【０００３】
ＰＤＦとしては、文字情報をベクトルデータを用いてアウトライン化したものが知られている。このようなＰＤＦによれば、文字情報がアウトライン化されているため、修飾等の文字編集を容易に行うことができる（例えば、特許文献１参照）。
【特許文献１】特開２００５−１５７４４８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のＰＤＦにおいて、ベクトルデータを用いてアウトライン化された文字は、グラフィックとしてパスにより記載されている。したがって、該ＰＤＦファイルを印刷する際に、文字情報を印刷可能なビットマップに変換するための処理を一文字づつ行う必要があり、印刷処理に非常に時間がかかってしまうという問題があった。
【０００５】
本発明は上述した問題を解決するためになされたものであり、アウトライン化された文字情報について、文字描画処理に要する時間を短縮することによって印刷処理の高速化を実現する印刷装置および印刷制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するための一手法として、本発明の印刷制御方法は以下の構成を備える。
【０００７】
すなわち、アウトライン化されたアウトライン文字データと文字コードとを対応付けた文字情報を含む画像ファイルについて、該文字情報に対応する文字画像データを格納したキャッシュメモリを使用した印刷を行う印刷制御方法であって、前記画像ファイルにおける文字情報を入力する入力ステップと、該入力された文字情報が特定情報を含むか否かを判定する特定情報判定ステップと、前記特定情報判定ステップにて前記文字情報が特定情報を含むと判定された場合に、該入力された文字情報にかかる文字コードに対応する文字画像データが、前記キャッシュメモリに格納されているか否かを判定するキャッシュ判定ステップと、前記キャッシュ判定ステップにおいて前記文字画像データが前記キャッシュメモリに格納されていないと判定された場合に、前記文字情報にかかる文字コードに対応する文字画像データを生成する文字画像生成ステップと、該生成された文字画像データを前記文字コードに対応付けて前記キャッシュメモリに格納するキャッシュ格納ステップと、前記文字画像生成ステップで生成された文字画像データに基づく文字描画処理を行う第１の文字描画ステップと、前記キャッシュ判定ステップにおいて前記文字画像データが前記キャッシュメモリに格納されていると判定された場合に、前記キャッシュメモリに格納された前記文字画像データに基づく文字描画処理を行う第２の文字描画ステップと、を有することを特徴とする。
【０００８】
さらに、前記画像ファイルのファイルサイズが変更されているか否かを判定するサイズ判定ステップを有し、該サイズ判定ステップにおいて前記ファイルサイズの変更がなかったと判定された場合に、前記第１または第２の文字描画ステップを実行することを特徴とする。
【０００９】
さらに、前記入力ステップで入力された文字情報にかかるアウトライン文字データに基づくベクトル文字描画処理を行うベクトル描画ステップを有し、前記サイズ判定ステップにおいて前記ファイルサイズの変更があったと判定された場合に、前記ベクトル描画ステップを実行することを特徴とする。また、前記特定情報判定ステップにて前記文字情報が特定情報を含まないと判定された場合に、前記ベクトル描画ステップを実行することを特徴とする。
【発明の効果】
【００１０】
上記構成からなる本発明によれば、アウトライン化された文字情報についての文字描画処理に要する時間を短縮することによって、印刷処理の高速化が実現される。
【発明を実施するための最良の形態】
【００１１】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。なお、以下の各実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１２】
＜第１実施形態＞
●全体構成
図１Ａは、本実施形態の画像形成装置を構成として含んだ画像処理システムの構成例を示す図である。同図において、１０１が本実施形態の画像形成装置、１０２はクライアントＰＣであり、これらは互いにネットワークケーブル１０３を介して接続されている。
【００１３】
画像形成装置１０１は、本実施形態において紙文書を光学的に読み取って画像信号に変換する画像読み取り処理と、読み取った画像信号に対する画像処理の一部を担当する。処理後の画像信号はネットワークケーブル１０３を用いてクライアントＰＣ１０２に入力される。尚、クライアントＰＣ１０２としては一般的なパーソナルコンピュータでも実現可能であり、その内部に画像記憶部、画像処理部、表示部及び入力部を備える。また印刷処理時には、クライアントＰＣ１０２から印刷データが画像形成装置１０１に送信される。  図１Ｂは、画像形成装置１０１の概略構成を示すブロック図である。同図において、１１０はオートドキュメントフィーダ（ＡＤＦ）を含む画像読み取り部であり、束状或いは１枚の原稿画像を読み取ってイメージ情報を得る。具体的には、内部に備えた光源で原稿画像を照射し、その反射像をレンズで固体撮像素子上に結像することによって、ラスタ状の原稿読み取り信号を例えば６００ｄｐｉの密度のイメージ情報として得る。そして、通常の複写機能を用いる場合には、データ処理部１１５において、画像読み取り部１１０で読み取った画像信号に対して画像処理を施して記録信号へ変換し、形成部１１２に出力して記録用紙上に可視画像を形成する。なお、複数毎複写を行う場合には、記憶部１１１に一旦１ページ分の記憶データを保持した後、形成部１１２に順次出力する。なお、１１３は操作者による指示入力を受ける入力部、１１４はネットワークケーブル１０３を介したデータ通信を制御するネットワークインタフェースである。また、１１６はＬＣＤ等の表示部であり、現在の機能や装置状態等を表示する。入力部１１３と表示部１１６はタッチパネル等として一体化することも可能である。
【００１４】
●画像形成装置の詳細構成
以下、画像形成装置１０１の詳細構成について、図２および図３を用いて説明する。図２は画像形成装置１０１の断面図、図３は画像形成装置１０１における光学ユニット２１５の詳細構成を示すブロック図である。
【００１５】
図２において、２２７は画像形成装置１０１の本体であり、画像形成用の多値画像データを生成するプリンタコントローラ２０１と、該多値画像データに応じて記録媒体上に可視像を形成するプリンタエンジン２０３に大別される。以下、プリンタコントローラ２０１を単にコントローラ２０１、プリンタエンジン２０３を単にエンジン２０３と称する。すなわち、コントローラ２０１が図１Ｂに示す記憶部１１１およびデータ処理部１１５に相当し、エンジン２０３が画像読み取り部２１５および形成部１１２に相当する。なお、２２６はユーザによる操作のためのスイッチおよびＬＣＤ表示器等が配されている操作パネルであり、図１Ｂに示す入力部１１３および表示部１１６に相当する。
【００１６】
コントローラ２０１は、外部のクライアントＰＣ１０２から送られてくる、プリンタ言語で記述されたコードデータやイメージデータを受け、これらのデータに基づいて１ページ分のマゼンタ、シアン、イエロー、ブラックの多値画像データを生成する。エンジン２０３は、入力多値画像データに応じて変調したレーザビームを感光ドラム上に走査することによって潜像を形成し、これを記録紙に転写した後定着させるという、一連の電子写真プロセスによる記録を行う。
【００１７】
コントローラ２０１とエンジン２０３は、不図示のインタフェース信号線によって接続されている。インタフェース信号線を介して通信される主なインタフェース信号としては、／ＲＤＹ，／ＰＲＮＴ，／ＴＯＰ，／ＬＳＹＮＣ、ＶＤＯ７〜ＶＤＯ０、ＶＣＬＫがある。以下、これらのインタフェース信号について簡単に説明する。
【００１８】
／ＲＤＹ信号は、コントローラ２０１に対してエンジン２０３から送出される信号であって、エンジン２０３が後述する／ＰＲＮＴ信号を受ければいつでもプリント動作を開始または継続できる状態にあることを示す信号である。
【００１９】
／ＰＲＮＴ信号は、エンジン２０３に対してコントローラ２０１から送出される信号であって、プリント動作の開始または継続を指示する信号である。
【００２０】
／ＴＯＰ信号は、副走査（垂直走査）方向の同期信号であって、コントローラ２０１に対してエンジン２０３から送出される。
【００２１】
／ＬＳＹＮＣ信号は、主走査（水平走査）方向の同期信号であって、コントローラ２０１に対してエンジン２０３から送出される。
【００２２】
ＶＤＯ７〜ＶＤＯ０信号は、エンジン２０３に対してコントローラ２０１から送出される画像信号であって、ＶＤＯ７を最上位、ＶＤＯ０を最下位とする８ビットによって、エンジン２０３が印字すべき画像濃度情報を示す。エンジン２０３では、ＶＤＯ７〜ＶＤＯ０信号の示す値がＦＦＨであれば現像中のトナー色の最大濃度による印刷を行い、００Ｈであれば印刷しない。これらは、転送同期信号ＶＣＬＫに同期して送出される。
【００２３】
以下、エンジン２０３における動作を説明する。エンジン２０３は、コントローラ２０１から／ＰＲＮＴ信号を受け取ると、不図示の駆動手段により、感光ドラム２０４及び転写ドラム２０５を図中矢印方向に回転させる。続いて、ローラ帯電器２０６の帯電を開始し、感光ドラム２０４上の電位を所定の値に均一に帯電する。次に、給紙ローラ２０８によって、給紙カセット２０７から記録用紙２２５を転写ドラム２０５に給紙する。転写ドラム２０５は、中空の支持体上に誘電体シートを張ったものであり、感光ドラム２０４と同速で矢印方向に回転する。この転写ドラム２０５に記録用紙２２５が供給されると、転写ドラム２０５の支持体上に設けられたグリッパ２０９によって記録用紙２２５が保持され、吸着ローラ２１０及び吸着用帯電器２１１により記録用紙２２５を転写ドラム２０５に吸着させる。同時に、現像装置の支持体２１２を回転させて、支持体２１２に支持された４つの現像装置２１３Ｍ、２１３Ｃ、２１３Ｙ、２１３Ｂｋのうち、第１のトナーであるマゼンタのトナーが入った現像装置２１３Ｍを感光ドラム２０４に対向させる。なお、２１３Ｃはシアンのトナーが入った現像装置、２１３Ｙはイエローのトナーが入った現像装置、２１３Ｂｋはブラックのトナーが入った現像装置である。
【００２４】
一方、エンジン２０３は、転写ドラム２０４に吸着された記録用紙２２５の先端を検出器２１４によって検出し、所定のタイミングで垂直同期信号／ＴＯＰを発生してコントローラ２０１に送出する。するとコントローラ２０１は、印刷ページに対する最初の／ＴＯＰ信号を受け取ると、プリンタＲＡＭ内のページメモリに格納されている画像データのうち、第１の印刷色であるマゼンタのデータを所定のタイミングで読み出す。読み出された８ビットの画像データＤ７〜Ｄ０は、画像信号ＶＤＯ７〜ＶＤＯ０としてＶＣＬＫ信号に同期してエンジン２０３に送出される。
【００２５】
コントローラ２０１より出力されたＶＤＯ７〜ＶＤＯ０信号は、図３に示すようパルス幅変調回路３０１に入力され、レベルに応じたパルス幅（２５６段階）のレーザ駆動信号ＶＤＯとしてレーザドライバ３０２に送出される。後述する現像時において、レーザ駆動信号ＶＤＯのパルス幅に応じてトナーの付着量が調節でき、それにより、各色２５６階調の濃淡が再現される。
【００２６】
図３において、レーザ駆動信号ＶＤＯに応じて駆動されるレーザダイオード３０３からのレーザビーム２２４は、不図示のモータにより図中矢印方向に回転駆動される回転多面鏡３０４で偏向される。偏向されたレーザビーム２２４は光路上に配置された結像レンズ３０５を経て、感光ドラム２０４上を主走査方向に走査し、感光ドラム２０４上に潜像を形成する。このとき、ビームディテクタ３０６はレーザビーム２２４の走査開始点を検出し、この検出信号から主走査の画像書き出しタイミングを決定するための水平同期信号である／ＬＳＹＮＣ信号が生成される。以上説明した主走査の動作が繰り返されることにより、１ページ分のマゼンタの潜像が感光ドラム２０４上に形成されていく。
【００２７】
図２に戻り、感光ドラム２０４上に形成された潜像は上記マゼンタのトナーが入った現像装置２１３Ｍによって現像され、マゼンタのトナー像となる。このマゼンタのトナー像は、転写用帯電器２１６により、回転する転写ローラ２０５に吸着されている記録用紙２２５に転写される。この際、転写されずに感光ドラム２０４上に残ったトナーはクリーニング装置２２２によって除去される。以上の動作により、記録用紙２２５上に１ページ分のマゼンタのトナー像が形成される。
【００２８】
次に、現像装置の支持体２１２を回転させて、第２のトナーであるシアンのトナーが入った現像装置２１３Ｃを感光ドラム２０４に対向させる。続いて、マゼンタのときと同様に、転写ローラ２０５に吸着されたまま回転する記録用紙２２５の先端を検出器２１４で検出し、垂直同期信号／ＴＯＰを発生してコントローラ２０１に送出する。これを受けてコントローラ２０１はページメモリからシアンのデータを読み出す。以下、同様の動作により、記録用紙２２５上にはマゼンタのトナー像に重ねてシアンのトナー像が転写される。更に、同様にして第３のトナーであるイエロー、第４のトナーであるブラックのトナー像が記録用紙２２５上に重ねて転写され、フルカラーのトナー像となる。
【００２９】
上記４色のトナー像が全て転写された記録用紙２２５は、分離帯電器２１７を経て、分離爪２１８によって転写ドラム２０５から剥がされ、搬送手段２１９により定着装置２２０に供給される。また、このとき、転写ドラムクリーナ２２３によって転写ドラム２０５表面の清掃が行なわれる。記録用紙上のトナー像は定着装置２２０で加熱、加圧されることによって熔融固着され、最終的なカラー出力画像となる。そして記録の終了した記録用紙は排紙トレイ２２１に排紙される。
【００３０】
以下、コントローラ２０１の構成について詳細に説明する。図４は、画像形成装置１０１におけるコントローラ２０１の機能構成を示すブロック図である。
【００３１】
同図において、４０２は、画像形成装置１０１内の受信バッファであり、クライアントＰＣ１０２より受信したコマンド及びデータ等を一時的に蓄える。
【００３２】
４０３はＲＯＭであり、後述する図５のフローチャートに示す一連の制御を実現するためのプログラムや内蔵フォント等が格納されている。例えば、４０４はコマンド制御部である。４０５は中間データオブジェクト作成部であり、描画処理を行い、ＲＡＭ４１６上にあるＰＤＬデータメモリ４１７に格納されているＰＤＬデータに基づいて中間データオブジェクトを作成し、中間データオブジェクトメモリ４１８に格納する。４０６はレンダリングデータ作成部であり、ＲＡＭ４１６上にある中間データオブジェクトメモリ４１８に格納されている中間データオブジェクトをバンド単位でレンダリングデータ（ビットマップデータ）に変換し、レンダリングバンドメモリ４２０に格納する。４０７はスキャナ画像処理部であり、スキャナ部４３０から入力された画像データの処理を行う。４０８はＰＤＦ解析部であり、スキャナ画像データが変換されたＰＤＦを解析し、文字情報のビットマップ情報を生成する。また、４０９はＰＤＦ作成部であり、スキャナ画像データをＰＤＦに変換する。なお、これらＰＤＦ変換および解析処理の詳細については後述する。
【００３３】
またＲＯＭ４０３において、４１０は画像回転圧伸部であり、スキャナ画像、プリント画像を回転、圧縮、伸張し、ＲＡＭ４１６上の画像回転メモリ４２２または画像圧縮メモリ４２３に格納する。４１１はＰＤＦファイルサイズ判定部であり、ＰＤＦファイルをクライアントＰＣ１０２で開く前後においてファイルサイズに変化があるか否かを判定する。これは、後述する文字キャッシュが利用可能であるか否かを判定するためである。また、４１２はネットワーク制御部、４１３はパネルインタフェース制御部、４１４はデバイスインタフェース制御部である。
【００３４】
４１５は、コントローラ２０１の全体を統括的に制御するＣＰＵである。
【００３５】
４１６はＲＡＭであり、以下のデータを一時的に格納するデータメモリとして動作する。例えば、４１７はＰＤＬデータメモリであり、コマンド解析部４０４での解析対象となるＰＤＬデータを格納する。４１８は中間データオブジェクトメモリであり、ＰＤＬデータメモリ４１７に格納されているＰＤＬデータから中間データオブジェクト作成部４０５により作成された中間データオブジェクトを格納する。４１９はレンダリングバンドメモリであり、中間データオブジェクトメモリ４１８に格納されている中間オブジェクトからレンダリングデータ作成部４０６により作成されたレンダリングオブジェクトを格納する。４２０はレンダリングデータメモリであり、１ページ分のレンダリングデータを格納する。
【００３６】
４２１は文字キャッシュメモリであり、ＰＤＦ作成部４０９での文字認識処理によって認識された文字情報の文字種をもとに、ＰＤＦ解析部４０８で作成されたビットマップ情報を格納する。４２２は画像回転メモリであり、画像回転圧伸部４１０により回転された画像オブジェクトを格納する。４２３は画像圧縮メモリであり、画像回転圧伸部４１０により圧縮された画像オブジェクトを格納する。４２４はＰＤＦファイルサイズ一部格納メモリであり、ＰＤＦファイルをクライアントＰＣ１０２で開く前後におけるファイルサイズの変化を判定する際に使用される一時的なメモリである。
【００３７】
４２５は、レンダリングデータメモリ４２０にあるレンダリングデータをエンジン２０３に転送するエンジン転送部である。４２６は、操作パネル２２６とのインタフェースを行うパネルインタフェース部である。４２７は、スキャナ部１１０とのインタフェースを行うデバイスインタフェース部である。また４３１は、画像形成装置１０１内の記憶部１１１として使用されるＨＤＤであり、例えばＰＤＦ作成部４０９で作成されたＰＤＦファイルはここに記憶される。
【００３８】
●ＰＤＦ作成処理
以下、ＰＤＦ作成部４０９におけるＰＤＦデータの作成処理について説明する。
【００３９】
本実施形態では、画像読み取り部１１０で読み取った画像データにおいて、含まれる文字情報をベクトルデータに変換し、ＰＤＦデータとして出力する。
【００４０】
図５は、画像形成装置１０１のＰＤＦ作成部４０９におけるＰＤＦデータ作成処理を示すフローチャートである。まず、画像形成装置１０１の画像読み取り部１１０を動作させて１枚の原稿をラスタ走査し、例えば、６００ｄｐｉ、８ビットの画像信号を得る（ステップＳ５０１）。尚、当該画像信号は、データ処理部１１５で前処理が施された後、記憶部１１１に１ページ分の画像データとして保存される。
【００４１】
次に、記憶装置１１１に格納された画像信号から、まず文字／線画部分とハーフトーンの画像部分とに領域を分離し、それぞれオブジェクト毎に分割するブロックセレクション（ＢＳ）処理を行う。すなわち、文字部分についてはさらに段落で塊として纏まっているブロック毎に、或いは、線で構成された表、図形に分離し、各々セグメント化する。一方、ハーフトーンで表現される画像部分については、矩形に分離されたブロックの画像部分、背景部等のいわゆるブロック毎に独立したオブジェクトに分割する（ステップＳ５０２）。なお、このＢＳ処理の詳細については、図７を用いて後述する。
【００４２】
続いて、分割したオブジェクトをベクトル化する（ステップＳ５０３）。ここでラスタイメージデータからベクトルデータへの変換処理を行うことにより、文字としての編集が容易なアウトラインデータが生成される。このベクトル化処理の詳細については、図６を用いて後述する。
【００４３】
そして、各文字ブロックに対してベクトル化処理を行った後、さらに文書のレイアウト情報を活用して、文字以外のオブジェクトと合成することによりＰＤＦファイルへの変換処理を行う（ステップＳ５０４）。
【００４４】
●ブロックセレクション（ＢＳ）処理（Ｓ５０２）
以下、ステップＳ５０２におけるＢＳ処理について詳細に説明する。図７は、ＢＳ処理によって、１枚のイメージデータの属性を判定して複数のブロックに分割した様子を示す図であり、７１が分割前のイメージデータ、７２がそのブロック分割後の様子である。すなわちＢＳ処理とは、ステップＳ５０１で読み取った一頁のイメージデータ７１を、７２に示すようにオブジェクト毎の塊として認識し、それぞれを属性毎のブロックに分割する処理である。ここでブロックの属性としては、文字（Ｔｅｘｔ）、写真（Ｐｈｏｔｏ）、線（Ｌｉｎｅ）、表（Ｔａｂｌｅ）等に判定される。
【００４５】
ここで、ＢＳ処理をより具体的に説明する。まず、入力画像を白黒に２値化し、輪郭線追跡を行って黒画素輪郭で囲まれる画素の塊を抽出する。そして、面積の大きい黒画素の塊については、内部にある白画素に対して同様に輪郭線追跡を行って白画素の塊を抽出する。さらに、一定面積以上の白画素の塊の内部からも再帰的に黒画素の塊を抽出する。このようにして得られた黒画素の塊を、大きさ及び形状等で分類し、異なる属性を持つ領域へ分類する。例えば、縦横比が１に近く、大きさが一定の範囲のものを文字相当の画素塊とし、さらに近接する文字が整列良くグループ化可能な部分を文字領域とする。また、扁平な画素塊を線領域、一定の大きさ以上でかつ四角系の白画素塊を整列よく内包する黒画素塊の占める範囲を表領域、不定形の画素塊が散在している領域を写真領域、それ以外の任意形状の画素塊を図画領域等とする。尚、以上説明した具体例は、白地に黒字等で記載されている原稿の場合の処理であって、それ以外の場合も背景色とオブジェクト色を調整することによって、同様に処理できる。例えば、黒字に白色で記載されている原稿であれば、背景に相当する色を「白」、オブジェクトに相当する色を「黒」とすれば良い。
【００４６】
●ベクトル化処理（Ｓ５０３）
以下、ステップＳ５０３におけるベクトル化処理について詳細に説明する。図６は、本実施形態におけるベクトル化処理の詳細を示すフローチャートである。まず、ステップＳ５０２で分割されたブロックのうち、先頭（画像の左上原点）に位置するブロックを入力する（Ｓ６０１）。次いで、入力されたブロックがテキストブロックであるか否かを判定する（Ｓ６０２）。当該ブロックがテキストブロックであれば、ＯＣＲ処理すなわち文字認識処理を行って（Ｓ６０４）、当該ブロックの先頭（左上原点）に位置する文字矩形に制御を移す（Ｓ６０５）。なお、この文字認識処理の詳細については後述する。次に、該当する文字矩形が存在するか否かを確認し（Ｓ６０６）、文字矩形が存在する場合には、当該文字矩形に対応する文字コードを読み出す（Ｓ６０７）。続いて、フォント認識／ベクトル化処理を行って、フォントデータの登録を行う（Ｓ６０８）。この文字フォントのベクトル化処理の詳細については後述する。そして、次の文字矩形に制御を移行し（Ｓ６０９）、ステップＳ６０６以降の処理を次の文字矩形に対して行う。
【００４７】
ステップＳ６０６において、文字矩形が存在しないと判定された場合、すなわち当該テキストブロック内の文字矩形全てに対して上記処理が終了した場合は、次のブロックに制御を移行する（Ｓ６１０）。そして、移行した次のブロックが存在するか否かを判断し（Ｓ６１１）、まだ存在する場合には、再び当該ブロックがテキストブロックであるか否かを判定する（Ｓ６０２）。
【００４８】
ステップＳ６０２において、テキストブロックではないと判断された場合は、所定のベクトル化処理を行って（Ｓ６０３）、次のブロックに制御を移行する（Ｓ６１０）。
【００４９】
そして、ステップＳ６１１でブロックが存在しない場合には、すべてのブロックの処理を終了したと判断し、本ベクトル化処理を終了する。ベクトル化処理によって得たベクトルデータは、文字コード、文字の色、文字サイズ等の情報と関連付けられて、記憶部１１１に記憶される。
【００５０】
●文字認識処理（Ｓ６０４）
以下、ステップＳ６０４における文字認識処理について説明する。本実施形態では、文字単位で切り出された画像に対し、パターンマッチングの一手法を用いて文字認識を行い、対応する文字コードを得る。この文字認識処理は、文字画像から得られる特徴を数十次元の数値列に変換した観測特徴ベクトルと、予め字種毎に求められている辞書特徴ベクトルとを比較し、最も距離の近い字種を認識結果とする処理である。尚、特徴ベクトルの抽出には種々の周知の手法があり、例えば、文字をメッシュ状に分割し、各メッシュ内の文字線を方向別に線素としてカウントしたメッシュ数次元ベクトルを特徴とする方法を用いることができる。
【００５１】
ステップＳ５０２のＢＳ処理で抽出された文字領域に対して文字認識を行う場合、まず該当領域に対して横書き、縦書きの判定を行い、各々対応する方向に行を切り出し、その後文字を切り出して文字画像を得る。横書き、縦書きの判定は、該当領域内で画素値に対する水平／垂直の射影を取り、水平射影の分散が大きい場合は横書き領域、垂直射影の分散が大きい場合は縦書き領域と判断すればよい。また、文字列及び文字への分解は、横書きの場合は水平方向の射影を利用して行を切り出し、さらに切り出された行に対する垂直方向の射影から、文字を切り出す。一方、縦書きの文字領域に対しては、水平と垂直を逆にすればよい。尚、文字のサイズは切り出した大きさに基づいて検出することができる。
【００５２】
●文字フォントのベクトル化処理（Ｓ６０８）
以下、ステップＳ６０８における文字フォントのベクトル化処理について詳細に説明する。
【００５３】
本実施形態においては、文字認識の際に用いられる字種数分の辞書特徴ベクトルを、文字形状種、すなわちフォント種に対して複数用意しておく。そして、マッチングの際に文字コードとともにフォント種を出力することによって、文字のフォントを認識することができる。
【００５４】
そして、上述した文字認識処理によって得られた文字コード及びフォント情報に基づき、各々あらかじめ用意されたアウトラインデータを用いて、文字部分の情報をベクトルデータに変換する。尚、入力された原稿画像がカラーの場合は、カラー画像から各文字の色を抽出してベクトルデータとともに記録する。これにより、文字ブロックに属するイメージ情報をほぼ形状、大きさ、色が忠実なベクトルデータに変換することができる。
【００５５】
●文字以外のベクトル化処理（Ｓ６０３）
以下、ステップＳ６０３における文字以外のベクトル化処理について、詳細に説明する。
【００５６】
ステップＳ６０３では、ステップＳ５０２のＢＳ処理において文字以外の領域、すなわち図画或いは線、表領域とされた領域を対象として、それぞれ抽出された画素塊の輪郭をベクトルデータに変換する。具体的には、輪郭を成す画素の点列を角とみなされる点で区切って、各区間を部分的な直線或いは曲線で近似する。ここで「角」とは、曲率が極大となる点である。
【００５７】
図８を用いて、輪郭における「角」の抽出について説明する。同図に示すように、任意点Ｐiに対して左右ｋ個の離れた点Ｐi-k〜Ｐi+kの間に弦を引く。この弦とＰiの距離が極大となる点が「角」として求められる。さらに、Ｐi-k〜Ｐi+k間の「弦の長さ」／「弧の長さ」をＲとし、Ｒの値が閾値以下である点を角とみなすことができる。
【００５８】
角によって分割された後の各区間は、直線は点列に対する最小二乗法等を用いて、曲線は３次スプライン関数等を用いてベクトル化することができる。また、対象が内輪郭を持つ場合、ＢＳ処理で抽出した白画素輪郭の点列を用いて、同様に部分的直線或いは曲線で近似する。
【００５９】
以上のように本実施形態では、輪郭の区分線近似を用いることによって、任意形状の図形のアウトラインをベクトル化することができる。
【００６０】
ここで図９を用いて、外輪郭が内輪郭又は別の外輪郭と近接している場合に、太さを持った線として表現する例について説明する。図９に示すように、ある区間で外輪郭が、内輪郭又は別の外輪郭と近接している場合、２つの輪郭線をひとまとめにして、太さを持った線として表現することができる。具体的には、ある輪郭の各点Ｐiから別輪郭上で最短距離となる点Ｑiまで線を引く。各距離ＰＱiが平均的に一定長以下の場合、注目区間はＰＱiの中点を点列として直線又は曲線で近似し、その太さをＰＱiの平均値とする。線や線の集合体である表罫線は、このような太さを持つ線の集合として、効率よくベクトル表現することができる。
【００６１】
尚、上述したステップＳ６０８における、文字ブロックに対する文字認識処理を用いたベクトル化については上述したように、文字認識処理の結果、辞書からの距離が最も近い文字を認識結果として用いている。ここで、この距離が所定値以上である場合には、必ずしも本来の文字に一致するとは限らず、形状が類似する文字の誤認識である場合が多い。従って本実施形態ではこのような文字に対しては、ステップＳ６０３で説明した一般的な線画と同様に扱って、当該文字をアウトライン化する。これにより、従来であれば文字認識処理によって誤認識を発生させていたような文字も、誤った文字にベクトル化されることなく、可視的なイメージデータとして忠実にアウトライン化され、ベクトル化することができる。
【００６２】
なお、写真領域と判定されたブロックに対しては、本実施形態ではベクトル化を行わず、イメージデータのままとする。
【００６３】
●ＰＤＦファイルへの変換処理（Ｓ５０４）
以下、ステップＳ５０４におけるＰＤＦファイル変換処理について、詳細に説明する。
【００６４】
まず図１０に、１ページ分のイメージデータについて、ステップＳ５０２のＢＳ処理およびステップＳ５０３のベクトル化処理を施した結果として得られる中間データ形式のファイルのデータ構造を示す。同図に示すようなデータ形式は、ドキュメント・アナリシス・アウトプット・フォーマット（ＤＡＯＦ）と呼ばれる。すなわち図１０は、ＤＡＯＦのデータ構造を示す図である。
【００６５】
図１０において、１００１はＨｅａｄｅｒ（ヘッダ）であり、処理対象の文書画像データに関する情報が保持される。１００２はレイアウト記述データ部であり、文書画像データ中の各ブロックの属性情報とその矩形アドレス情報を保持する。ここで属性情報としては、ＴＥＸＴ（文字）、ＴＩＴＬＥ（タイトル）、ＣＡＰＴＩＯＮ（キャプション）、ＬＩＮＥＡＲＴ（線画）、ＰＩＣＴＵＲＥ（自然画）、ＦＲＡＭＥ（枠）、ＴＡＢＬＥ（表）等がある。１００３は文字認識記述データ部であり、ＴＥＸＴ、ＴＩＴＬＥ、ＣＡＰＴＩＯＮ等のＴＥＸＴブロックを文字認識して得られる文字認識結果を文字コードとして保持する。１００４は表記述データ部であり、ＴＡＢＬＥブロックの構造の詳細を格納する。１００５は画像記述データ部であり、ＰＩＣＴＵＲＥやＬＩＮＥＡＲＴ等のブロックのイメージデータを文書画像データから切り出して保持する。
【００６６】
ステップＳ５０４においてはすなわち、図１０に示すＤＡＯＦのイメージデータを、ＰＤＦに変換する。以下、このＰＤＦ変換処理の詳細について、図１１のフローチャートを用いて説明する。
【００６７】
まず、変換対象となるＤＡＯＦデータを入力する（Ｓ１１０１）。そして、ＰＦＤデータの元となる文書構造ツリーを生成し（Ｓ１１０２）、該文書構造ツリーに基づいてＤＡＯＦ内の実データを流し込み、実際のＰＤＦファイルを生成する（Ｓ１１０３）。
【００６８】
ここで、ステップＳ１１０２における文書構造ツリーの生成処理について、図１２および図１３Ａ，図１３Ｂを用いて詳細に説明する。図１２は文書構造ツリー生成処理を示すフローチャートであり、図１３Ａおよび図１３Ｂは文書構造ツリーの概要を示す図である。尚、全体制御の基本ルールとして、処理の流れはミクロブロック（単一ブロック）からマクロブロック（ブロックの集合体）へ移行するものとする。また、以後の説明においてブロックとは、ミクロブロック及びマクロブロックの総称とする。
【００６９】
まず、ブロック単位で縦方向の関連性に基づいて再グループ化する（Ｓ１２０１）。尚、スタート直後はミクロブロック単位での判定となる。ここで関連性とは、距離が近く、ブロック幅（横方向の場合は高さ）がほぼ同一であること、等として定義することができる。また、距離、幅、高さ等の情報は、ＤＡＯＦを参照して抽出する。
【００７０】
図１３Ａは実際のページ構成を示し、図１３Ｂは図１３Ａのページ構成における文書構造ツリーを示している。ステップＳ１２０１におけるグループ化の結果、Ｔ３，Ｔ４，Ｔ５が一つのグループＶ１として、Ｔ６，Ｔ７が一つのグループＶ２として、それぞれ同じ階層のグループとして生成される。
【００７１】
次に、縦方向のセパレータの有無をチェックし、セパレータを検出した場合は、同じ階層での再分割を行う（Ｓ１２０２）。ここでセパレータとは例えば、物理的にはＤＡＯＦ中でライン属性を持つオブジェクトである。また、論理的な意味としては、データ中で明示的にブロックを分割する要素である。
【００７２】
次いで、さらなる分割が存在するか否か、すなわち分割終了であるか否かを、グループ長を利用して判定する（Ｓ１２０３）。この判定は例えば、縦方向のグルーピング長がページ高さに等しいか否かを判定すれば良い。すなわち、縦方向のグループ長がページ高さとなっている場合は、縦方向の分割はこれ以上存在しないとみなし、文書構造ツリー生成を終了する。図１３Ａに示すページ構成の場合は、セパレータもなく、グループ高さはページ高さに等しくないので、ステップＳ１２０４に進む。
【００７３】
ステップＳ１２０４では、ブロック単位で横方向の関連性に基づいて再グループ化する。但し、この再グループ化においてもスタート直後の第一回目は、ミクロブロック単位での判定を行うことになる。また、関連性及びその判定情報の定義は、縦方向の場合と同様じである。例えば、図１３Ａに示すページ構成の場合は、図１３Ｂに示すようにＴ１とＴ２でＨ１、Ｖ１とＶ２でＨ２が生成され、Ｈ１はＴ１，Ｔ２の一つ上、Ｈ２はＶ１，Ｖ２の１つ上の同階層のグループとして生成される。
【００７４】
次いで、横方向のセパレータの有無をチェックする（Ｓ１２０５）。図１３Ａ，Ｂに示す例では、横方向のセパレータとしてＳ１が検出されるので、これをツリーに登録し、Ｈ１、Ｓ１、Ｈ２という階層が生成される。
【００７５】
そして、さらなる分割が存在するか否か、すなわち分割終了であるか否かを、グループ長を利用して判定する（Ｓ１２０６）。この判定は例えば、横方向のグルーピング長がページ幅に等しいか否かを判定すれば良い。すなわち、横方向のグループ長がページ幅となっている場合は、横方向の分割はこれ以上存在しないとみなし、文書構造ツリー生成を終了する。
【００７６】
一方、ステップＳ１２０６において横方向のグループ長がページ幅となっていない場合、すなわち横方向のさらなる分割が存在する場合には、ステップＳ１２０２に戻り、もう一段上の階層で、縦方向の関連性チェックから処理を繰り返す。
【００７７】
図１３Ａ、Ｂに示す例においては、横方向の分割幅がページ幅になっているので、ここで処理を終了し、最後にページ全体を表す最上位階層のＶ０が、文書構造ツリーに付加される。
【００７８】
以下、文書構造ツリーに基づいてステップＳ１１０３で行われるＰＤＦファイルの生成について、その具体例を示す。例えば図１４Ａに示すページ構成の場合は、その文書構造ツリーが図１４Ｂに示すように生成される。この場合に生成されるＰＤＦファイルをテキスト表示すると、図１５に示すようになる。なお図１５に示すＰＦＤ例において、ｓｔｒｅａｍ部分については記述を省略している。また、ＰＤＦのファイルフォーマットについては周知であるため、ここでは詳細な説明を省略する。
【００７９】
図１５に示す例では、図１４ＡにおけるＩｍａｇｅ１４０２についてはベクトル化せずに、１５０１に示すＸｏｂｊｅｃｔのＯｂｊ１として出力している。また、図１４ＡにおけるＴｅｘｔ１４０１についてはベクトル化を行い、１５０２に示すＣｏｎｔｅｎｔｓに記述している。なお、１５０３は当該ファイルについての管理情報を記述したメタデータ部である。
【００８０】
図１６に、ベクトル化したＴｅｘｔ１４０１の出力例、すなわち、図１５において１５０２で示されるＣｏｎｔｅｎｔｓの記述例を示す。同図において、１６０１、１６０２、１６０３がそれぞれ、Ｔｅｘｔ１４０１の文字「Ｆ」１４０３、「Ｅ」１４０４、「Ｆ」１４０５に相当する。
【００８１】
図１６から分かるように本実施形態のＰＤＦ記述においては、文字毎に一意のコメント文（例えば１６０４）が、該文字を示す各行に付加されており、このコメント文中に、文字認識の際に取得した情報を含むことを特徴とする。
【００８２】
例えばコメント文１６０４において、１６０５は印刷時に参照される任意の文字列であり、以下、これをキー文字列と称する。そして、キー文字列１６０５に続いてキー情報（１６０６〜１６０９）が記載される。キー情報において、１６０６は、文字「Ｆ」１４０３の文字コード「０３１Ｂ」である。１６０７は、文字「Ｆ」１４０３の色のＲＧＢ表記であり、（Ｒ、Ｇ、Ｂ）＝（００ｈ、００ｈ、００ｈ）つまり黒色を示している。１６０８は文字「Ｆ」１４０３のポイント数であり、「６０」ポイントを示す。１６０９は文字「Ｆ」１４０３のベクトル情報から一意に計算されるパリティ符号である。
【００８３】
なお、文字「Ｆ」１４０３と文字「Ｆ」１４０５については、色、ポイント数等が全て同じであるため、図１６に示すベクトル化した情報１６０１と１６０３では、その内容が全く同様となる。
【００８４】
以上説明したように本実施形態のＰＤＦ作成部４０９においては、上述した処理によってＰＤＦファイルを作成し、例えばＨＤＤ４３１（記憶部１１１）に格納する。
【００８５】
●印刷処理
本実施形態においては、以上説明した処理によって作成されたＰＤＦファイルを、形成部１１２において高速印刷することを特徴とする。以下、本実施形態において作成されたＰＤＦファイルの印刷処理について、図１７のフローチャートを用いて詳細に説明する。本実施形態の印刷処理においては、ＰＤＦファイル内にコメントとして記載されたキー情報に基づいて文字キャッシュを作成し、これを用いた文字描画処理を行うことを特徴とする。
【００８６】
本実施形態のＰＤＦファイルは、上述したようにキー情報を伴って作成され、ＨＤＤ４３１に格納されている。このＰＤＦファイルの印刷処理としては、クライアントＰＣ１０２が該ファイルを読み出し、任意の画像処理を施した後に、画像形成装置１０１に対する印刷指示を行う場合が考えられる。このとき、ＰＤＦファイルのサイズが変更されていると、それに伴ってファイル内の文字サイズも変更されていると考えられるため、本実施形態における効率的な印刷処理が不可能となってしまう。すなわち、ファイルサイズ変更に伴い、キー文字列以下にキー情報として記載されたサイズ情報（ポイント数１６０８）が不適当となるため、新たな文字キャッシュの作成が不可能となる。また、既に文字キャッシュメモリ４２１に格納されている文字キャッシュについても、そのサイズが異なるため使用不可能となる。
【００８７】
そこで本実施形態ではまず、クライアントＰＣ１０２から印刷指示されたＰＤＦファイルについての描画コマンドを解析し（Ｓ１７０１）、当該ＰＤＦファイルのサイズがその作成時と比較して変更されているか否かを調べる（Ｓ１７０２）。このサイズ変更の確認は、ＰＤＦファイルサイズ判定部４１１において、ＰＤＦファイルサイズ一部格納メモリ４２４を参照することによって行われる。すなわち、ＰＤＦファイルサイズ判定部４１１が、ＰＤＦファイルがクライアントＰＣ１０２に読み出された際にＰＤＦファイルサイズ一部格納メモリ４２４に格納されたファイルサイズを、現在のファイルサイズと比較することによって、変更の有無を判定する。なお、ここでの判定結果をＲＯＭ等に保持しておくことによって、次以降のコマンド処理の際には同様の判定処理を繰り替えし行うことなく、保持された判定結果を参照することができる。
【００８８】
なお、ここでＰＤＦファイルサイズ判定部４１１においてファイルサイズの変更が無いと判定された場合においても、さらに文字単位に、パリティ符号１６０９に基づくパリティチェックを行うことが有効である。これはすなわち、たとえ全体としてのファイルサイズに変化がなくても、各文字のパリティチェック結果がパリティ符号１６０９に一致しなければ、当該文字に対して何らかの変更が加えられたと判断されるためである。なお、パリティチェックにより変更が検出された場合には、ファイルサイズが変更された場合と同様の処理を行うべきである。
【００８９】
ステップＳ１７０２においてＰＤＦファイルのサイズが変更されていないと判断されれば、ＰＤＦ解析部４０８において、コメントにキー文字列（この場合「%%Ganon PDF」）が含まれているか否かを調べる（Ｓ１７０３）。これにより、当該ＰＤＦファイルが本実施形態で作成されたものであるか、すなわち、キー文字列以下に記載されるキー情報が存在するか否かを確認することができる。
【００９０】
コメントにキー文字列が含まれている場合、ＰＤＦ解析部４０８はさらに該キー文字列以下に記載されたキー情報を解析し（Ｓ１７０４）、該キー情報が初めて出現したキー情報であるか否かを調べる（Ｓ１７０５）。具体的には、該キー情報を既に出現したキー情報群内で検索すれば良い。なお、このキー情報の検索は、キー情報内の文字コード（例えば１４０３）に限定して行っても良い。すなわちステップＳ１７０５においては、該文字コードに対応する文字キャッシュが、文字キャッシュメモリ４２１内に既に存在しているか否かを判定できれば良い。したがって、文字コードをキーとして文字キャッシュメモリ４２１を検索しても良い。この場合、文字キャッシュメモリ４２１内に対応する文字コードが存在しなければ、該文字コードは初めて出現したものであると判断される。
【００９１】
初めて出現したキー情報であれば、ＰＤＦ解析部４０８は該キー情報に基づいて該当する文字種に対応したビットマップを作成し、これを文字キャッシュとして、文字コードと対応付けて文字キャッシュメモリ４２１に格納する（Ｓ１７０６）。すなわち、キー情報内に記載された文字コード１６０６、文字色１６０７、文字ポイント数１６０８に基づいて文字種を決定し、該文字種のビットマップが文字キャッシュとして作成される。このとき、文字認識処理において使用された各種辞書が参照される。そして、作成された文字キャッシュを使用して文字描画処理を行う（Ｓ１７０８）。
【００９２】
一方、ステップＳ１７０５で初めて出現したキー情報でないと判断された場合には、そのままステップＳ１７０７に進む。そこで、既に文字キャッシュメモリ４２１に格納されている、当該文字の文字キャッシュを読み出し、該文字キャッシュを使用した文字描画処理を行う。すなわちこの場合、文字キャッシュの作成は行わない。ここでの文字キャッシュの読み出しは上述したように、文字コードをキーとして行えば良い。
【００９３】
なお、ステップＳ１７０２でＰＤＦのファイルサイズに変更があった場合、または、ステップＳ１７０３でコメントにキー文字列が含まれていない場合には、ステップＳ１７０９で一般的なベクトル文字描画処理を行う。すなわちこの場合、キー情報の解析および文字キャッシュの作成／利用を行わない。これにより本実施形態においては、なんらかの原因により文字キャッシュの利用が不可能となった場合にも、通常のベクトル変換処理を可能とするため、印刷不可能となることはない。
【００９４】
ステップＳ１７０７、Ｓ１７０８の文字キャッシュを使用した文字描画処理、またはステップＳ１７０９のベクトル文字描画処理が終了すると、全てのコマンド解析が終了したか否かを調べる（Ｓ１７１０）。終了していなければステップＳ１７０１に戻ってコマンド解析を続ける。なお、図１７のフローチャートに示す一連の処理はページ単位に実行され、すなわち文字キャッシュメモリ４２１には、ページ内に出現する複数文字についての文字キャッシュが格納される。
【００９５】
以上説明したように本実施形態によれば、ＰＤＦファイル内に文字情報をコメントとして付加しておくことにより、印刷時に当該文字のキャッシュを作成することができる。したがって、ＰＤＦファイルを印刷する際に、新出の文字については文字キャッシュを作成してこれに基づく文字描画処理を行い、既出の文字については該文字キャッシュを利用した文字描画処理を行うことにより、印刷処理を高速化することができる。
【００９６】
＜第２実施形態＞
以下、本発明に係る第２実施形態について説明する。なお、第２実施形態における画像形成装置の構成は上述した第１実施形態に示す画像形成装置１０１とほぼ同様であるため、以下では特に第１実施形態と異なる部分について説明する。
【００９７】
●ＰＤＦファイルへの変換処理
ここでは、第２実施形態において生成されるＰＤＦファイルについて、上述した図１４Ａおよび図１４Ｂに示すページ構成および文書構造ツリーを例として説明する。第２実施形態においてに生成されるＰＤＦファイルの構成も図１５に示すようになるが、その内容が第１実施形態とは異なる。すなわち、第２実施形態で生成されるＰＤＦファイルにおいては、上述した第１実施形態では図１６に示すようにコメント欄に記載していたキー文字列およびキー情報を、図１５に示すＰＤＦファイルのメタデータ部１５０３に記載することを特徴とする。
【００９８】
図１８に、第２実施形態における、ベクトル化されたＴｅｘｔ１４０１の出力（図１５のＣｏｎｔｅｎｔｓ１５０２）例を示す。同図において、１８０１、１８０２、１８０３がそれぞれ、Ｔｅｘｔ１４０１の文字「Ｆ」１４０３、「Ｅ」１４０４、「Ｆ」１４０５に相当し、これらは一般的なＰＤＦファイルとしての出力と同様である。
【００９９】
第２実施形態では、図１５に示すＰＤＦファイルにおけるメタデータ部１５０３に、Ｔｅｘｔ１４０１に関する情報を記述する。このメタデータ例を図１９に示す。同図において、１９０１、１９０２、１９０３が順次、Ｔｅｘｔ１４０１の文字「Ｆ」１４０３、「Ｅ」１４０４、「Ｆ」１４０５に対応し、上述した第１実施形態におけるコメントと同様に、各文字の情報を示す。
【０１００】
例えばメタデータ１９０１において、１９０４は印刷時に参照される任意のキー文字列である。メタデータ部１５０３における文字毎の記述は、このキー文字列によって区切られ、検出される。また、１９０５は文字「Ｆ」１４０３の文字コード「０３１Ｂ」である。１９０６は文字「Ｆ」１４０３の色のＲＧＢ表記であり、（Ｒ、Ｇ、Ｂ）＝（００ｈ、００ｈ、００ｈ）つまり黒色を示している。１９０７は文字「Ｆ」１４０３のポイント数であり、「６０」ポイントを示す。１９０８は文字「Ｆ」１４０３のベクトル情報から一意に計算されるパリティ符号である。
【０１０１】
メタデータ１９０１において、以上説明した１９０４〜１９０８は第１実施形態においてコメントに記載された情報と同様であるが、第２実施形態ではさらに、オフセット情報１９０９を備える。オフセット情報１９０９は、文字「Ｆ」１４０３がファイルの先頭から何バイト目に記述されているかを表すオフセット値であり、この場合、１６進で「１５Ａ」つまり３４６バイト目に記述されていることを表している。
【０１０２】
●印刷処理
第２実施形態において以上のように作成されたＰＤＦファイルについての印刷処理について、図２０のフローチャートを用いて詳細に説明する。ただし、特に上述した第１実施形態の図１７に示すフローチャートと同様の処理については、簡単な説明に留める。
【０１０３】
まず、コマンドを解析し（Ｓ２００１）、ＰＤＦファイルのサイズが作成時と比較して変更されているか否かを調べる（Ｓ２００２）。ＰＤＦファイルのサイズが変更されていなければ、メタデータ（図１９）にキー文字列（この場合「%%Ganon PDF」）が含まれているか否かを調べる（Ｓ２００３）。
【０１０４】
メタデータにキー文字列が含まれている場合、該キー文字列以下に記載されたキー情報を解析し（Ｓ２００４）、該キー情報が初めて出現したキー情報であるか否かを調べる（Ｓ２００５）。初めて出現したキー情報であれば、該キー情報に基づいて該当する文字種に対応したビットマップを作成し、これを文字キャッシュとして文字キャッシュメモリ４２１に格納する（Ｓ２００６）。そして、作成された文字キャッシュを使用して文字描画処理を行う（Ｓ２００８）。
【０１０５】
一方、ステップＳ２００５において初めて出現したキー情報でないと判断された場合には、そのままステップＳ２００７に進む。そして、既に文字キャッシュメモリ４２１に格納されている、当該文字の文字キャッシュを読み出し、該文字キャッシュを使用した文字描画処理を行う（Ｓ２００７）。ここでの文字キャッシュの読み出しは上述したように、文字コードをキーとして行えば良い。
【０１０６】
なお、ステップＳ２００２でＰＤＦのファイルサイズに変更があった場合、または、ステップＳ２００３でメタデータにキー文字列が含まれていない場合には、ステップＳ２００９で一般的なベクトル文字描画処理を行う。
【０１０７】
ステップＳ２００７、Ｓ２００８の文字キャッシュを使用した文字描画処理、またはステップＳ２００９のベクトル文字描画処理が終了すると、全てのコマンド解析が終了したか否かを調べる（Ｓ２０１０）。終了していなければステップＳ２００１に戻ってコマンド解析を続ける。
【０１０８】
以上説明したように第２実施形態によれば、ＰＤＦファイル内に文字情報をメタデータとして付加しておき、該ファイルを印刷する際に、新出の文字については文字キャッシュを作成し、既出の文字については該文字キャッシュを利用した文字処理を行う。これにより、上述した第１実施形態と同様にベクトル変換処理を最小限にとどめ、印刷処理を高速化することができる。
【０１０９】
＜第３実施形態＞
以下、本発明に係る第３実施形態について説明する。なお、第３実施形態における画像形成装置の構成は上述した第１および第２実施形態に示す画像形成装置１０１とほぼ同様であるため、以下では特に第１および第２実施形態と異なる部分について説明する。
【０１１０】
●ＰＤＦファイルへの変換処理
ここでは、第３実施形態において生成されるＰＤＦファイルについて、上述した図１４Ａおよび図１４Ｂに示すページ構成および文書構造ツリーを例として説明する。第３実施形態において生成されるＰＤＦファイルの構成は図１５に示すようになり、第２実施形態と同様に、キー文字列およびキー情報がメタデータ部１５０３に記載される。第３実施形態においては、メタデータ１５０３としてさらに文字のビットマップ情報そのものを保持することが第２実施形態とは異なる。すなわち、ＰＤＦファイルを作成する際に、文字のビットマップも同時に作成し、ファイル内に埋め込んでおく。
【０１１１】
図２１に、第３実施形態におけるＴｅｘｔ１４０１に関するメタデータ部１５０３の記載例を示す。同図において、２１０１、２１０２、２１０３がそれぞれ、Ｔｅｘｔ１４０１の文字「Ｆ」１４０３、「Ｅ」１４０４、「Ｆ」１４０５に対応し、上述した第２実施形態におけるメタデータ（図１９）と同様に、各文字の情報を示す。
【０１１２】
例えばデータ２１０１において、２１０４は印刷時に参照される任意のキー文字列であり、２１０５は文字「Ｆ」１４０３の文字コード「０３１Ｂ」である。また２１０６は文字「Ｆ」１４０３の色のＲＧＢ表記であり、（Ｒ、Ｇ、Ｂ）＝（００ｈ、００ｈ、００ｈ）つまり黒色を示している。２１０７は文字「Ｆ」１４０３のポイント数であり、「６０」ポイントを示す。２１０８は文字「Ｆ」１４０３のベクトル情報から一意に計算されるパリティ符号である。１９０９は文字「Ｆ」１４０３がファイルの先頭から何バイト目に記述されているかを表すオフセット値であり、１６進で「１５Ａ」つまり３４６バイト目に記述されていることを表している。
【０１１３】
以上は第２実施形態においてメタデータに記載された情報と同様である。第３実施形態のデータ２１０１はさらに、ビットマップ情報を備えることを特徴とする。すなわち、２１１０は文字「Ｆ」１４０３をビットマップ表現した場合のビットマップの幅であり、１６進で「１８」つまり２４である。２１１１は同ビットマップの高さであり、１６進で「１Ｅ」つまり３０である。また、２１１２は文字「Ｆ」１４０３をビットマップ表現した場合のビットマップそのものであり、同図では詳細な記述を省略している。
【０１１４】
●印刷処理
第３実施形態において以上のように作成されたＰＤＦファイルについての印刷処理について、図２２のフローチャートを用いて詳細に説明する。ただし、特に上述した第１実施形態の図１７に示すフローチャートと同様の処理については、簡単な説明に留める。
【０１１５】
まず、コマンドを解析し（Ｓ２２０１）、ＰＤＦファイルのサイズが作成時と比較して変更されているか否かを調べる（Ｓ２２０２）。ＰＤＦファイルのサイズが変更されていなければ、メタデータ（図２１）にキー文字列（この場合「%%Ganon PDF」）が含まれているか否かを調べる（Ｓ２２０３）。
【０１１６】
メタデータにキー文字列が含まれている場合、該キー文字列以下に記載されたキー情報を解析し（Ｓ２２０４）、メタデータとして埋め込まれた文字キャッシュ、すなわちビットマップを使用して文字処理を行う（Ｓ２２０５）。
【０１１７】
なお、ステップＳ２２０２でＰＤＦのファイルサイズに変更があった場合、または、ステップＳ２２０３でメタデータにキー文字列が含まれていない場合には、ステップＳ２２０７で一般的なベクトル文字描画処理を行う。
【０１１８】
ステップＳ２２０５の文字キャッシュを使用した文字描画処理、またはステップＳ２２０７のベクトル文字描画処理が終了すると、全てのコマンド解析が終了したか否かを調べる（Ｓ２２０６）。終了していなければステップＳ２２０１に戻ってコマンド解析を続ける。
【０１１９】
以上説明したように第３実施形態によれば、ＰＤＦファイル内に文字に関するビットマップ情報を予めメタデータとして付加しておき、該ファイルを印刷する際に、このビットマップを利用した文字処理を行う。これにより、印刷処理を高速化することができる。
【０１２０】
なお、第３実施形態においてＰＤＦファイルに埋め込む文字ビットマップを初出の文字コードのみに制限し、その描画の際に、該文字ビットマップを文字キャッシュメモリ４２１に文字コードと対応付けて格納することも有効である。これにより、２回目以降に出現した文字コードについては、文字キャッシュメモリ４２１に格納された文字キャッシュを利用した描画を行うことが可能となる。
【０１２１】
＜変形例＞
上述した各実施形態においては、画像形成装置１０１としてレーザビームを使用するプリンティングデバイスを例として説明した。しかしながら本発明の画像形成装置１０１としてはレーザビームプリンタに限らず、インクジェットプリンタ、ドットマトリクスプリンタ、熱転写プリンタ（昇華型を含む）、ＬＥＤプリンタ、液晶シャッタープリンタ等であっても構わない。
【０１２２】
また、文字キャッシュを利用するための描画データメモリをＲＡＭ４１６上に設ける例を説明したが、それ以外の記憶デバイスを利用しても構わない。
【０１２３】
また、ＲＯＭ４０３上で各種プログラムを実行する例を示したが、該プログラムをＲＡＭ４１６にダウンロードして実行しても構わない。
【０１２４】
また、レンダリング処理を描画処理と同じＣＰＵ４１５で実行する例を示したが、レンダリング処理専用のＣＰＵを設けて実行させても構わない。
【０１２５】
また、画像読み取り部１１０から読み取った画像をＰＤＦとして出力する例を示したが、出力形式はＰＤＦに限定するものではなく、他のファイルフォーマットであっても構わない。
【０１２６】
また、ファイルサイズの変更をＰＤＦファイルサイズ判定部４１１およびパリティチェックにより検出する例を示したが、メタデータ部１５０３にファイルの更新履歴情報を埋め込み、該情報を参照してファイルサイズの変更を検出しても構わない。
【０１２７】
＜他の実施形態＞
以上、実施形態例を詳述したが、本発明は例えば、システム、装置、方法、プログラム若しくは記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、複数の機器（例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等）から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【０１２８】
尚本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される。なお、この場合のプログラムとは、実施形態において図に示したフローチャートに対応したプログラムである。
【０１２９】
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１３０】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
【０１３１】
プログラムを供給するための記録媒体としては、以下に示す媒体がある。例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD-ROM、CD-R、CD-RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD-ROM，DVD-R)などである。
【０１３２】
プログラムの供給方法としては、以下に示す方法も可能である。すなわち、クライアントＰＣのブラウザからインターネットのホームページに接続し、そこから本発明のコンピュータプログラムそのもの(又は圧縮され自動インストール機能を含むファイル)をハードディスク等の記録媒体にダウンロードする。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
【０１３３】
また、本発明のプログラムを暗号化してCD-ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせることも可能である。すなわち該ユーザは、その鍵情報を使用することによって暗号化されたプログラムを実行し、コンピュータにインストールさせることができる。
【０１３４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。さらに、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１３５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、実行されることによっても、前述した実施形態の機能が実現される。すなわち、該プログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行うことが可能である。
【図面の簡単な説明】
【０１３６】
【図１Ａ】本発明に係る一実施形態である画像処理システムの構成例を示す図である。
【図１Ｂ】本実施形態における画像形成装置の概略構成を示すブロック図である。
【図２】本実施形態における画像形成装置の側断面図である。
【図３】本実施形態の画像形成装置における光学ユニットの詳細構成を示すブロック図である。
【図４】本実施形態の画像形成装置におけるコントローラの機能構成を示すブロック図である。
【図５】本実施形態におけるＰＤＦデータ作成処理を示すフローチャートである。
【図６】本実施形態におけるベクトル化処理を示すフローチャートである。
【図７】本実施形態において１枚のイメージデータを複数のブロックに分割した様子を示す図である。
【図８】本実施形態において輪郭部の「角」を抽出する方法を説明する図である。
【図９】本実施形態において太さを有する線を表現する例を説明する図である。
【図１０】本実施形態においてベクトル化されたＤＡＯＦデータ構造を示す図である。
【図１１】本実施形態におけるＰＤＦ変換処理を示すフローチャートである。
【図１２】本実施形態における文書構造ツリー生成処理を示すフローチャートである。
【図１３Ａ】本実施形態における文書構造ツリーの概要を説明するための図である。
【図１３Ｂ】本実施形態における文書構造ツリーの概要を説明するための図である。
【図１４Ａ】本実施形態における文書構造ツリーの具体例を示す図である。
【図１４Ｂ】本実施形態における文書構造ツリーの具体例を示す図である。
【図１５】本実施形態において生成されたＰＤＦファイルのテキスト表示例を示す図である。
【図１６】本実施形態において生成されたＰＤＦファイルにおける文字部の情報例を示す図である。
【図１７】本実施形態における印刷処理を示すフローチャートである。
【図１８】第２実施形態において生成されたＰＤＦファイルにおける文字部の情報例を示す図である。
【図１９】第２実施形態において生成されたＰＤＦファイルにおけるメタデータ部の情報例を示す図である。
【図２０】第２実施形態における印刷処理を示すフローチャートである。
【図２１】第３実施形態において生成されたＰＤＦファイルにおけるメタデータ部の情報例を示す図である。
【図２２】第３実施形態における印刷処理を示すフローチャートである。
【図１Ａ】
2007216434.tif 000003
【図１Ｂ】
2007216434.tif 000004
【図２】
2007216434.tif 000005
【図３】
2007216434.tif 000006
【図４】
2007216434.tif 000007
【図５】
2007216434.tif 000008
【図６】
2007216434.tif 000009
【図７】
2007216434.tif 000010
【図８】
2007216434.tif 000011
【図９】
2007216434.tif 000012
【図１０】
2007216434.tif 000013
【図１１】
2007216434.tif 000014
【図１２】
2007216434.tif 000015
【図１３Ａ】
2007216434.tif 000016
【図１３Ｂ】
2007216434.tif 000017
【図１４Ａ】
2007216434.tif 000018
【図１４Ｂ】
2007216434.tif 000019
【図１５】
2007216434.tif 000020
【図１６】
2007216434.tif 000021
【図１７】
2007216434.tif 000022
【図１８】
2007216434.tif 000023
【図１９】
2007216434.tif 000024
【図２０】
2007216434.tif 000025
【図２１】
2007216434.tif 000026
【図２２】
2007216434.tif 000027