説明

画像形成装置及びその制御方法

【課題】 原稿上の文字のフォントコードや位置情報、OCRで判断の難しいフォント名やポイント数、或いはフォントスタイル(イタリックやボールドといった情報)を含む符号画像を生成して印刷する。
【解決手段】 画像形成装置において、文字情報とその文字情報の位置情報とを符号化して符号画像を生成し、生成された符号画像をシート上に画像形成する。そして、画像形成の際に、文字情報から生成された文字画像を、符号画像と共に、そのシート上に画像形成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、符号画像を取り扱うことができる画像形成装置及びその制御方法に関する。
【背景技術】
【0002】
近年パーソナルコンピュータの性能向上により、複雑なアプリケーションでの複雑な文書作成が可能になってきている。例えば、複雑なパターンや、影付き、浮き出し、浮き彫りといった文字飾りや、縦書き、横書き、斜め書きといったレイアウトが施された文字の作成が可能になっいる。また、プリンタ、複写機といったデジタル画像形成装置もその画質向上は著しく、上記のような文書を紙に出力することを可能にしている。つまり、誰もが高度な文字修飾された印刷物を得ることが可能になってきている。
【0003】
これとは別に、印刷物をスキャナで読み込み、これをイメージ画像ではなく、文字情報としての電子データで保管、再利用したいという要望は根強くある。この場合、スキャナで印刷物を読み込んだ後、OCRと呼ばれる文字認識を行い、電子データに変換するのが一般的である。また、オリジナル文書の改竄防止の一環として、MS WORDといった文書用アプリケーションで作成されたデータを、一般的には編集不可能なPDFと呼ばれるフォーマットに変換して配布することも、近年では一般的である。
【特許文献1】特開2003−189084号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
昨今、ペーパレスと呼ばれるように、紙ではなく、電子データによる配布、及び利用が増えているが、紙という媒体で配布される資料が依然多いのも事実である。また、編集可能な文書フォーマットではなく、PDFと呼ばれる編集不可能なフォーマットで電子配布されることも、オリジナル文書の改竄防止という意味から増えてきている。
【0005】
このような紙文書や、編集不可能な電子データを再利用するためには、それらを再利用可能な形に変換する必要がある。その変換の際に、紙文書、或いは印刷されたPDF文書をスキャナで読み込み、OCRをかけてイメージデータから文字を抽出する作業が必要である。但し、上述したように、印刷物の文字修飾が高度化するに伴い、OCRの認識率は下がる傾向にあり、誤認識の結果、間違った文字に変換されるケースが増えてきている。
【0006】
特に、一般的な600dpiの画像形成装置では殆ど印刷できなかった小さなフォントや、現在のアプリケーションでは扱えなかった文字修飾が施された文書にOCRをかけて文字抽出を行うと、かなりの確率で間違った文字に変換されるという問題があった。
【0007】
また、正しい文字に変換されたとしても、オリジナル原稿に使われているフォント名やポイント数、或いはフォントスタイル(イタリックやボールドといった情報)を、OCR変換後の電子データに忠実に反映させることは難しいという問題もあった。
【0008】
本発明は、原稿上の文字のフォントコードや位置情報、OCRで判断の難しいフォント名やポイント数、或いはフォントスタイル(イタリックやボールドといった情報)を含む符号画像を生成して印刷することを目的とする。
【0009】
また、符号画像と文字情報を含む原稿から、容易にフォント情報を復元させことを目的とする。
【0010】
更に、誤認識することなく(アプリケーション用の)電子データに変換可能とすることを目的とする。
【課題を解決するための手段】
【0011】
本発明は、画像形成装置であって、文字情報と当該文字情報の位置情報とを符号化して符号画像を生成する符号化手段と、前記符号化手段で生成された符号画像をシート上に画像形成する画像形成手段とを有することを特徴とする。
【0012】
また、本発明は、画像形成装置であって、文字情報を符号化して生成された符号画像と、前記文字情報に基づいて生成された文字画像とを含む原稿画像を読み取る読取手段と、前記読取手段で読み取られた原稿画像に含まれる符号画像を復号化して情報を取り出す取出手段と、前記読取手段で読み取られた原稿画像に含まれる文字画像を文字認識して文字認識情報を得る文字認識手段と、前記取出手段で取り出された情報に基づいて前記文字認識手段で得られた文字認識情報を修正する修正手段とを有することを特徴とする。
【発明の効果】
【0013】
本発明によれば、原稿上の文字のフォントコードや位置情報、或いはフォントスタイルを含む符号画像を生成することにより、OCRによる文字の認識率を100%とすることができる。更には、オリジナル原稿に使われているフォント名やポイント数、或いはフォントスタイルといった、従来のOCRでは変換が難しい文字修飾情報も、忠実に変換後の電子データに反映させることが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【0015】
[第1の実施形態]
第1の実施形態は、文字情報とその文字情報の位置を示す位置情報とを符号化して符号画像を生成し、生成した符号画像をシート上に画像形成する際に、文字情報から生成した文字画像も一緒に、そのシート上に画像形成するものである。
【0016】
これにより、文字画像だけが画像形成された場合、文字認識(OCR)しにくいという第1の問題を解決できると共に、符号画像だけが画像形成された場合の第2の問題も解決することができる。ここで、第2の問題とは、例えば符号画像から文字コードを取得するデコード機能がない複写機の場合、印刷できない、またデコード機能があってもデコードして文字コードを取得し、文字画像に変換して印刷するには時間がかかる、という問題である。
【0017】
<システム構成(図1)>
図1は、第1の実施形態による画像形成システムの全体構成を示すブロック図である。図1に示すように、画像形成装置110は、画像入力デバイスであるスキャナ部113、画像出力デバイスであるプリンタ部114、制御ユニット(Control Unit)111、及びユーザインターフェースである操作部112を有する。操作部112、スキャナ部113、プリンタ部114はそれぞれ制御ユニット111に接続され、制御ユニット111からの命令によって制御される。また、制御ユニット111は、ローカルエリアネットワーク(LAN)100などのネットワーク伝送手段、公衆回線(WAN)102に接続されている。公衆回線102からは、カラー画像送信を含むG3、G4ファックスによる送信が可能である。
【0018】
また、LAN100には、画像形成装置110と同様な機器構成を有する他の画像形成装置120、130も接続されている。即ち、画像形成装置120は、スキャナ部123、プリンタ部124、操作部122を有し、それぞれが制御ユニット121に接続され、制御される。また、画像形成装置130は、スキャナ部133、プリンタ部134、操作部132を有し、それぞれが制御ユニット131に接続され、制御される。
【0019】
そして、パーソナルコンピュータ(PC)101は、LAN100などのネットワーク伝送手段に接続されている。パーソナルコンピュータ(PC)101は、FTP、SMBのような標準的なファイル転送プロトコルを使用したファイルの送受信や、電子メールの送受信が可能である。
【0020】
<画像形成装置110の外観(図2)>
図2は、第1の実施形態における画像形成装置の外観を示す図である。図2に示す画像入力デバイスであるスキャナ部113は、複数のCCDを有している。各CCDの感度がそれぞれ異なっていると、例え原稿上の各画素の濃度が同じであったとしても、各画素がそれぞれ違う濃度であると認識されてしまう。そのため、スキャナ部113では、最初に白板(一様に白い板)を露光走査し、露光走査して得られた反射光の量を電気信号に変換して制御ユニット111に出力している。
【0021】
尚、後述する制御ユニット111内のシェーディング補正部が、各CCDから得られた電気信号に基づいて各CCDの感度の違いを認識し、認識した感度の違いを利用して原稿上の画像をスキャンして得られた電気信号の値を補正している。
【0022】
更に、後述するシェーディング補正部は、後述する制御ユニット111内のCPUからゲイン調整の情報を受け取ると、当該情報に応じたゲイン調整を行う。このゲイン調整は、原稿を露光走査して得られた電気信号の値をどのように0〜255の輝度信号値に割り付けるかを調整するために用いられる。このゲイン調整により、原稿を露光走査して得られた電気信号の値を高い輝度信号値に変換したり、低い輝度信号値に変換したりすることができるようになっている。
【0023】
次に、この原稿上の画像をスキャンする構成について説明する。スキャナ部113は、原稿上の画像を露光走査して得られた反射光をCCDに入力することで画像の情報を電気信号に変換する。更に、電気信号をR,G,B各色からなる輝度信号に変換し、当該輝度信号を画像データとして制御ユニット111に対して出力する。
【0024】
尚、原稿は原稿フィーダ201のトレイ202にセットされる。ユーザが操作部112から読み取り開始を指示すると、制御ユニット111からスキャナ部113に原稿の読み取り指示が与えられる。スキャナ部113は、この指示を受けると原稿フィーダ201のトレイ202から原稿を1枚ずつフィードして、原稿の読み取り動作を行う。
【0025】
また、原稿の読み取り方法は原稿フィーダ201による自動送り方式だけでなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であっても良い。
【0026】
一方、プリンタ部114は、制御ユニット111から受け取った画像データを用紙上に形成する画像形成デバイスである。尚、プリンタ部114の画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、本発明はこれに限るものではない。例えば、微少ノズルアレイからインクを吐出して用紙上に印字するインクジェット方式なども適用可能である。また、プリンタ部114には、異なる用紙サイズ又は異なる用紙向きを選択可能とする複数の給紙手段を備え、それぞれに対応した用紙カセット203、204、205が設けられている。そして、排紙トレイ206には、印字後の用紙が排出される。
【0027】
<制御ユニット111の詳細(図3)>
図3は、画像形成装置110における制御ユニット111の詳細な構成を示すブロック図である。制御ユニット111は、スキャナ部113やプリンタ部114と電気的に接続し、一方ではLAN100や公衆回線(WAN)102を介してPC101や外部の装置などと接続されている。これにより、画像データやデバイス情報の入出力を行う。
【0028】
制御ユニット111において、CPU301は、ROM303に格納されたプログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、内部で行われる各種処理についても統括的に制御する。RAM302は、CPU301が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。このRAM302は、記憶した内容を電源オフ後も保持しておくSRAM及び電源オフ後には記憶した内容が消去されてしまうDRAMにより構成されている。ROM303には、装置のブートプログラムや制御データなどが格納されている。HDD304はハードディスクドライブであり、システムソフトウェアや画像データを格納する。
【0029】
操作部I/F305は、システムバス310と操作部112とを接続するためのインターフェース部である。操作部I/F305は、操作部112に表示するための画像データをシステムバス310から受け取り、操作部112に出力すると共に、操作部112から入力された情報をシステムバス310へと出力する。
【0030】
ネットワーク(Network)I/F306はLAN100tの接続を司り、LAN100に対して情報の入出力を行う。モデム(MODEM)307はWAN102との接続を司り、WAN102に対して情報の入出力を行う。2値画像回転部308はモデム307で2値画像を送信する前に画像データの方向を変換する。2値画像圧縮・伸張部309は、送信前の画像データの解像度を所定の解像度や相手能力に合わせた解像度に変換する。また、圧縮及び伸張は、JBIG、MMR、MR、MHなどの方式をサポートしている。
【0031】
画像バス330は、画像データを授受するための伝送路であり、PCIバスやIEEE1394で構成されている。画像バス330に接続されるスキャナ画像処理部312は、スキャナ部113からスキャナI/F311を介して受け取った画像データに対して補正、加工、及び編集を行う。
【0032】
尚、スキャナ画像処理部312は、受け取った画像データがカラー原稿か白黒原稿か、或いは文字原稿か写真原稿かなどを判定する。そして、その判定結果を画像データに付随させる。これ以降、この付随情報を属性データと称する。このスキャナ画像処理部312で行われる処理の詳細については後述する。
【0033】
圧縮部313は、画像データを受け取り、この画像データを32×32画素のブロック単位に分割する。尚、この32×32画素の画像データをタイル画像データと称する。
【0034】
図4は、タイル画像データを概念的に表した図である。原稿(読み取り前の紙媒体)において、このタイル画像データに対応する領域をタイル画像と称する。タイル画像データには、32×32画素のブロックにおける平均輝度情報やタイル画像の原稿上の座標位置がヘッダ情報として付加されている。
【0035】
更に、圧縮部313は、複数のタイル画像データからなる画像データを圧縮する。伸張部316は、複数のタイル画像データからなる画像データを伸張した後にラスタ展開してプリンタ画像処理部315に送る。
【0036】
プリンタ画像処理部315は、伸張部316から送られた画像データを受け取り、その画像データに付随させられている属性データを参照しながら画像データに画像処理を施す。画像処理後の画像データは、プリンタI/F314を介してプリンタ部114に出力される。このプリンタ画像処理部315で行われる処理の詳細については後述する。
【0037】
画像変換部317は、画像データに対して所定の変換処理を施す。この処理部は以下に示すような処理部により構成される。
【0038】
伸張部318は、受け取った画像データを伸張する。圧縮部319は、受け取った画像データを圧縮する。回転部320は、受け取った画像データを回転する。変倍部321は、受け取った画像データに対して、例えば600dpiから200dpiへの解像度変換処理や、例えば25%から400%への変倍処理を行う。尚、変倍処理の前には、32×32画素の画像を32ライン単位の画像に並び替える。
【0039】
色空間変換部322は、受け取った画像データの色空間を変換する。この色空間変換部322は、マトリクス又はテーブルを用いて公知の下地飛ばし処理や、公知のLOG変換処理(RGB→CMY)、公知の出力色補正処理(CMY→CMYK)を行う。2値多値変換部323は、受け取った2階調の画像データを256階調の画像データに変換する。また逆に、多値2値変換部324は、受け取った256階調の画像データを誤差拡散処理などの手法により2階調の画像データに変換する。
【0040】
合成部327は、受け取った2つの画像データを合成し、1枚の画像データを生成する。尚、2つの画像データを合成する際には、合成対象の画素同士が持つ輝度値の平均値を合成輝度値とする方法や、輝度レベルで明るい方の画素の輝度値を合成後の画素の輝度値とする方法が適用される。また、暗い方を合成後の画素とする方法の利用も可能である。更に、合成対象の画素同士の論理和演算、論理積演算、排他的論理和演算などで合成後の輝度値を決定する方法なども適用可能である。これらの合成方法は、何れも周知の手法である。
【0041】
間引き部326は、受け取った画像データの画素を間引くことで解像度変換を行い、1/2,1/4,1/8の画像データを生成する。移動部325は、受け取った画像データに余白部分を付けたり余白部分を削除したりする。
【0042】
ラスターイメージプロセッサ(RIP)328は、PC101などから送信されたPDLコードデータに基づいて生成された中間データを受け取り、ビットマップデータ(多値)に展開する。
【0043】
<スキャナ画像処理部312の詳細(図5)>
図5は、図3に示すスキャナ画像処理部312の構成の一例を示すブロック図である。スキャナ画像処理部312は、入力画像データとしてRGB各8ビットの輝度信号を受け取る。この輝度信号は、マスキング処理部501によりCCDのフィルタ色に依存しない標準的な輝度信号に変換される。フィルタ処理部502は、受け取った画像データの空間周波数を任意に補正する。具体的には、受け取った画像データに対して、例えば7×7のマトリクスを用いた演算処理を行う。
【0044】
ところで、複写機や複合機では、後述する図7に示す操作画面のタブ704を押下することにより、コピーモードとして文字モード、写真モード、文字/写真モードの何れかを選択することができる。
【0045】
ここで、ユーザによって文字モードが選択された場合は、フィルタ処理部502は文字用のフィルタを画像データ全体にかける。また、写真モードが選択された場合は、写真用のフィルタを画像データ全体にかける。或いは、文字/写真モードが選択された場合は、後述の文字写真判定信号(属性データの一部)に応じて画素毎に適応的にフィルタを切り替える。つまり、画素毎に写真用のフィルタをかけるか、文字用のフィルタをかけるかが決定される。
【0046】
尚、写真用のフィルタには、高周波成分のみ平滑化が行われるような係数が設定されている。これは、画像のざらつきを目立たせないためである。また、文字用のフィルタには強めのエッジ強調を行うような係数が設定されている。これは、文字のシャープさを出すためである。
【0047】
ヒストグラム生成部503は、受け取った画像データを構成する各画素の輝度データをサンプリングする。より詳細に説明すると、主走査方向、副走査方向にそれぞれ指定した開始点と終了点で囲まれた矩形領域内の輝度データを、主走査方向、副走査方向に一定のピッチでサンプリングする。そして、サンプリング結果に基づいてヒストグラムデータを生成する。生成されたヒストグラムデータは、下地飛ばし処理を行う際に、下地レベルを推測するために用いられる。入力側ガンマ補正部504は、テーブル等を利用して非線形特性を持つ輝度データに変換する。
【0048】
カラーモノクロ判定部505は、受け取った画像データを構成する各画素が有彩色であるか無彩色であるかを判定し、その判定結果をカラーモノクロ判定信号(属性データの一部)として画像データに付随させる。
【0049】
文字写真判定部506は、画像データを構成する各画素が文字を構成する画素なのか、網点を構成する画素なのか、網点中の文字を構成する画素なのか、ベタ画像を構成する画素なのかを各画素の画素値と各画素の周辺画素の画素値とに基づいて判定する。ここで、何れにも当てはまらない画素は、白領域を構成している画素である。そして、この判定の結果を文字写真判定信号(属性データの一部)として画像データに付随させる。
【0050】
復号部507は、マスキング処理部501から出力された画像データ内に符号画像データが存在する場合には、その存在を検知する。そして、検知された符号画像データを復号化して情報を取り出す。
【0051】
<プリンタ画像処理部315の詳細(図6)>
図6は、図3に示すプリンタ画像処理部315の構成の一例を示すブロック図である。下地飛ばし処理部601は、スキャナ画像処理部312で生成されたヒストグラムを用いて画像データの下地色を飛ばす(除去する)。モノクロ生成部602はカラーデータをモノクロデータに変換する。Log変換部603は輝度濃度変換を行う。このLog変換部603は、例えば、RGB入力された画像データを、CMYの画像データに変換する。
【0052】
出力色補正部604は、入力されたCMYの画像データを、テーブルやマトリックスを用いてCMYKの画像データに変換して出力色補正を行う。出力側ガンマ補正部605は、この出力側ガンマ補正部605に入力される信号値と複写出力後の反射濃度値とが比例するように補正を行う。中間調補正部606は、出力するプリンタ部の階調数に合わせて中間調処理を行う。例えば、受け取った高階調の画像データに対して2値化や32値化などを行う。符号画像合成部607は、後述する<符号化処理>により生成された符号画像データと、(原稿)画像データとを合成する。
【0053】
尚、スキャナ画像処理部312やプリンタ画像処理部315の各処理部で、受け取った画像データに各処理を施さずに出力させても良い。このような、ある処理部で処理を施さずにデータを通過させることを、以下では「処理部をスルーさせる」と表現する。
【0054】
<符号化処理>
CPU301は、所定の情報(例えば機器番号や印刷時間情報やユーザID情報など)の符号化処理を行い、符号画像データを生成すべく制御することが可能である。
【0055】
尚、符号画像とは、二次元コード画像やバーコード画像といった画像や電子透かし技術により生成された電子透かし画像のことを示す。
【0056】
更に、CPU301は、生成された符号画像データを、不図示のデータバスを用いて、プリンタ画像処理部315内の符号画像合成部607に送信する。
【0057】
上述した符号画像の生成及び送信の制御は、RAM302内に格納されたプログラムを実行することによって行われる。
【0058】
<操作画面の説明>
図7は、画像形成装置110における初期画面の一例を示す図である。領域701は、画像形成装置110がコピーできる状態にあるか否かを示し、かつ設定したコピー部数を示す。原稿選択タブ704は原稿のタイプを選択するためのタブであり、このタブが押し下げられると文字、写真、文字/写真モードの3種類の選択メニューをポップアップ表示する。フィニッシングタブ706は各種フィニッシングに関わる設定を行うためのタブである。両面設定タブ707は両面読み込み及び両面印刷に関する設定を行うためのタブである。読み取りモードタブ702は原稿の読み取りモードを選択するためのタブである。このタブが押し下げられるとカラー/ブラック/自動(ACS)の3種類の選択メニューがポップアップ表示される。
【0059】
尚、カラーが選択された場合にはカラーコピーが、ブラックが選択された場合にはモノクロコピーが行われる。また、ACSが選択された場合には上述したモノクロカラー判定信号によりコピーモードが決定される。
【0060】
符号化・復号化処理タブ708は、符号画像を復号化し、再符号化する処理を選択するためのタブである。
【0061】
<復号化・再符号化処理>
ここで、符号化・復号化処理タブ708が押下された後に、スタートキーが押下された際に実行される復号化・再符号化処理を、図8を用いて説明する。
【0062】
図8は、復号化・再符号化処理を示すフローチャートである。まず、ステップS801において、CPU301は、スキャナ部113で読み取られた原稿を、画像データとしてスキャナI/F311を介してスキャナ画像処理部312に送るように制御する。次に、ステップS802において、スキャナ画像処理部312が、この画像データに対して図5に示す処理を行い、新たな画像データと共に属性データを生成し、この属性データを画像データに付随させる。そして、スキャナ画像処理部312内の復号部507が、符号画像データが存在する場合には、その存在を検知する。ここで、検知された符号画像データを復号化して情報を取得する。そして、当該取得された復号後の情報を不図示のデータバスを用いてRAM302に格納する。ステップS802での処理が終了すると、ステップS803とステップS808との処理を同時に開始する。
【0063】
ステップS808では、CPU301は、復号後の情報を再符号化して符号画像を生成し、生成した再符号画像データをプリンタ画像処理部315内の符号画像合成部607に送信すべく制御する。
【0064】
一方、ステップS803では、圧縮部313がスキャナ画像処理部312で生成された新たな画像データを32×32画素のブロック単位に分割し、タイルデータを生成する。更に、圧縮部313は複数のタイルデータからなる画像データを圧縮する。
【0065】
次に、ステップS804では、CPU301は、圧縮部313で圧縮された画像データをRAM302に送って格納するように制御する。尚、この画像データは、必要に応じて画像変換部317に送られ、画像処理が施された上で再びRAM302に送られ格納される。次に、ステップS805では、CPU301は、RAM302に格納されている画像データを伸張部316に送るように制御する。一方、伸張部316は、この画像データを伸張し、伸張後の複数のタイルデータからなる画像データをラスタ展開する。このラスタ展開後の画像データはプリンタ画像処理部315に送られる。
【0066】
次に、ステップS806では、プリンタ画像処理部315が画像データに付随されている属性データに応じた画像データ編集を行う。この処理は、図6に示す処理である。ここでは、ステップS808で生成した符号画像データと(原稿の)画像データとを合成する。正確には、出力側ガンマ補正部605から出力された(原稿の)画像データと、ステップS808で生成した再符号画像データとを符号画像合成部607が合成する。そして、この合成により得られた合成画像データを中間調補正部606が、出力するプリンタ部の階調数に合わせて中間調処理を行う。中間調処理後の合成画像データはプリンタI/F314を介してプリンタ部114に送られる。
【0067】
そして、ステップS807で、プリンタ部114が合成画像データを出力用紙上に画像形成する。
【0068】
<パーソナルコンピュータ(PC)101の詳細>
図9は、パーソナルコンピュータ(PC)101における印刷処理に関するモジュールの一例を示す図である。図9に示すアプリケーション901、グラフィックエンジン902、プリンタドライバ903及びシステムスプーラ904は、外部メモリに保存されたファイルとして存在するプログラムモジュールである。そして、これらのモジュールが実行される場合、オペレーティングシステム(OS)やモジュールを利用するモジュールによってRAMにロードされ実行される。ここで、外部メモリに保存されているアプリケーション901はRAMにロードされて実行される。しかし、アプリケーション901からプリンタ905に対して印刷を行う際には、アプリケーション901と同様に、RAMにロードされ実行可能なグラフィックエンジン902を利用して出力(描画)を行う。
【0069】
また、グラフィックエンジン902は、プリンタ905などの印刷装置毎に用意されたプリンタドライバ903を外部メモリからRAMにロードし、アプリケーション901の出力をプリンタドライバ903に設定する。そして、アプリケーション901から受け取るGDI(Graphic Device Interface)関数をDDI(Device Driver Interface)関数に変換してプリンタドライバ903へDDI関数を出力する。
【0070】
プリンタドライバ903は、グラフィックエンジン902から受け取ったDDI関数をプリンタ905が認識可能な制御コマンド、例えばPDL(Page Description Language)に変換する。変換された制御コマンドは、OSによってRAMにロードされたシステムスプーラ904を経て双方向性インタフェース経由でプリンタ905へ印刷データとして出力される仕組みとなっている。
【0071】
図9に示すように、印刷システムは、プリンタドライバ903内に符号画像を生成する符号画像生成部906を有する。この符号画像生成部906はプリンタドライバ903のビルトインモジュールであっても良く、個別のインストーレーションによって追加されるライブラリモジュールの形式であっても良い。また、プリンタドライバ903は符号画像の印刷に関し、この符号画像生成部906を実行することで、後述する符号画像の処理を行う。
【0072】
<印刷関連のソフトウェアモジュール>
図10は、パーソナルコンピュータ101における印刷処理に関する他のモジュールの一例を示す図である。図10に示すモジュールは、図9を拡張したものであり、グラフィックエンジン902からプリンタドライバ903へ印刷命令を送る際に、一旦中間コードからなるスプールファイル1003を生成する構成をとる。
【0073】
図9に示すものでは、アプリケーション901が印刷処理から開放されるのはプリンタドライバ903がグラフィックエンジン902からの印刷命令を全て制御コマンドへ変換し終った時点である。これに対して、図10では、スプーラ1002が全ての印刷命令を中間コードデータに変換し、スプールファイル1003に出力した時点で開放される、という点で異なっている。
【0074】
通常、図10に示す方がアプリケーション901による印刷処理が短時間で済む。また、図10に示す構成においては、スプールファイル1003の内容に対して加工することができる。これにより、アプリケーション901からの印刷データに対して、拡大縮小、複数ページを1ページに縮小して印刷や、符号画像生成など、アプリケーション901の持たない機能を実現することができる。
【0075】
上述の目的のために、図10に示すように、中間コードデータでスプールするように、システムの拡張がなされてきている。
【0076】
尚、印刷データの加工を行うためには、通常、プリンタドライバ903がCRTディスプレイに表示させるウィンドウから設定を行い、プリンタドライバ903がその設定内容をRAM上或いは外部メモリ上に保管する。
【0077】
ここで、図10に示す構成の詳細を説明する。図10に示す拡張された処理方式では、グラフィックエンジン902からの印刷命令であるDDI関数をディスパッチャ1001が受け取る。ディスパッチャ1001は、このDDI関数がアプリケーション901からグラフィックエンジン902へ発行された印刷命令(GDI関数)に基づくものであれば、プリンタドライバ903ではなくスプーラ1002へDDI関数を送付する。スプーラ1002は、外部メモリに格納されており、RAMにロードされて実行されるモジュールである。
【0078】
スプーラ1002は受け取った印刷命令を解析し、ページ単位に中間コードに変換してスプールファイル1003として出力する。このページ単位に格納されている中間コードのスプールファイルをページ描画ファイル(PDF:Page Description File)と呼ぶ。また、スプーラ1002はプリンタドライバ903に対して設定されている印刷データに関する加工設定をプリンタドライバ903から取得してジョブ単位のファイルとしてスプールファイル1003に保存する。ここで、加工設定とは、Nup、両面、ステープル、カラー/モノクロ指定、符号画像生成等である。また、このジョブ単位に格納されている設定ファイルをジョブ設定ファイル(簡略してSDF:Spool Description Fileと呼ぶこともある)と呼ぶ。
【0079】
尚、スプールファイル1003は外部メモリ上にファイルとして生成するが、RAM上に生成されても構わない。更に、スプーラ1002は、外部メモリに格納されているスプールファイルマネージャ1004をRAMにロードし、スプールファイルマネージャ1004に対してスプールファイル1003の生成状況を通知する。その後、スプールファイルマネージャ1004は、スプールファイル1003に保存された印刷データに関する加工設定の内容に従って印刷を行えるか判断する。
【0080】
スプールファイルマネージャ1004がグラフィックエンジン902を利用して印刷を行えると判断すると、外部メモリに格納されているデスプーラ1005をRAMにロードする。そして、デスプーラ1005に対してスプールファイル1003に記述された中間コードのページ描画ファイルの印刷処理を行うように指示する。
【0081】
デスプーラ1005は、スプールファイル1003に含まれる中間コードのページ描画ファイルをスプールファイル1003に含まれる加工設定情報を含むジョブ設定ファイルに従って加工する。そして、GDI関数を再生成し、もう一度グラフィックエンジン902経由でGDI関数を出力する。その際、符号画像の印刷に関する描画については、符号画像生成部906をロードし、描画処理を行う。
【0082】
一方、ディスパッチャ1001は、上述のDDI関数がデスプーラ1005からグラフィックエンジン902へ発行された印刷命令(GDI関数)に基づくものであれば、スプーラ1002ではなく、プリンタドライバ903に印刷命令を送る。
【0083】
プリンタドライバ903はグラフィックエンジン902から取得したDDI関数に基づいてページ記述言語等からなるプリンタ制御コマンドを生成し、システムスプーラ904経由でプリンタ905に出力する。
【0084】
更に、図10に示すように、拡張システムに加えて、プレビューア1006、設定変更エディタ1007を配し、符号画像のプレビューを含むプレビュー、印刷設定変更、複数ジョブの結合を可能にしている。ここで、プレビュー、印刷設定変更、複数ジョブの結合を行うには、まずユーザが図11に示すプリンタドライバのプロパティシートにおいて、「出力先の指定」を行う手段であるプルダウンメニュー1101で「ストア」を指定する必要がある。尚、プレビューだけをみたい場合は、出力先の指定として「プレビュー」を選択することによっても可能である。
【0085】
このように、プリンタドライバ903のプロパティで設定されている内容は設定ファイルとしてOSが提供する構造体に格納される。この構造体は、Windows(登録商標)OSでは、DEVMODEと呼ばれる。また、構造体には、例えばスプールファイル1003に含まれる加工設定ファイル中にスプールファイルマネージャ1004にストアを行うか否かの設定が含まれている。スプールファイルマネージャ1004がプリンタドライバ903を介して加工設定を読み込み、ストア指定がなされていた場合、上述したように、スプールファイル1003にページ描画ファイルとジョブ設定ファイルとが生成され、格納される。そして、スプールファイルマネージャ1004のウィンドウ画面がポップアップされ、スプールファイル1003にスプールされたジョブがリスト表示される。
【0086】
スプールファイルマネージャ1004のウィンドウ画面上で、ある単体ジョブ又は結合ジョブのプレビュー指定がされた場合、外部メモリに格納されているプレビューア1006をRAMにロードする。そして、プレビューア1006に対してスプールファイル1003に記述された中間コードのジョブのプレビュー処理を行うように指示する。
【0087】
(プレビューア)
プレビューア1006はスプールファイル1003に含まれる中間コードのページ描画ファイル(PDF)を順次読み出し、スプールファイル1003に格納されているジョブ設定ファイル(SDF)に含まれる加工設定情報の内容に従って加工する。グラフィックエンジン902に対してGDI関数を出力する。グラフィックエンジン902が自身の確保するクライアント領域に描画データを出力することにより、画面上の出力が可能となる。
【0088】
グラフィックエンジン902は、指定された出力先に応じて適切なレンダリングを行うことが可能である。即ち、プレビューア1006は、デスプーラ1005と同様に、スプールファイル1003に含まれる中間コードをスプールファイル1003に含まれる加工設定の内容に従って加工し、グラフィックエンジン902を利用して出力する方法で実現可能となる。このように、プリンタドライバ903で設定されている加工設定をジョブ設定ファイルとしてスプールファイル1003に格納し、このジョブ設定ファイルに基づいてページ描画ファイルのデータを加工して出力する。
【0089】
通常の文書作成等のアプリケーションソフトウェアが提供するプレビュー機能は、あくまでそのアプリケーションにおけるページ設定に基づいて描画が行われているため、プリンタドライバ903での印刷設定が反映されない。そのため、実際に印刷出力されるプレビューをユーザに認識させることはできなかった。これに対して、第1の実施形態では、上述の処理を行うことにより、符号画像の描画位置や、大きさに応じて、プリンタで出力されるものに近い印刷プレビューをユーザに提供することができる。
【0090】
このように、プレビュー処理を行うことでスプールファイル1003に含まれる印刷の加工設定の大プレビューがプレビューア1006によって画面上に表示される。図12は、プレビューア1006によって表示されるプレビュー画面の一例を示す図である。その後、ユーザの非表示指示によりプレビュー画面がクローズされ、制御が図13に示すようなスプールファイルマネージャ1004の画面に移行する。そして、ユーザがプレビュー画面の内容に従って印刷を行う際に、スプールファイルマネージャ1004の画面上で「印刷」又は「セーブして印刷」を指示することにより印刷要求を発行する。この印刷要求により、上述したようにデスプーラ1005がジョブ設定ファイルに基づいてページ描画ファイルを加工してGDI関数を生成し、グラフィックエンジン902に伝える。グラフィックエンジン902からディスパッチャ1001経由でプリンタドライバ903に印刷命令が送られ、印刷が実行される。
【0091】
<印刷用中間データの保存処理>
図14は、スプーラ1002が生成したスプールファイル1003をページ単位に保存する処理を示すフローチャートである。まず、ステップS1401で、スプーラ1002は、アプリケーション901からグラフィックエンジン902を介して印刷要求を受け付ける。アプリケーション901は、図15に示すような印刷設定を入力するダイアログを表示し、このダイアログから入力された印刷設定がプリンタドライバ903からスプーラ1002へ渡される。図15に示すダイアログでは、リストボックス1501に示すように、1物理ページにレイアウトする論理ページの数を決定するような設定項目等を含んでいる。
【0092】
次に、ステップS1402で、受け付けた印刷要求がジョブ開始要求か否かを判定し、ジョブ開始要求であると判定した場合にはステップS1403へ処理を進め、中間データを一時的に保存するためのスプールファイル1003を作成する。そして、ステップS1404で、スプールファイルマネージャ1004へ印刷処理の進捗を通知し、ステップS1405で、スプーラ1002のページ数カウンタを“1”に初期化する。ここで、スプールファイルマネージャ1004では、印刷が開始されたジョブに対するジョブの情報や加工設定などをスプールファイル1003より読み込み、記憶する。
【0093】
一方、上述のステップS1402で、ジョブ開始要求ではなかったと判定した場合にはステップS1406へ処理を進め、受け付けた要求がジョブ終了要求か否かを判別する。ジョブ終了要求でないと判別した場合にはステップS1407へ処理を進め、改ページか否かの判別を行う。ここで、改ページであると判別した場合にはステップS1408へ処理を進め、スプールファイルマネージャ1004へ印刷処理の進捗を通知する。そして、ページ数カウンタをインクリメントし、中間コードを格納しているページ描画ファイルを閉じ、次のページ描画ファイルを生成する。
【0094】
また、上述のステップS1407で、受け付けた印刷要求が改ページではないと判別した場合にはステップS1409に進み、ページ描画ファイルへの中間コードの書き出しの準備を行う。次に、ステップS1410で、印字要求をスプールファイル1003へ格納するため、印字要求のDDI関数の中間コードへの変換処理を行う。そして、ステップS1411で、ステップS1410で格納可能な形に変換された印刷要求(中間コード)をスプールファイル1003のページ描画ファイルへ書き込む。その後、ステップS1401に戻り、再びアプリケーションからの印刷要求を受け付ける。
【0095】
上述のステップS1401〜S1411までの一連の処理を、アプリケーション901よりジョブ終了要求(EndDoc)を受け取るまで続ける。また、スプーラ1002は、上述した処理中にプリンタドライバ903からDEVMODE構造体に格納されている加工設定等の情報を取得し、ジョブ設定ファイルとしてスプールファイル1003に格納する。
【0096】
一方、上述のステップS1406で、アプリケーション901からの印刷要求がジョブ終了であると判断した場合には、アプリケーションからの印刷要求は全て終了であるので、ステップS1412へ処理を進める。このステップS1412では、スプールファイルマネージャ1004へ印刷処理の進捗を通知し、この処理を終える。
【0097】
<スプールファイルの生成>
図16は、スプールファイルマネージャ1004のスプールファイル生成プロセス及び印刷データ生成プロセスの間の詳細な制御を示すフローチャートである。まず、ステップS1601で、スプールファイルマネージャ1004がスプーラ1002又はデスプーラ1005からの印刷処理の進捗通知を受け付ける。そして、ステップS1602で、進捗通知が上述したステップS1404で通知されるスプーラ1002からの印刷開始通知であるか否かを判定する。ここで、進捗通知が印刷開始通知であれば、ステップS1603へ処理を進め、印刷の加工設定をスプールファイル1003から読み込み、ジョブの管理を開始する。
【0098】
一方、ステップS1602で、スプーラ1002からの印刷開始通知でなければステップS1604へ処理を進め、進捗通知が上述のステップS1408で通知されたスプーラ1002からの1論理ページの印刷終了通知であるか否かを判定する。ここで、1論理ページの印刷終了通知であればステップS1605へ処理を進め、この論理ページに関する論理ページ情報を格納する。そして、続くステップS1606で、この時点でスプールが終了したn論理ページに対して1物理ページの印刷が開始できるか否かを判定する。ここで、印刷可能であればステップS1607へ処理を進め、印刷する1物理ページに対して割り付けられる論理数から物理ページ番号を決定する。
【0099】
この物理ページ番号の計算については、例えば加工設定が1物理ページに4論理ページを配置するような設定の場合、第1物理ページは第4論理ページがスプールされた時点で印刷可能となり、第1物理ページとなる。以下同様に、第2物理ページは第8論理ページがスプールされた時点で印刷可能となる。
【0100】
また、論理ページ数の総数が1物理ページに配置する論理ページ数の倍数でなくても、ステップS1412でのスプール終了通知によって1物理ページに配置する論理ページが決定可能である。
【0101】
そして、ステップS1608では、印刷可能となった物理ページを構成する論理ページ番号と、その物理ページ番号などの情報がジョブ出力用設定ファイル(物理ページ情報を含むファイル)に保存される。そして、物理ページ情報が1物理ページ分追加されたことがデスプーラ1005に通知される。その後、ステップS1601に戻り、次の通知を待つ。尚、第1の実施形態では、印刷ジョブのスプールが全て終了していなくても、印刷データの1ページ、即ち1物理ページを構成する論理ページがスプールされた時点で印刷処理が可能である。
【0102】
一方、ステップS1604で、進捗通知がスプーラ1002からの1論理ページの印刷終了通知でなければステップS1609へ処理を進め、上述のステップS1412で通知されるスプーラ1002からのジョブ終了通知であるか否かを判定する。ここで、ジョブ終了通知であれば上述のステップS1606へ処理を進める。しかし、ジョブ終了通知でなければステップS1610へ処理を進め、受け付けた通知がデスプーラ1005からの1物理ページの印刷終了通知であるか否かを判定する。ここで、1物理ページの印刷終了通知である場合はステップS1611へ処理を進め、印刷が全て終了したかを判定する。印刷が終了した場合、ステップS1612へ進み、デスプーラ1005に印刷終了の通知を行う。一方、加工設定に対する印刷がまだ終了していないと判定した場合は上述のステップS1606へ処理を進める。
【0103】
第1の実施形態におけるデスプーラ1005は印刷処理を行う単位として1物理ページ数を想定している。また、ステップS1608で、1物理ページの印刷処理を行うのに必要な情報をファイルに逐次保存し、再利用可能な形式にしている。しかし、再利用不要な場合には、共有メモリ等の高速な媒体を使用し、1物理ページ単位で次々と上書きし、速度とリソースを節約するような実装形式であっても良い。
【0104】
また、デスプールの進捗よりも、スプールの進捗の方が早い場合や全ページのスプール終了後からデスプールが開始されるような場合、ステップS1608で1物理ページ毎にページ印刷可能を通知せずに、デスプール側の進捗に応じた通知を行っても良い。例えば、複数物理ページや全物理ページが印刷可能になったことを通知すれば、通知回数を節約することが可能である。
【0105】
一方、ステップS1610で、通知がデスプーラ1005からの1物理ページの印刷終了通知でないと判定した場合はステップS1613へ処理を進め、スプールファイルマネージャ1004がデスプーラ1005からの印刷終了通知か否かを判定する。通知がデスプーラ1005からの印刷終了通知と判定した場合はステップS1614へ処理を進め、スプールファイルマネージャ1004はスプールファイル1003の該当するページ描画ファイルの削除を行い、この処理を終える。しかし、デスプーラ1005からの印刷終了通知でなかった場合はステップS1615へ処理を進め、エラー処理を実行する。その後、不図示のその他の処理を実行し、次の通知を待つ。
【0106】
<スプールファイルの出力>
図17は、デスプーラ1005の印刷データ生成プロセスの詳細を示すフローチャートである。デスプーラ1005は、スプールファイルマネージャ1004からの印刷要求に応じて、スプールファイル1003から必要な情報(ページ描画ファイル及びジョブ設定ファイル)を読み出して印刷データを生成する。生成された印刷データにおけるプリンタへの転送方法については図10を用いて説明した通りである。
【0107】
印刷データの生成では、まず、ステップS1701で、上述のスプールファイルマネージャ1004からの通知を入力する。次に、ステップS1702で、入力された通知がジョブの終了通知か否かを判定し、ジョブ終了通知であるならばステップS1703へ処理を進め、終了フラグを立て、ステップS1705へ処理を進める。
【0108】
一方、ステップS1702で、ジョブ終了通知でない場合はステップS1704へ処理を進め、上述のステップS1608で1物理ページの印刷開始要求が通知されたか否かを判定する。ここで、開始要求と判定しなかった場合はステップS1710へ処理を進め、その他のエラー処理を行い、ステップS1701に戻り、次の通知を待つ。
【0109】
一方、ステップS1704で、1物理ページの印刷開始要求と判定した場合はステップS1705へ処理を進め、ステップS1704で通知を受けた印刷処理可能な物理ページのIDを保存する。そして、ステップS1706では、ステップS1705で保存した物理ページIDの全てのページに関して印刷処理が済んでいるか否かを判定する。ここで全物理ページの処理が済んでいる場合はステップS1707へ処理を進め、上述のステップS1703で終了フラグが立てられているか否かを判定する。終了フラグが立っている場合は、ジョブの印刷が終了したとみなし、デスプーラ1005の処理終了の通知をスプールファイルマネージャ1004に通知し、この処理を終える。一方、ステップS1707で、終了フラグが立っていない場合はステップS1701に戻り、次の通知を待つ。
【0110】
一方、ステップS1706で、印刷可能な物理ページが残っていると判定した場合にはステップS1708へ処理を進める。ステップS1708では、保存された物理ページIDから未処理の物理ページIDを順に読み出し、読み出した物理ページIDに対応する物理ページの印刷データ生成に必要な情報を読み込み、印刷処理を行う。この印刷処理はスプールファイル1003に格納された印刷要求命令をデスプーラ1005においてグラフィックエンジン902が認識可能な形式(GDI関数)に変換し、転送する。
【0111】
第1の実施形態のような、複数論理ページを1物理ページにレイアウトするような加工設定(以下Nページ印刷)については、このステップで縮小配置を考慮にいれながら変換する。必要な印刷処理を終えたならば、続くステップS1709で1物理ページの印刷データ生成終了の通知をスプールファイルマネージャ1004に対して行う。そして、再びステップS1706に戻り、ステップS1705で保存しておいた印刷可能な物理ページIDの全てについて印刷処理を行うまで繰り返す。
【0112】
以上、ディスパッチャ1001、スプーラ1002、スプールファイルマネージャ1004、デスプーラ1005を用いた印刷処理の流れである。上述したように処理することにより、スプーラ1002が中間コードを生成してスプールファイル1003に格納するタイミングでアプリケーション901が印刷処理から開放されるので、プリンタドライバ903に直接出力するよりも短時間で済む。
【0113】
また、スプールファイル1003にプリンタドライバの印刷設定を踏まえた中間ファイル(ページ描画ファイル、ジョブ設定ファイル)として一時保存しているので、実際に印刷されるべき印刷プレビューをユーザに認識させることが可能となる。また、複数のアプリケーションにより生成した印刷ジョブの結合や並べ替えが可能となり、印刷設定の変更も、再度アプリケーションを立ち上げて印刷することなく、ユーザに行わせることが可能となる。
【0114】
<符号画像処理の説明>
以下、符号画像生成に関する設定を行うユーザインターフェースの一例を、図18及び図19を用いて説明する。
【0115】
図18は、プリンタドライバ903内に配された符号画像生成に関するユーザインターフェースの初期画面の一例を示す図である。この例では、ダイアログ内のプロパティシートの中で、印刷品質シート1804選択時に符号画像生成に関係するユーザインターフェースが表示される。「文字情報を用紙に埋め込む」1801が選択されると、その下に配置されている「領域を指定する」1802チェックボックスが選択可能になる。ここで、「領域を指定する」1802が選択されていない時には、オートモードで処理が行われ、原稿中の全ての文字が符号画像生成の対象となる。また、「領域を指定する」1802が選択されると、「レイアウト指定」1803ボタンが有効になり、「レイアウト指定」1803が選択されると、図19が表示される。
【0116】
図19は、符号画像の対象領域を指定するエディタの設定画面を示す図である。ユーザがマウスで領域を指定すると、図19に示す1901のように、指定された領域が破線で表示され、ここが符号画像生成の対象領域となる。1902はエディタのズーム機能であり、例えば細かい領域を指定したい時には大きなズームを、細かい領域の設定ではなく、原稿の全体から領域を指定したい時には小さなズームを選択する。また、1ページ文書の全体を表示したい時には1905を、見開きで2ページ文書を表示したい時には1906を選択する。1903は次のページに移動する時、或いは前のページに移動する時に使用する。更に、全ページの符号画像生成の領域指定を終了すると、1904の閉じるを選択し、印刷を実行する。
【0117】
<符号画像の描画処理>
次に、符号画像における描画処理の流れについて、図20を用いて説明する。図20は、第1の実施形態における符号画像の描画処理を示すフローチャートである。図18に示すプロパティでOK1805が選択されると、印刷が実行され、まずステップS2001で、カウンタが初期化される。次に、ステップS2002で、カウンタが予め設定されている1物理ページあたりの論理ページ数になったかを判定し、論理ページ数と等しくなったらステップS2008へ処理を進め、等しくなければステップS2003へ処理を進める。
【0118】
このステップS2003では、カウンタを1増加させ、ステップS2004で、図19に示す1901で指定された領域の文字情報の符号画像を生成する。その後、ステップS2005で、物理用紙サイズとステップS2004で生成した符号画像サイズとから描画可能領域を求める。そして、ステップS2006で、その描画可能領域から描画する論理ページの縮小率を計算し、ステップS2007で、論理ページを物理用紙の有効印字領域内に収まるように縮小描画する。
【0119】
一方、上述のステップS2002で、論理ページ数が物理ページ数に等しくなったら、ステップS2008へ処理を進め、物理ページの描画を開始して処理を終了する。
【0120】
<符号画像内の文字情報>
図21は、符号画像の生成方法を説明するための図である。図21において、符号画像の対象は、ユーザが指定した領域1901の中にある文字情報である。上から見ていくと、まず2101に示す囲まれた文字が符号化の対象になる。これらの文字は、フォント名が明朝で、ポイント数は12ポイント、フォントスタイルは太字なので、2103に示すような情報が符号化の対象となる。
【0121】
次に、2102に示す部分はフォント名が明朝で、ポイント数は9ポイント、フォントスタイルは標準なので、2104に示すような情報が符号化の対象になる。また、情報の区切りは、フォント名、ポイント数、フォントスタイルが切り替わった時に行う。仮に、対象の領域にある全ての文字が同じフォント名、ポイント数、フォントスタイルを使っているときには、このような区切りは発生しない。
【0122】
次に、2103及び2104で記載されている各々のコードの意味を説明する。最初の“4S”はフォントスタイルと呼ばれているもので、標準、太字、イタリック、太字イタリックなどが代表的なものである。第1の実施形態では、下記の値が割り振られている。
【0123】
0 標準
1 イタリック
4 太字
8 太字イタリック。
【0124】
次の“16901T”はフォント名と呼ばれるもので、明朝、ゴシック、丸ゴシック、平成明朝などが代表的なフォントである。
【0125】
“12V”はポイント数で、10ポイントの場合は10V、9ポイントの場合は9Vがセットされる。
【0126】
“0X”、“400Y”はカーソル移動量と呼ばれるもので、前者はX方向(横方向)のカーソル移動量、後者はY方向(縦方向)のカーソル移動量を示す。ここで、カーソル移動の原点は2105に示す符号化された画像の左下で、例えば2103の場合、最初の“PDF文書情報を見る”というブロック内の左上の位置は、X方向(横方向)には移動量-10、Y方向(縦方向)には-2511移動することを示す。尚、各移動量の単位は、1mmである。即ち、X方向に移動量100、Y方向に移動量400のブロックが存在したとすると、ブロックと原点2105との距離は、紙上に印刷された際に、X方向で100mm、Y方向で400mmになる。また、2104の場合、最初の“PDF文書を表示すると、その文書のタイトル、使用しているフォント…”というブロック内の左上の位置は、X方向(横方向)には移動量-10、Y方向(縦方向)に-2215カーソルを移動することを示す。
【0127】
次に、符号化される画像の情報量を説明する。通常の原稿の場合、1行に約40文字、1ページに35行前後文字を記載するのが最も読みやすい原稿のフォーマットと言われている。文書作成でよく使われるMicrosoft社のMS Wordの場合、1行に36文字、1ページに29行文字を記載するのがデフォルトになっている。そのため、1ページ全体に文字が記載されていたとすると、以下の情報量となる。
【0128】
(一行の文字数)×(行数)×(2バイト)
=36×29×2
=2088バイト
また、上述したように、フォント名、ポイント数、フォントスタイルが変更になると、2103、2104に示すようなヘッダー(約10バイト)が必要になる。したがって、仮に3回フォント名が変更になったとすると、以下の情報量が1ページ全体に文字が記載された時の平均情報量となる。これは、それほど大きな情報量ではないので、符号化された際の画像も、大きくはならない。
【0129】
2088+(10×3)=約2kバイト。また、ブロックの位置情報も符号画像に含まれることになるが、ブロックが例えば3つしかないとすると、たとえ一つのブロックの位置情報あたり約4kバイトだとしても、計14kバイトになり、それほど大きな情報量ではない。
【0130】
<符号画像生成時のプレビュー>
図22は、符号画像が生成されたジョブをスプールファイルマネージャ1004で表示すための表現方法の一例を示す図である。この例の場合、“社内報pr.doc”というドキュメント名の印刷ジョブに、符号画像が適用されている。このことを示すために、コメント欄2201に“符号画像あり“の表示がなされている。この表示により、この印刷ジョブに符号画像が適用されていることをユーザは認識することができる。
【0131】
図23は、設定変更エディタ1007で印刷ジョブに符号画像が適用されていることをユーザに認識させる画面の一例を示す図である。図23に示すように、この例では仮想的な印刷イメージ2301にオリジナルの原稿を縮小し、それに符号画像を付加して表示する。これにより、符号画像が付加された印刷ジョブであることをユーザに認識させるだけでなく、オリジナルな原稿がどのぐらいの縮小率で縮小されているかも、同時に知らせることが可能になる。
【0132】
ここで、文字情報量が多過ぎて符号画像の面積が大きくなり過ぎた時、即ちオリジナル原稿の縮小率が大きくなり過ぎて原稿の可読性が悪くなった時には、この印刷ジョブをキャンセルし、再度、図19に示す1901から符号化対象の領域を減らせば良い。符号化された情報は、OCRなどで読み取れなかった文字の修復を目的としているため、例えばOCRでの認識率が高い大きなフォントやフォントスタイルが標準などの文字領域を符号化の対象から外すことで、符号画像の面積を小さくすることができる。
【0133】
以上により、文字情報と当該文字情報の位置情報とを一緒に符号化した符号画像と、当該文字情報に基づいて生成された文字画像を、同じ原稿へ画像形成装置に画像形成させる情報処理装置が提供可能となる。
【0134】
[第2の実施形態]
次に、図面を参照しながら本発明に係る第2の実施形態を詳細に説明する。第2の実施形態では、第1の実施形態で説明した符号画像と文字画像とがシート上に画像形成されたシートをスキャナで読み込み、文字認識した文字認識情報を符号画像を復号化した情報との対応関係に基づいて修正するものである。
【0135】
以下、文字情報とその文字情報の位置情報とを一緒に符号化した符号画像と、その文字情報に基づいて生成した文字画像とを両方印刷した原稿をスキャナで読み込み、OCRをかけたときの処理を、図24〜図26を用いて説明する。
【0136】
図24は、第2の実施形態におけるデジタル複写機と符号画像と文字画像とを含む原稿を示す図である。図24に示すように、デジタル複写機のスキャナ部2401は、原稿上の画像を露光走査して得られた反射光をCCDに入力することで画像の情報を電気信号に変換する。そして、スキャナ部2401は電気信号をR,G,B各色からなる輝度信号に変換し、変換された輝度信号を画像データとしてデジタル複写機の不図示のコントローラに出力する。
【0137】
ユーザが原稿を原稿フィーダ2402又は不図示の原稿台にセットし、操作部2403から読み取り開始を指示すると、不図示のコントローラからスキャナ部2401に原稿の読み取り指示が与えられる。この指示を受けると、スキャナ部2401は、原稿フィーダ2402のトレイから原稿を1枚ずつフィードして、原稿の読み取り動作を行う。
【0138】
尚、原稿の読み取り方法は、原稿フィーダ2402による自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であっても良い。
【0139】
次に、スキャナ部2401で読み取れた画像データに含まれる符号画像から文字情報と位置情報とを読み取り、文字認識処理するスキャナ画像処理部の処理を、図25を用いて説明する。
【0140】
図25は、第2の実施形態におけるスキャナ画像処理部の処理を示すフローチャートである。まず、ステップS2501でスキャナ部2401から受取った画像データに対して、ステップS2502で、画像データ内に符号画像データが存在するか否かを判断する。ここで、符号画像データが存在する場合にはステップS2503へ処理を進め、符号画像データを復号化して、その中の文字情報を読み取る。ここで読み取る文字情報としては、フォント名、ポイント数、フォントスタイル、位置情報、フォントコードなどである。
【0141】
一方、上述のステップS2502で、符号画像データが存在しない場合にはステップS2504へ処理を進め、原稿画像内の文字画像にOCR(文字認識)をかけて、文字画像を文字情報に変換し、文字として認識する。次に、ステップS2505で、復号化された文字情報の中に位置情報が含まれているか否かを確認する。尚、復号化された文字情報は、同じフォント名やフォントスタイル毎に2103や2104といったブロックになっており、このブロックの先頭にはフォント名や位置情報が必ず記載されている。そのため、位置情報をキーワードに、2103や2104といったブロックの区切りを認識する。
【0142】
次に、ステップS2505で、2103のブロックを検出した場合を、図26を用いて説明する。尚、ステップS2503で復号化された文字情報には、以下の情報が含まれている。
【0143】
フォントスタイル:太字
フォント名 :明朝
ポイント数 :12ポイント
X方向移動量 :-10
Y方向移動量 :-2511
フォントコード :PDF文書情報を見る
まず位置情報として、X方向移動量は-10、Y方向移動量は-2511なので、符号画像左下2105を原点として、文字認識情報の開始位置を見つけ出し、一続きの文字認識情報がどの文字認識情報であるかを特定する。ここで、2103に示す例だと、2601の「PDL文章嬢報を見る」が文字認識情報であり、これとフォントコードの「PDL文章情報を見る」を比較する。ステップS2507では、比較の結果が、“情”が“嬢”に置き換わっているため、ステップS2504で認識された文字を、ステップS2503で復号化された文字情報に修正して置き換える。また、ステップS2504で認識されたフォントスタイルは標準であるが、ステップS2503で復号化された文字情報では太字になっているため、フォントスタイルの修正を行う。
【0144】
そして、全ての文字列に対する修正が終わったら、ステップS2508で次の位置情報の書かれているブロックを探す。
【0145】
ここで、ステップS2508で2104のブロックが見つかった場合の例を説明する。ステップS2503で復号化された文字情報には、以下の内容が格納されている。
【0146】
フォントスタイル:標準
フォント名 :明朝
ポイント数 :9ポイント
X方向移動量 :-10
Y方向移動量 :-2215
フォントコード :PDF文書を表示すると、その文書のタイトル…(省略)
まず位置情報として、X方向移動量は-10、Y方向移動量は-2215なので、符号画像左下2105を原点として、文字認識情報の開始位置を見つけ出し、一続きの文字認識情報がどの文字認識情報であるかを特定する。ここで、2104の場合だと、2602の「PDL文書を表字すると、その文書」が文字認識情報であり、これとフォントコードの「PDF文書を表示すると、その文書」を比較する。ステップS2507では、比較の結果が、“示”が“字”に置き換わっているため、ステップS2504で認識された文字を、ステップS2503で復号化された文字情報に修正して置き換える。また、ステップS2504で認識されたその他のフォント属性(フォントスタイル、ポイント数やフォント名)は、ステップS2503で復号化された文字情報と同じであるため、特に修正は行わない。
【0147】
そして、全ての修正が終わったら、ステップS2508で次の位置情報の書かれているブロックを探し、ブロックがなくなったら本処理を終了する。
【0148】
第2の実施形態では、符号画像の復号化処理(S2503)を行った後に、原稿画像内の文字画像の文字認識処理(S2504)を行っているが、同時に行っても良い。
【0149】
以上、説明したように、原稿上の文字のフォントコードや、文字の位置情報、フォントスタイルを含む符号画像を生成することにより、OCRによる文字の認識率を100%にできる。更に、オリジナル原稿に使われているフォント名やポイント数、或いはフォントスタイルといった、従来のOCRでは変換が難しい文字修飾情報も、忠実に変換後の電子データに反映させることができる。
【0150】
以上のように、本実施例においては、複数の文字情報が画像化されて得られた複数の文字画像を含むブロックの位置情報と複数の文字情報とを含んだ符号画像だけではなく、文字画像をさらに形成している点が注目すべきである。
【0151】
そして、本実施例では、複数の文字画像を含むブロックの位置情報と、複数の文字画像を夫々文字認識した結果とから、各文字画像の正確な位置情報を割り出している。その後、符号画像内の文字情報が文字化されてできた各文字画像を、上記割り出された各文字画像の正確な位置情報に配置している。
【0152】
この本実施例に対して、以下のような意見もあるであろう。
【0153】
即ち、上記符号画像さえあれば、原稿をスキャンした際に、その符号画像を復号化して文字情報を取り出すことで文字情報を忠実に再現することができるはずであり、文字画像は必要ないのではないか。しかしながら、この意見は間違っている。
(1)文字画像がなく、さらに、複数の文字情報の夫々の位置情報は符号画像に含まれておらず、複数の文字情報を含むブロックの位置情報しか符号画像に含まれていないと仮定する。すると、スキャン時に、そのブロックのうちのどこに各文字情報を配置すればよいのかがわからない。
(2)文字画像がなく、さらに、複数の文字情報の夫々の位置情報が全て符号画像に含まれていると仮定する。すると、スキャン時に、各文字情報を正確な位置に配置することはできるものの、「複数の文字情報の夫々の位置情報」という情報が余分に符号画像に含まれることになってしまう。そして、この情報量は非常に大きく、例えばA4の紙内の1文字あたり約3kバイトにも及ぶことになる。但し、この60kバイトという数字は、A4の縦297mm×A4の横210mm÷8から求められている。
【0154】
以上、上記(1)(2)の理由から、本実施形態では、複数の文字情報が画像化されて得られた複数の文字画像を含むブロックの位置情報と複数の文字情報とを含んだ符号画像だけではなく、文字画像をさらに形成しているのである。
【0155】
尚、本発明は複数の機器(例えば、ホストコンピュータ,インターフェース機器,リーダ,プリンタなど)から構成されるシステムに適用しても、1つの機器からなる装置(例えば、複写機,ファクシミリ装置など)に適用しても良い。
【0156】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(CPU若しくはMPU)が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【0157】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【0158】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク,ハードディスク,光ディスク,光磁気ディスク,CD−ROM,CD−R,磁気テープ,不揮発性のメモリカード,ROMなどを用いることができる。
【0159】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【0160】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【0161】
【図1】第1の実施形態による画像形成システムの全体構成を示すブロック図である。
【図2】第1の実施形態における画像形成装置の外観を示す図である。
【図3】画像形成装置110における制御ユニット111の詳細な構成を示すブロック図である。
【図4】タイル画像データを概念的に表した図である。
【図5】図3に示すスキャナ画像処理部312の構成の一例を示すブロック図である。
【図6】図3に示すプリンタ画像処理部315の構成の一例を示すブロック図である。
【図7】画像形成装置110における初期画面の一例を示す図である。
【図8】復号化・再符号化処理を示すフローチャートである。
【図9】パーソナルコンピュータ101における印刷処理に関するモジュールの一例を示す図である。
【図10】パーソナルコンピュータ101における印刷処理に関する他のモジュールの一例を示す図である。
【図11】プリンタドライバのプロパティシートを示す図である。
【図12】プレビューア1006によって表示されるプレビュー画面の一例を示す図である。
【図13】スプールファイルマネージャ1004の画面の一例を示す図である。
【図14】スプーラ1002が生成したスプールファイル1003をページ単位に保存する処理を示すフローチャートである。
【図15】印刷設定を入力するダイアログを示す図である。
【図16】スプールファイルマネージャ1004のスプールファイル生成プロセス及び印刷データ生成プロセスの間の詳細な制御を示すフローチャートである。
【図17】デスプーラ1005の印刷データ生成プロセスの詳細を示すフローチャートである。
【図18】プリンタドライバ903内に配された符号画像生成に関するユーザインターフェースの初期画面の一例を示す図である。
【図19】符号画像の対象領域を指定するエディタの設定画面を示す図である。
【図20】第1の実施形態における符号画像の描画処理を示すフローチャートである。
【図21】符号画像の生成方法を説明するための図である。
【図22】符号画像が生成されたジョブをスプールファイルマネージャ1004で表示すための表現方法の一例を示す図である。
【図23】設定変更エディタ1007で印刷ジョブに符号画像が適用されていることをユーザに認識させる画面の一例を示す図である。
【図24】第2の実施形態におけるデジタル複写機と符号画像と文字画像とを含む原稿を示す図である。
【図25】第2の実施形態におけるスキャナ画像処理部の処理を示すフローチャートである。
【図26】符号画像を復号化した結果に基づき文字認識結果を修正する処理を説明するための図である。
【符号の説明】
【0162】
100 LAN
101 パーソナルコンピュータ(PC)
102 公衆回線(WAN)
110 画像形成装置
111 制御ユニット(Control Unit)
112 操作部
113 スキャナ部
114 プリンタ部
120 画像形成装置
121 制御ユニット(Control Unit)
122 操作部
123 スキャナ部
124 プリンタ部
130 画像形成装置
131 制御ユニット(Control Unit)
132 操作部
133 スキャナ部
134 プリンタ部

