以下、本発明の好ましい実施形態について、添付図面を参照して説明する。図1は、本発明の通信装置の一実施形態である多機能周辺装置(以下、「MFP(Multi Function Peripheral)」と称す)1の電気的構成を示したブロック図である。
MFP1はFAX機能を有する。特に、本実施形態のMFP1は、受信側装置が受信した画像データを両面印刷する場合であっても、当該受信側装置において視認性良く画像を印刷できるように画像データをFAX送信する。
MFP1には、CPU10、フラッシュメモリ11、RAM12、LCD16、タッチパネル17、スキャナ18、ADF19、プリンタ20、NCU21、モデム22が主に設けられている。CPU10、フラッシュメモリ11、RAM12は、バスライン23を介して互いに接続されている。また、LCD16、タッチパネル17、スキャナ18、ADF19、プリンタ20、NCU21、モデム22、バスライン23は、入出力ポート24を介して互いに接続されている。
CPU10は、フラッシュメモリ11に記憶される固定値やプログラム、RAM12に記憶されているデータなどに従って、MFP1が有する機能の制御や、入出力ポート24と接続された各部を制御する。フラッシュメモリ11は、制御プログラム11aなどが記憶された書換可能な不揮発性のメモリである。CPU10は、制御プログラム11aに従い、後述する片面FAX送信処理(図4)および両面FAX送信処理(図8)を実行する。
RAM12は、書換可能な揮発性のメモリであり、長尺画像メモリ12aと、分割画像メモリ12bとが設けられる。長尺画像メモリ12aは、スキャナ18により原稿30が読み取られた場合に、その原稿30の長尺画像データが記憶されるメモリである。分割画像メモリ12bは、原稿30の長尺画像データに基づいて生成される分割画像データが記憶されるメモリである。
LCD16は、液晶表示装置である。タッチパネル17は、MFP1に対するユーザからの指示入力を受け付ける入力装置である。スキャナ18は、撮像素子をライン状に配置した読取ユニット18aを備える。スキャナ18は、読取ユニット18aに対して相対的に移動する原稿画像からの反射光に基づいて、原稿画像をライン毎に読み取り、その原稿画像に対応する画像データを生成する。なお、読取ユニット18aにおける撮像素子の配列方向を、以下、主走査方向と称する。
ADF19は、所定位置にセットされた原稿を一枚ずつスキャナ18に搬送する自動原稿搬送装置であって、原稿が所定位置にセットされているか否かを検出する原稿検出センサ19aが設けられる。以下、ADF19による原稿30の搬送方向を副走査方向と称する。
プリンタ20は、画像データに基づく画像などを記録紙に印刷する。NCU21は、電話回線の制御を行う。モデム22は、FAX送信時には送信信号を変調し、FAX受信時には受信した変調信号を復調する。
図2は、MFP1が実行する片面FAX送信処理の一例を説明する図である。スキャナ18は、ADF19によって副走査方向に搬送される原稿30に形成された原稿画像31を、主走査方向に沿ったライン毎に読み取り、原稿画像31に対応した長尺画像データを生成する。
片面FAX送信処理では、読取順序において連続する2枚分の原稿画像31を1セットとし、1セット分の原稿画像31を読み取る度に1つのジョブを生成し、受信側装置に送信する。
例えば、図2(a)に示す3枚の原稿30がADF19にセットされた場合、MFP1は、まず、1,2枚目の原稿画像31を1セットとする。そして、図2(b)に示すように、1枚目の原稿画像31から分割される複数の分割画像32に対応した分割画像データと、2枚目の原稿画像31から分割される複数の分割画像32に対応した分割画像データとを、1ページずつ交互に送信する。例えば、図2(b)に示す例では、1枚目の原稿画像31から生成される分割画像データを、1,3ページ目として送信し、2枚目の原稿画像31から生成される分割画像データを、2,4ページ目として送信する。このような送信順序で送信する場合の効果については、図3を参照して後述する。
ここで、例えば、図2(a)に示すように、原稿30の総枚数が奇数である場合には、半端となる1枚の最終原稿30(図2に示す例では3枚目の原稿30)で、1つのジョブを生成する。
具体的には、図2(c)に示すように、最終の原稿画像31から分割される分割画像32に対応する分割画像データと、白画像33(全画素が白を示す画像)に対応する1ページ分の白紙データとを、1ページずつ交互に送信する。
次に、MFP1が送信した分割画像データに基づき受信側装置が両面印刷を実行した場合の印刷結果を、図3を参照して説明する。ここで、受信側装置は、両面印刷を実行する場合、画像データを受信した順序で印刷するものとする。すなわち、MFP1が(n−1)ページ目に送信した分割画像データに基づく画像とnページ目に送信した分割画像データに基づく画像とを、1枚の記録紙40の表面と裏面とに印刷する。そして、次の分割画像データをさらに受信した場合には、次の記録紙40の表面に画像を印刷する。
図3(a)は、図2(b)に示した1ジョブ目に基づく印刷結果を示す図である。図3(a)に示すように、受信側装置は、1,2ページ目に受信した分割画像データに基づく画像を、1枚目の記録紙40の表面、裏面にそれぞれ印刷する。同様に、3,4ページ目に受信した分割画像データに基づく画像を、2枚目の記録紙40の表面、裏面に印刷する。
その結果、表面には1枚目の原稿画像31(本例では、ひらがなが形成された画像)から生成された分割画像データに基づく画像が印刷され、裏面には2枚目の原稿画像31(本例ではアルファベットが形成された画像)から生成された分割画像データに基づく画像が印刷された複数枚の記録紙40が得られる。
したがって、受信側装置のユーザは、複数の記録紙40の表面の画像から1枚目の原稿画像31に対応した画像を形成でき、裏面の画像からは、2枚目の原稿画像31に対応した画像を形成できる。例えば、複数枚の記録紙40を適切な配置で繋ぎ合わせることにより、その表面には1枚目の原稿画像31に対応した全体画像を形成でき、裏面には2枚目の原稿画像31に対応した全体画像を形成できる。よって、1の原稿画像31に対応した画像の全体を確認するために、1枚の記録紙40の両面を確認しなくても良い。
図3(b)は、図2(c)に示す2ジョブ目に基づいて、受信側装置が印刷する画像を示す図である。この場合、受信側装置においては、3枚目の原稿画像31から生成された分割画像データに対応する画像を、複数枚の記録紙40の表面に印刷する。一方、これら複数枚の記録紙40の裏面は白画像とされる(すなわち、画像が印刷されない)。よって、受信側装置のユーザは、複数枚の記録紙40の表面のみから、3枚目の原稿画像31に対応した画像を視認できる。
このように、片面FAX送信処理によれば、受信側装置が受信した分割画像データを両面印刷する場合であっても、当該受信側装置において視認性良く画像を印刷できるように、受信側装置に対して分割画像データを送信できる。また、原稿の総枚数が奇数である場合であっても、最終原稿に対応する画像まで視認性良く印刷できるように、受信側装置に対して分割画像データを送信できる。
図4は、MFP1が実行する片面FAX送信処理を示すフローチャートである。この処理は、ユーザにより片面FAX送信が指示された場合に開始される。まず、この処理で使用するフラグおよび変数を説明する。「ScanFlag」は、ADF19にセットされた原稿30を1枚ずつ順番に読み取る場合に、これから読み取る原稿30が奇数枚目なのか、偶数枚目なのかを示すフラグである。「Scan_Y1」、「Scan_Y2」は、1セットを構成する2枚の原稿30に対応した長尺画像データのうち、1枚目の原稿30の長尺画像データに含まれるライン数(すなわち副走査方向サイズ)、2枚目の原稿30の長尺画像データに含まれるライン数を示す。
「Job_Cnt」は、ユーザが片面FAX送信を指示してから、現在実行中のジョブが何ジョブ目であるかを示す。「N」は、ユーザが片面FAX送信処理を指示してから、これまでにスキャナ18により読み取られた原稿30の枚数を示す。「Page_y」は、分割画像データに含めるライン数(すなわち、分割画像データの副走査方向サイズ)を示す。
まず、CPU10は、Scan_Y1,Scan_Y2を0に初期化して、ScanFlag,Job_Cnt,Nを1に初期化し、Page_yを0に初期化する(S401)。次に、CPU10は、受信側装置との間で電話回線を閉結してネゴシエーションを行うことにより、受信側装置からDIS信号を受信し、そのDIS信号から受信側装置に関する情報を取得する(S402)。具体的には、受信側装置が両面印刷を行うか否かを示す印刷機能情報と、受信側装置が受信可能な画像データの主走査方向サイズを示す主走査サイズ情報とを、DIS信号から読み出す。なお、主走査サイズ情報がA4を示す場合、受信側装置は、A4およびレターの両方のサイズの画像データを受信可能である。よって、本実施形態では、A4およびレターのうち、ユーザにより選択されたサイズで分割画像データを生成し、送信することとしている。
具体的には、主走査サイズ情報に基づいて受信側装置がA4の画像データを受信可能であると判断され、且つ、印刷機能情報に基づいて受信側装置が両面印刷を行うと判断される場合(S403:Yes)、CPU10は、A4とレターとのうち、ユーザにより選択された一方のサイズを示すサイズ情報を取得する(S404)。なお、このサイズ情報は、例えば、フラッシュメモリ11などに予め記憶されていても良いし、ユーザに入力させても良い。
次に、CPU10は、サイズ情報に対応したライン数を、フラッシュメモリ11から読み出し、Page_yに設定する(S405)。具体的には、生成すべき分割画像データのライン数、すなわち、サイズ情報が示すサイズの記録紙40に印刷可能な分割画像32に対応した画像データのライン数を、Page_yに設定する。
次に、CPU10は、読取ユニット18aに対して原稿画像31が副走査方向へ相対的に移動するように、ADF19により原稿画像31を搬送させつつ、副走査方向における原稿画像31の一端から他端までを、読取ユニット18aで読み取り、生成した長尺画像データを長尺画像メモリ12aに記憶させる(S406)。
そして、ScanFlagが1である場合(S407:Yes)、すなわち、今回読み取ったN枚目が奇数枚目である場合、CPU10は、長尺画像データに含まれるライン数を、Scan_Y1に設定する(S408)。一方、ScanFlagが0である場合(S407:No)、すなわち、今回読み取ったN枚目が偶数枚目である場合、CPU10は、長尺画像データに含まれるライン数を、Scan_Y2に設定する(S409)。次に、CPU10は、Nに1を加算する(S410)。
ADF19にセットされた原稿30がすべて読み取られた場合、S411またはS412の判断が肯定されるが、この場合の処理については後述する。一方、ADF19に原稿30が残っている場合であって(S411:No,S412:No)、奇数枚目を読み取った後である場合、すなわち、原稿検出センサ19aがオンであり、且つ、ScanFlagが1の場合(S413:Yes)、次は、偶数枚目を読み取るので、ScanFlagに0を設定して(S414)、S406の処理へ戻る。
一方、偶数枚目を読み取った後、ADF19に原稿が残っている場合、すなわち、原稿検出センサ19aがオン、且つ、ScanFlagが0である場合(S413:No)、すなわち、1セットを構成する2枚分の原稿画像31を読み取った場合、CPU10は、2ページ処理を実行することにより(S415)、Job_Cnt番目のジョブを生成する。2ページ処理については、図5を参照して後述する。
次に、CPU10は、ScanFlagに1を設定して(S416)、Job_Cnt番目のジョブの分割画像データを、ページ単位で受信側装置へ送信する(S417)。具体的には、図2(b)を参照して説明したように、(N−1)枚目の原稿画像31に基づく分割画像データとN枚目の原稿画像31に基づく分割画像データとを、1ページずつ交互に送信する。そして、CPU10は、Job_Cntに1を加算して(S418)、S406の処理へ戻る。
このようにして処理を繰り返すうちに、ADF19にセットされた全ての原稿30の読み取りが終了して原稿検出センサ19aがオフとなり、且つ、ScanFlagが1である場合(S411:Yes)、すなわち、最後に読み取った原稿30が奇数枚目の場合、原稿30の総枚数が奇数であったと判断される。
この場合、CPU10は、最終原稿の原稿画像31から分割画像データを生成する1ページ処理を実行して(S419)、Job_Cnt番目のジョブを生成する。1ページ処理については、図7を参照して後述する。そして、CPU10は、Job_Cnt番目のジョブの分割画像データを、受信側装置へ送信し(S420)、本処理を終了する。
一方、原稿検出センサ19aがオフ、且つ、ScanFlagが0の場合(S412:Yes)、すなわち、最後に読み取った原稿30が偶数枚目の場合、原稿30の総枚数が偶数であったと判断される。
この場合、CPU10は、2ページ処理を実行する(S415)。そして、Job_Cnt番目のジョブに含まれる分割画像データを、受信側装置へ送信し(S420)、本処理を終了する。
なお、受信側装置がA4サイズの画像データを受信可能ではない場合、または、受信側装置が両面印刷を行わない場合(S403:No)、CPU10は、ADF19にセットされている複数枚の原稿30を、1枚ずつスキャナ18に読み取らせ、各々の長尺画像データを長尺画像メモリ12aに記憶させる(S421)。次に、CPU10は、各々の長尺画像データを、受信側装置に対し通常通りに1ジョブとして送信し(S422)、本処理を終了する。ここで、「通常通りに送信」とは、長尺画像データを分割せずに、読み取った順序で順次、受信側装置へ送信することを意味する。
本実施形態の片面FAX送信処理によれば、受信側装置が両面印刷を行うと判断されることを条件として、(N−1)枚目の原稿画像31に基づく分割画像データと、N枚目の原稿画像31に基づく分割画像データとを1ページずつ交互に送信する。よって、受信側装置の印刷機能に適した送信順序で、画像データを送信できる。
図5は、MFP1が実行する2ページ処理(S415)を示すフローチャートである。この処理は、(N−1)枚目とN枚目の原稿画像31の長尺画像データから分割画像データを生成する処理である。
この処理で使用する変数を説明する。「Trim_Start」は、長尺画像データから一の分割画像データをトリミングする(抽出する)場合のトリミング開始位置(副走査方向におけるライン位置)を示す。「D」は、分割画像データをトリミングする回数を示す。「i」は、現在、何回目のトリミングを実行しているかを示す。
まず、CPU10は、Trim_Startを0に初期化し(S501)、Scan_Y1とScan_Y2とが等しい否かを判断する(S502:Yes)。ここで、Scan_Y1とScan_Y2とが等しくない場合(S502:No)、すなわち、(N−1)枚目の長尺画像データのライン数と、N枚目の長尺画像データのライン数とが等しくない場合、両者を一致させるための処理を行う。
具体的には、図6(a)に示すように、(N−1)枚目の長尺画像データとN枚目の長尺画像データとのうち、副走査方向におけるサイズがより小さい長尺画像データ(すなわちライン数が小さい長尺画像データ)の副走査方向のサイズが、副走査方向におけるサイズがより大きい長尺画像データの副走査方向サイズと等しくなるように、一方の長尺画像データに白紙データ34を付加する。
図5に戻り説明する。Scan_Y1がScan_Y2を超えている場合(S503:Yes)、すなわち、(N−1)枚目の長尺画像データのライン数が、N枚目の長尺画像データのライン数よりも大きい場合、CPU10は、N枚目の長尺画像データに、(Scan_Y1−Scan_Y2)ライン分の白紙データ34を付加する(S504)。一方、Scan_Y1がScan_Y2以下の場合(S503:No)、CPU10は、(N−1)枚目の長尺画像データに、(Scan_Y2−Scan_Y1)ライン分の白紙データ34を付加し(S505)、Scan_Y1に、Scan_Y2の値を設定する(S506)。このようにして、2つの長尺画像データのライン数を一致させた後、S507以降のステップで分割画像データを生成することにより、分割画像データを生成する処理の負荷を軽減できるのであるが、詳細は後述する。
なお、Scan_Y1とScan_Y2とが等しい場合(S502:Yes)、すなわち、(N−1)枚目の長尺画像データと、N枚目の長尺画像データのライン数が最初から等しい場合には、S503からS506を実行せず、S507のステップに移行する。
次に、CPU10は、ceil(Scan_Y1/Page_y)を算出して、その算出結果をDに設定し、また、iに1を設定する(S507)。ここで、ceil(Scan_Y1/Page_y)は、(Scan_Y1/Page_y)を算出し、更に、少数点以下を切り上げた整数値を算出することを意味する。次に、CPU10は、Job_Cnt番目のジョブを生成し(S508)、長尺画像データから分割画像データを生成する。
図6(b)から(d)を参照して、分割画像データを生成する処理について説明する。なお、分割画像データを生成する段階においては、(N−1)枚目の長尺画像データとN枚目の長尺画像データの副走査方向サイズは、共にScan_Y1とされている。
図6(b)に示すように、1つ目の分割画像データを生成する場合、トリミング開始位置(副走査方向におけるライン位置)を示す変数Trim_startは、0である。よって、長尺画像データの0ライン目から、副走査方向終端側に向かってPage_yライン分のデータ31aをトリミングして、1つ目の分割画像データとする。すなわち、ユーザによって指定されたサイズの記録紙40に印刷可能な分割画像32に対応した分割画像データを生成する。
次に、1つ目の分割画像データのトリミング終了位置(Page_y)を、Trim_startとして設定する。そして、図6(c)に示すように、Trim_startから副走査方向終端側に向かってPage_yライン分のデータ31bをトリミングして、2つ目の分割画像データとする。
次に、例えば、図6(d)に示すように、トリミング可能な残りのデータサイズがPage_y分よりも小さい場合には、残りのデータ31cを分割画像データとする。具体的には、Trim_startから、(Scan_Y1−Trim_start)ライン分のデータ31cを、分割画像データとしてトリミングする。
図5に戻り、分割画像データの生成をフローチャートを参照して説明する。まず、(Scan_Y1−Trim_start)が、Page_y以上の場合(S509:No)、CPU10は、(N−1)枚目の長尺画像データについて、Trim_startから、Page_yライン分のトリミングを行って分割画像データを生成し、データAとする(S510)。また、N枚目の長尺画像データについて、Trim_startから、Page_yライン分のトリミングを行って分割画像データを生成し、データBとする(S511)。次に、CPU10は、Trim_startにPage_yを加算し(S512)、S515の処理へ移行する。
そして、CPU10は、データAを、Job_Cnt番目のジョブにおける(2*i−1)ページ目の分割画像データとし(S515)、データBを、Job_Cnt番目のジョブにおける(2*i)ページ目の分割画像データとする(S516)。次に、CPU10は、iに1を加算し(S517)、iがD以下の場合(S518:Yes)、S509の処理に戻り、分割画像データの生成を繰り返す。
上述したように、(N−1)枚目の長尺画像データとN枚目の長尺画像データとは、ライン数が等しくなるように、白紙データ34が付加されている。よって、S507,S509など、長尺画像データのライン数(Scan_Y1)を用いた演算の結果は、(N−1)枚目とN枚目とに共通して使用できる。よって、ライン数が互いに異なる長尺画像データからそれぞれ分割画像データを生成する場合に比較して、処理の負荷が軽減されるのである。
このようにして処理を繰り返すうちに、(Scan_Y1−Trim_start)がPage_yより小さくなると(S509:Yes)、CPU10は、(N−1)枚目の長尺画像データについて、Trim_startから、(Scan_Y1−Trim_start)ライン分のトリミングを行って分割画像データを生成し、データAとする(S513)。また、CPU10は、N枚目の長尺画像データについて、Trim_startから、(Scan_Y1−Trim_start)ライン分のトリミングを行って分割画像データを生成し、データBとする(S514)。このようにして、長尺画像データの終端までトリミングを終了すると、iがDを超えるので(S518:No)、CPU10は、本処理を終了する。
2ページ処理によれば、副走査方向における先端(0ライン目)側により近い分割画像32に対応する分割画像データには、より小さいページ番号を割り当てることができる。上述したように、MFP1から受信側装置へは、ページ番号の順に分割画像データを送信するので、先端側により近い分割画像32に対応する画像データほど、より早い送信順序で送信される。一方、受信側装置においては、画像データを受信した順序に両面印刷を行う。よって、受信側装置のユーザは印刷順序に従って記録紙40を並べれば良く、(N−1)枚目の原稿画像31に対応した画像およびN枚目の原稿画像に対応した画像を、容易に形成できる。
図7は、MFP1が実行する1ページ処理(S419)を示すフローチャートである。この処理において、図5に示す2ページ処理と同一の部分については、同一のステップ番号を付して、その説明を省略する。この処理は、原稿30の総枚数が奇数であると判断される場合に実行される処理であって、最終原稿の原稿画像31から分割画像データを生成する処理である。
まず、(Scan_Y1−Trim_start)がPage_y以上の場合(S509:No)、CPU10は、N枚目の長尺画像データについて、Trim_startから、Page_yライン分のトリミングを行って分割画像データを生成し、データAとする(S701)。また、CPU10は、Page_yライン分の白紙データ34を生成して、データBとする(S702)。そして、CPU10は、Trim_startにPage_yを加算して(S512)、データAを、Job_Cnt番目のジョブにおける(2*i−1)ページ目の分割画像データとし(S515)、データBを、Job_Cnt番目のジョブにおける(2*i)ページ目の分割画像データとし(S516)、S517へ移行する。
一方、(Scan_Y1−Trim_start)がPage_yより小さい場合(S509:Yes)、CPU10は、N枚目の原稿30に対応する長尺画像データについて、Trim_startから、(Scan_Y1−Trim_start)ライン分のトリミングを行って分割画像データを生成し、データAとする(S703)。
そして、CPU10は、データAを、Job_Cnt番目のジョブにおける(2*i−1)ページ目の分割画像データとし(S704)、S517へ移行する。このようにすれば、図3を参照して説明したように、受信側装置においては、最終原稿の原稿画像31に対応した画像を、記録紙40の片面に印刷でき、他方の面を白紙とすることができる。
片面FAX送信処理(図4〜図7)によれば、読み取りの順序において連続する2枚の原稿画像31(すなわち(N−1)枚目の原稿画像31とN枚目の原稿画像31)が1セットとして、分割画像データが送信される。
よって、受信側装置のユーザが、複数枚の記録紙40を貼り合わせて大判の記録紙とする場合、一方の面には、(N−1)枚目の原稿画像31に対応した全体画像を形成し、他方の面には、N枚目の原稿画像31に対応した全体画像を形成できる。すなわち、多数枚の原稿30がADF19にセットされていた場合であっても、読み取りの順序において連続する2枚の原稿30に対応する2つの全体画像を、1枚の大判の記録紙の表面と裏面とで視認できる。したがって、読み取りの順序に従って各原稿画像に対応する画像を視認することが容易にできる。
次に、図8〜図13を参照して、両面FAX送信処理を説明する。両面FAX送信処理においては、1枚の原稿の一方の面の原稿画像と、他方の面の原稿画像とを1セットとして、分割画像データを生成する。すなわち1枚の原稿を読み取る毎に1のジョブを生成する。
図8は、MFP1が実行する両面FAX送信処理を示すフローチャートである。この処理は、両面FAX送信処理の実行をユーザが指示した場合に開始される。なお、両面FAX送信処理において、片面FAX送信処理と同一のステップについては同一の符号を付して、その説明を省略する。
この処理で使用する変数を説明する。「N_1」は、1枚の原稿の表面の長尺画像(以下、表面長尺画像)について、現在、何個目の分割画像データを生成しているかを示す。「N_2」は、1枚の原稿の裏面の長尺画像(以下、裏面長尺画像)について、現在、何個目の分割画像データを生成しているかを示す。「Y_1」は、表面長尺画像から現在生成中の分割画像データについて読取済みのライン数を示す。「Y_2」は、裏面長尺画像から現在生成中の分割画像データについて読取済みのライン数を示す。
「End_flag1」は、表面長尺画像について分割画像データの生成が完了した場合に1に設定されるフラグである。「End_flag2」は、裏面長尺画像について分割画像データの生成が完了した場合に1に設定されるフラグである。「Page_y」は、片面FAX送信処理の場合と同様に、分割画像データに含めるべきライン数を示す。
まず、CPU10は、Y_1,Y_2,End_flag1,End_flag2を0に初期化して、N_1,N_2を1に初期化し、Page_yを0に初期化する(S801)。
そして、原稿の読取設定が「長辺綴じ」である場合(S802:Yes)、CPU10は、長辺綴じ原稿読取処理を実行する(S803)。一方、原稿の読取設定が「短辺綴じ」である場合(S802:No)、CPU10は、短辺綴じ原稿読取処理を実行する(S804)。長辺綴じ原稿読取処理(S803)については、図10を参照して後述し、短辺綴じ原稿読取処理(S804)については、図11を参照して後述する。また、原稿の読取設定については、フラッシュメモリ11に予め設定されているものとする。
図9(a)は、長辺綴じ原稿の一例を示す図である。複数枚の原稿35が長辺で綴じられる場合、左または右へ向けて各ページを捲ることになる。したがって、長辺綴じの原稿35では、表面長尺画像36と裏面長尺画像37との天地を一致する方向で、各画像36,37が形成されている。
図9(b)は、短辺綴じの原稿の一例を示す図である。複数枚の原稿35が短辺で綴じられる場合、上または下へ向けて各ページを捲ることになる。したがって、短辺綴じの原稿35では、表面長尺画像36と裏面長尺画像37との天地を逆向きにする方向で、各画像36,37が形成されている。このようにすれば、1枚の原稿35の表面長尺画像36を閲覧し、次にその原稿35を上方向に捲り、裏面長尺画像37を閲覧する場合に、裏面長尺画像37も正しい向き(すなわち、画像の上方向が閲覧者から見て上方向となる向き)で閲覧させることができるからである。
図8に戻り説明する。CPU10は、原稿の読取設定に基づいて、長辺綴じ原稿読取処理(S803)、または、短辺綴じ原稿読取処理(S804)のいずれかを実行し、生成された分割画像データを受信側装置へ送信し(S805)、本処理を終了する。
また、受信側装置がA4サイズの画像データを受信可能ではない場合、または、受信側装置が両面印刷を行わない場合(S403:No)、CPU10は、ADF19にセットされている1枚の原稿35の両面をスキャナ18に読み取らせ、各々の長尺画像データを長尺画像メモリ12aに記憶させる(S806)。次に、CPU10は、各々の長尺画像データを、通常通りに、受信側装置へ送信し(S422)、本処理を終了する。なお、ADF19に複数枚の原稿35がセットされている場合、MFP1は、1枚の原稿35を読み取る毎に、本処理を実行するものとする。
図10は、MFP1が実行する長辺綴じ原稿読取処理(S803)を示すフローチャートである。この処理では、長辺綴じの原稿35から分割画像データを生成する。
まず、CPU10は、ジョブを新たに生成し(S1001)、次に、表面長尺画像から分割画像データを生成する処理(S1002〜S1010)と、裏面長尺画像から分割画像データを生成する処理(S1011〜S1019)とを並行して実行する。
まず、表面長尺画像の処理を説明する。CPU10は、1枚の原稿35の表面長尺画像を1ライン分、スキャナ18に読み取らせて1ライン分の画像データを生成させ、RAM12に蓄積させる(S1002)。表面長尺画像全体の読み取りが終了していない場合(S1003:No)、CPU10は、Y_1に1を加算する(S1004)。次に、Page_yが示すライン数のデータがRAM12に蓄積されていない場合、即ち、Y_1がPage_yと等しくない場合(S1005:No)、CPU10は、S1002の処理に戻る。
一方、Y_1がPage_yと等しい場合(S1005:Yes)、RAM12に蓄積されたPage_yライン分の画像データを、今回生成したジョブにおける(2*N_1−1)ページ目の分割画像データとする(S1006)。次に、CPU10は、Y_1に0を設定し、N_1に1を加算して(S1007)、S1002の処理に戻り、表面長尺画像の読み取りを再開する。
このようにして処理を繰り返すうちに、表面長尺画像全体の読み取りが終了し(S1003:Yes)、且つ、Y_1が1以上の場合(S1008:Yes)、すなわち、RAM12に1ライン分以上の画像データが蓄積されている場合、その蓄積されたY_1ライン分の画像データを、今回生成したジョブにおける(2*N_1−1)ページ目の分割画像データとする(S1009)。一方、表面長尺画像の読み取りが終了した場合において、RAM12に画像データが蓄積されていない場合、即ち、Y_1が1未満の場合(S1008:No)、CPU10は、S1009をスキップする。次に、CPU10は、End_flag1に1を設定し(S1010)、S1020の処理へ移行する。
裏面長尺画像についても同様に、CPU10は、裏面長尺画像を1ライン分ずつスキャナ18に読み取らせる(S1011)。そして、裏面長尺画像の読み取りが終了していない場合(S1012:No)、CPU10は、Y_2に1を加算し(S1013)、Y_2がPage_yよりも小さい間(S1014:No)、S1011に戻り、処理を繰り返す。
このようにして処理を繰り返すうちに、Y_2がPage_yと等しくなると(S1014:Yes)、CPU10は、RAM12に蓄積されたPage_yライン分の画像データを(2*N_2)ページ目の分割画像データとする(S1015)。そして、CPU10は、Y_2に0を設定し、N_2に1を加算して(S1016)、S1011から処理を繰り返す。
そして、裏面長尺画像の読み取りが終了し(S1012:Yes)、且つ、Y_2が1以上の場合(S1017:Yes)、その蓄積されたY_2ライン分の画像データを、(2*N_2)ページ目の分割画像データとする(S1018)。一方、Y_2が1未満の場合(S1017:No)、CPU10は、S1018をスキップする。次に、CPU10は、End_flag2に1を設定し(S1019)、S1020の処理へ移行する。
次に、表面長尺画像または裏面長尺画像のうちいずれかの処理が終了していない場合、即ち、End_flag1およびEnd_flag2のいずれかが1でない場合(S1020:No)、CPU10は、次のステップに進まない。一方、両面の処理が終了し、End_flag1およびEnd_flag2が共に1であると判断される場合(S1020:Yes)、CPU10は、本処理を終了する。
長辺綴じ原稿読取処理により生成される分割画像データを、図9(c)を参照して説明する。図9(a)に示す長辺綴じの原稿35を長辺綴じ原稿読取処理で処理する場合、図9(c)に示すように、表面長尺画像36に対応した分割画像データと、裏面長尺画像37に対応した分割画像データとが、1ページずつ交互に受信側装置に対して送信される。よって、片面FAX送信処理の場合と同様に、受信側装置においては、記録紙40の一方の面には、表面長尺画像36に対応した画像が印刷され、他方の面には、裏面長尺画像37に対応した画像が印刷される。よって、受信側装置が受信した画像データを両面印刷する場合であっても、当該受信側装置において視認性良く画像を印刷できる。
図11は、MFP1が実行する短辺綴じ原稿読取処理(S804)を示すフローチャートである。この処理では、短辺綴じの原稿35から分割画像データを生成する。なお、短辺綴じ原稿読取処理(S804)は、原稿35の裏面について分割画像データを生成する処理(S1101)のみが、長辺綴じ原稿読取処理(S803)と異なり、他の処理は同一であるため、同一の符号を付して説明を省略する。
図12は、MFP1のCPU10が実行する裏面読取処理(S1101)を示すフローチャートである。この処理で使用する変数を説明する。「D」は、裏面長尺画像から生成する分割画像データの数を示す。「i」は、今回の裏面読取処理が開始されてから、現在、何個目の分割画像データを生成しているかを示す。
CPU10は、まず、裏面長尺画像を1ライン分、スキャナ18に読み取らせ、その画像データをRAM12に蓄積させる(S1201)。裏面長尺画像の読み取りが終了していない場合(S1202:No)、CPU10は、Y_2に1を加算し(S1203)、S1201の処理に戻る。
一方、裏面長尺画像の読み取りが終了した場合(S1202:Yes)、CPU10は、ceil(Y2/Page_y)を算出して、その算出結果をDに設定し、また、iに1を設定する(S1204)。
1個目の分割画像データを生成する場合、即ち、iが1の場合(S1205:Yes)、CPU10は、裏面長尺画像に対応する長尺画像データの0ラインから、(Y_2−Page_y*(D−1))ライン分のデータをトリミングして、分割画像データを生成する(S1206)。一方、2個目以降の分割画像データを生成する場合、即ち、iが1以外の場合(S1205:No)、長尺画像データの(Y_2−Page_y*(D−1)+Page_y*(i−2))ライン目から、Page_yライン分のデータをトリミングして、分割画像データを生成する(S1207)。
図13を参照して、分割画像データの生成について説明する。上述したように、短辺綴じの原稿35の場合、表面長尺原稿と裏面長尺原稿とは天地が逆転しているため、表面長尺画像から分割画像データを生成する場合と、裏面長尺画像から分割画像データを生成する場合とで処理を異ならせている。
まず、表面長尺画像については、図13(a−1)に示すように、0ライン目からPage_y分のデータ36a1を1つ目の分割画像データとする。次に、図13(a−2)に示すように、Page_yライン目から、Page_yライン分のデータ36a2を2つめの分割画像データとする。そして、図13(a−3)に示すように、Page_yラインに満たない残りのデータ36a3を3つ目の分割画像データとする。
一方、裏面長尺画像の場合、まず、図13(b−1)に示すように、1つ目の分割画像データを生成するが、この1つめの分割画像データが、表面長尺画像の3つ目の分割画像データと同じサイズとなるようにする。具体的には、裏面長尺画像の0ライン目から、(Y_2−Page_y*(D−1))ライン分のデータ36b1をトリミングし、1つ目の分割画像データとする。なお、Dは裏面長尺画像から生成すべき分割画像データの総数を表す値であり、図13に示す例の場合「D=3」である。また、Y_2は、裏面長尺画像に対応した長尺画像データに含まれるライン数を示す変数であるが、表面長尺画像の長尺画像データに含まれるライン数にも等しい。
次に、図13(b−2)に示すように、トリミング開始位置からPage_yライン分のデータ36b2を、2つめの分割画像データとする。ここで、トリミング開始位置は、(Y_2−Page_y*(D−1))+Page_y*(i−2)として算出される。iは、これからトリミングするデータを何個目の分割画像データとするかを示す値である。例えば、図13(b−2)に示す例では、D=3、i=2である。よって、(Y_2−Page_y*2+0)ライン目をトリミング開始位置とし、そこからPage_yライン分のデータ36b2をトリミングし、2つ目の分割画像データとする。最後に、図13(b−3)に示すように、トリミング開始位置からPage_yライン分のデータ36b3を、3つ目の分割画像データとする。
このようにすれば、表面長尺画像から生成される最後の分割画像データと、裏面長尺画像から生成される1つ目の分割画像データとのライン数を等しくすることができる。また、それ以外の分割画像データを全て同じライン数(Page_y)とすることができる。
図12に戻り説明する。次に、CPU10は、生成した分割画像データに対して、180°の回転処理を施す(S1208)。すなわち、表面長尺画像から生成した分割画像データは回転させず、裏面長尺画像から生成した分割画像データのみを回転させる。図13を参照して説明したように、短辺綴じの原稿35においては、表面長尺原稿画像と裏面長尺画像との天地が逆転されているからである。
そして、回転後の分割画像データを、今回生成したジョブにおける(2*(D+1−i))ページ目の分割画像データとする(S1209)。すなわち、長尺画像データの副走査方向における先端(0ライン目)に近い分割画像データほど、大きいページ番号を割り当てる。
図13を参照し、短辺綴じ原稿読取処理で、各分割画像データに割り当てるページ番号について説明する。まず、表面長尺画像から生成される各分割画像データに対しては、奇数のページ番号が割り当られる。例えば、図13に示す例では、表面長尺画像から生成される1つ目の分割画像データ(図13(a−1))には、ページ番号「1」が割り当られ、3つ目の分割画像データには、ページ番号「5」が割り当てられる。
一方、裏面長尺画像から生成される分割画像データに対しては、偶数のページ番号が割り当てられる。例えば、図13に示す例では、裏面長尺画像から生成される1つ目の分割画像データ(図13(b−1))には、ページ番号「6」が割り当てられ、3つ目の分割画像データには、ページ番号「2」が割り当てられる。
このようにすれば、表面長尺画像の1つ目の分割画像データを1ページ目に送信し、裏面長尺画像の最後の分割画像データ(180°回転済み)を2ページ目に送信できる。また、表面長尺画像の最後の分割画像データを5ページ目に送信し、裏面長尺画像の1つ目の分割画像データを6ページ目に送信できる。したがって、例えば、図9(c)に示すように、表面長尺画像と裏面長尺画像との天地が一致する向きで、表面長尺画像から生成された分割画像データと、裏面長尺画像から生成された分割画像データとを順次送信できる。その結果、受信側装置においては、表面長尺画像に対応する画像と、裏面長尺画像に対応する画像との天地が一致する向きで、記録紙40の表面と裏面とに画像を印刷できる。
図12に戻り説明する。次に、CPU10は、iに1を加算し(S1210)、iがD以下の場合(S1211:Yes)、S1205の処理に戻り、分割画像データのトリミングを繰り返す。一方、iがDを超える場合(S1211:No)、CPU10は、End_flag2に1を設定し(S1212)、本処理を終了する。
両面FAX送信処理によれば、原稿35が両面読み取りされる場合において、受信側装置が両面印刷を行う場合であっても、受信側装置において視認性良く画像を印刷できるように、画像データを送信できる。また、短辺綴じの原稿35を送信する場合、すなわち表面長尺画像36と裏面長尺画像37の天地が逆向きである場合であっても、受信側装置においては、表面長尺画像36に対応する画像と、裏面長尺画像37に対応する画像との天地を一致させた向きで、印刷させることができる。
上記実施形態において、MFP1が通信装置の一例である。記録紙40が記録媒体の一例である。原稿画像31,表面長尺画像36,裏面長尺画像37が原稿画像の一例である。読取ユニット18aが読取部の一例に相当する。白紙データ34が付加データの一例である。2*iがnの一例である。印刷機能情報が機能情報の一例である。
S406,S1002,S1011,S1201を実行するCPU10が読取手段の一例に相当する。S510,S513,S1006,S1009を実行するCPU10が第1生成手段の一例に相当する。S511,S514,S1015,S1018,S1206,S1207を実行するCPU10が第2生成手段の一例に相当する。S417,S805を実行するCPU10が送信手段の一例に相当する。S402を実行するCPU10が印刷機能取得手段の一例に相当する。S404を実行するCPU10がサイズ取得手段の一例に相当する。S411を実行するCPU10が総枚数判断手段の一例である。S701,S703を実行するCPU10が第3生成手段の一例である。S504,S505を実行するCPU10が付加手段の一例である。S1208を実行するCPU10が回転手段の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態で挙げた具体的数値は一例であり、他の数値を採用することは可能である。
また、上記実施形態では、受信側装置が両面印刷するか否かを示す印刷機能情報、あるいは、受信側装置が受信可能な主走査サイズを示す主走査サイズ情報を、受信側装置から受信するものとして説明した。しかしながら、受信側装置毎にこれらの情報をフラッシュメモリ11に予め記憶しておき、それを読み出しても良い。また、これらの情報をユーザに入力させても良い。
また、上記実施形態では、副走査方向を長手方向とする原稿画像を送信する場合について説明したが、主走査方向を長手方向とする原稿画像を送信する場合にも、本発明を適用しても良い。
また、上記実施形態では、2枚分の原稿画像から生成される分割画像データを1つのジョブとして送信したが、ADF19にセットされた1組の原稿から生成される全ての分割画像データを、1つのジョブとして送信しても良い。
また、上記実施形態では、通信装置の一例としてMFP1を説明したが、FAX送信機能を有する全ての装置に本発明を適用可能である。また、G3FAX、G4FAX、インターネットFAXなど、各種規格のFAX送信について、本発明を適用可能である。
また、上記実施形態では、1の原稿画像から生成される分割画像データ(第1画像データの一例)と、他の原稿画像から生成される分割画像データ(第2画像データの一例)とを、1ページずつ交互に送信していたが、必ずしもこの送信順序に限られるものではない。すなわち、送信順序において(n−1)ページ目の画像データとnページ目の画像データとのうち、一方の画像データが第1画像データであり、他方の画像データが第2画像データとなる送信順序で送信すれば良い(nは任意の偶数)。
具体的には、例えば、送信順序の1,4ページ目を第1画像データとし、送信順序の2,3ページ目を第2画像データとして送信しても良い。このようにしても、受信側装置においては、一方の面に第1画像データに基づく画像が印刷され、他方の面に第2画像データに基づく画像が印刷された印刷結果が得られるからである。
同様のことは、原稿の総枚数が奇数である場合に最終原稿の原稿画像から生成した分割画像データ(第3画像データの一例)を送信する場合についてもいえる。すなわち、送信順序において(n−1)ページ目の画像データとnページ目の画像データとのうち、一方の画像データは1ページ分の第3画像データであり、他方の画像データは所定の1ページ分の画像データ(例えば白紙データ34)となる送信順序で、複数ページの第3画像データを送信すれば良い。
また、白紙データ34に代えて改ページコマンドを送信しても良い。すなわち、受信側装置が第3画像データに基づく画像を記録紙40の一方の面に印刷する場合には、常に、他方の面には何も印刷されないよう、第3画像データと改ページコマンドとをセットで送信するように構成しても良い。
また、上記実施形態においては、分割画像データをトリミング後に当該分割画像データに対して180°の回転処理を施していたが、長尺画像データを180°回転させた上で分割画像データをトリミングしても良い。
また、上記実施形態においては、原稿が短辺綴じである場合に、分割画像データを回転させることとしていたが、原稿が長辺綴じである場合においても、分割画像データを回転させても良い。このようにすれば、受信側装置においては、短辺綴じに適した印刷結果(すなわち、表面と裏面とで天地が逆転した印刷結果)が得られる。
また、上記実施形態では、ADF19で原稿画像31を移動させつつ読み取る場合について説明したが、フラッドベッドに載置された原稿画像に対して読取ユニット18aを移動させつつ原稿画像を読み取る場合にも本発明を適用可能である。
また、上記実施形態では、分割画像データをA4サイズとするかレターサイズとするかをユーザに選択させていた。しかしながら、受信側装置にセットされた記録紙40のサイズを示すサイズ情報が、受信側装置からMFP1に送信される場合には、MFP1は、当該サイズ情報を取得し、このサイズ情報に対応したサイズの分割画像データを生成してよい。