【特許請求の範囲】
【請求項1】
文字情報を符号化して符号画像を生成する符号化手段と、
前記符号化手段で生成された符号画像をシート上に画像形成する画像形成手段とを有することを特徴とする画像形成装置。
【請求項2】
前記画像形成手段は、前記文字情報から生成された文字画像を、前記符号画像と共に前記シート上に画像形成することを特徴とする請求項1に記載の画像形成装置。
【請求項3】
前記文字情報の位置情報とは、前記符号画像と前記文字情報から生成された文字画像との位置に関する情報であることを特徴とする請求項2に記載の画像形成装置。
【請求項4】
前記文字情報の位置情報とは、前記符号画像における予め決められた位置と、前記文字情報から生成された文字画像における予め決められた位置との関係を示す情報であることを特徴とする請求項2に記載の画像形成装置。
【請求項5】
画像形成装置であって、
文字情報を符号化して生成された符号画像と、前記文字情報に基づいて生成された文字画像とを含む原稿画像を読み取る読取手段と、
前記読取手段で読み取られた原稿画像に含まれる符号画像を復号化して情報を取り出す取出手段と、
前記読取手段で読み取られた原稿画像に含まれる文字画像を文字認識して文字認識情報を得る文字認識手段と、
前記取出手段で取り出された情報に基づいて前記文字認識手段で得られた文字認識情報を修正する修正手段とを有することを特徴とする画像形成装置。
【請求項6】
前記読取手段で読み取られた原稿画像内の文字画像を、前記修正手段での修正後の文字認識情報に置き換える置き換え手段を更に有することを特徴とする請求項5に記載の画像形成装置。
【請求項7】
前記修正手段は、前記取出手段で取り出された情報と前記文字認識手段で得られた文字認識情報との比較を行うことで対応関係を決定し、当該決定された対応関係に基づいて、前記文字認識手段で得られた文字認識情報を修正することを特徴とする請求項5又は6に記載の画像形成装置。
【請求項8】
画像形成装置の制御方法であって、
文字情報と当該文字情報の位置情報とを符号化して符号画像を生成する符号化工程と、
前記符号化工程で生成された符号画像をシート上に画像形成する画像形成工程とを有することを特徴とする画像形成装置の制御方法。
【請求項9】
前記画像形成工程は、前記文字情報から生成された文字画像を、前記符号画像と共に前記シート上に画像形成することを特徴とする請求項8に記載の画像形成装置の制御方法。
【請求項10】
前記文字情報の位置情報とは、前記符号画像と前記文字情報から生成された文字画像との位置に関する情報であることを特徴とする請求項9に記載の画像形成装置の制御方法。
【請求項11】
前記文字情報の位置情報とは、前記符号画像における予め決められた位置と、前記文字情報から生成された文字画像における予め決められた位置との関係を示す情報であることを特徴とする請求項9に記載の画像形成装置の制御方法。
【請求項12】
文字情報を符号化して生成された符号画像と、前記文字情報に基づいて生成された文字画像とを含む原稿画像を読み取る読取工程と、
前記読取工程で読み取られた原稿画像に含まれる符号画像を復号化して情報を取り出す取出工程と、
前記読取工程で読み取られた原稿画像に含まれる文字画像を文字認識して文字認識情報を得る文字認識工程と、
前記取出工程で取り出された情報に基づいて前記文字認識工程で得られた文字認識情報を修正する修正工程とを有することを特徴とする画像形成装置の制御方法。
【請求項13】
前記読取工程で読み取られた原稿画像内の文字画像を、前記修正工程での修正後の文字認識情報に置き換える置き換え工程を更に有することを特徴とする請求項12に記載の画像形成装置の制御方法。
【請求項14】
前記修正工程は、前記取出工程で取り出された情報と前記文字認識工程で得られた文字認識情報との比較を行うことで対応関係を決定し、当該決定された対応関係に基づいて、前記文字認識工程で得られた文字認識情報を修正することを特徴とする請求項12又は13に記載の画像形成装置の制御方法。
【請求項15】
請求項8乃至14の何れか一項記載の画像形成装置の制御方法をコンピュータに実行させるためのプログラム。
【請求項16】
請求項15記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公開番号】特開2008−148263(P2008−148263A)
【公開日】平成20年6月26日(2008.6.26)
【国際特許分類】
【出願番号】特願2006−336381(P2006−336381)
【出願日】平成18年12月13日(2006.12.13)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】