(57)【要約】【課題】スプレッドシートの資料を印刷する際に、オブジェクトが印刷される複数のページが散在することを防止しつつ、資料全体の視認性を維持する。【解決手段】印刷制御装置は、スプレッドシートの印刷データを受信すると、印刷データを解析して印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定し、印刷データに複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、次の跨ぎ先のページのページ番号が印刷ページ順の次のページのページ番号になるように、印刷ページ順を更新し、印刷データをラスタライズして得たページデータを、設定又は更新した印刷ページ順に基づいて配置した印刷画像を生成して印刷エンジンに送信する。【選択図】図６
2018124601.tif 000002
【特許請求の範囲】
【請求項１】
スプレッドシートの印刷を制御する印刷制御装置であって、
前記スプレッドシートの印刷データを受信し、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する印刷データ解析部と、
前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する印刷ページ順変更部と、
前記印刷データをラスタライズしてページデータを生成し、前記印刷データ解析部が設定又は前記印刷ページ順変更部が更新した前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成し、当該印刷画像を印刷エンジンに送信する印刷画像生成部と、を備える、
ことを特徴とする印刷制御装置。
【請求項２】
前記印刷画像生成部は、１枚の用紙に複数ページを縮小して配置するページ集約印刷が指示されている場合は、前記特定オブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、前記ページ集約印刷における集約ページ数を決定し、前記集約ページ数で前記ページデータを集約して前記印刷画像を生成する、
ことを特徴とする請求項１に記載の印刷制御装置。
【請求項３】
前記印刷画像生成部は、各々の前記特定オブジェクトについて、前記跨ぎページ数の全ページを前記跨ぎ方向に並べて配置できるように、前記集約ページ数を決定する、
ことを特徴とする請求項２に記載の印刷制御装置。
【請求項４】
前記印刷画像生成部は、各々の前記特定オブジェクトについて、前記跨ぎページ数の全ページを、前記跨ぎ方向が横方向の場合は左から右へ、前記跨ぎ方向が縦方向の場合は上から下へ順に配置する、
ことを特徴とする請求項２又は３に記載の印刷制御装置。
【請求項５】
前記印刷画像生成部は、前記特定オブジェクトを含むページのみを、前記ページ集約印刷の対象とする、
ことを特徴とする請求項２乃至４のいずれか一に記載の印刷制御装置。
【請求項６】
前記印刷画像生成部は、前記印刷データ内の全ページを、前記ページ集約印刷の対象とする、
ことを特徴とする請求項２乃至４のいずれか一に記載の印刷制御装置。
【請求項７】
前記印刷画像生成部は、前記印刷データに複数の前記特定オブジェクトが含まれている場合は、前記特定オブジェクト毎に前記集約ページ数を決定する、
ことを特徴とする請求項５又は６に記載の印刷制御装置。
【請求項８】
前記印刷画像生成部は、前記印刷データに複数の前記特定オブジェクトが含まれている場合は、前記跨ぎページ数が最も大きい特定オブジェクトに合わせて前記集約ページ数を決定する、
ことを特徴とする請求項５又は６に記載の印刷制御装置。
【請求項９】
前記印刷画像生成部は、前記印刷データに複数の前記特定オブジェクトが含まれており、同一の前記集約ページ数でページ集約を行う場合は、前記特定オブジェクト毎に用紙の切り替えを行わない、
ことを特徴とする請求項８に記載の印刷制御装置。
【請求項１０】
前記印刷画像生成部は、前記特定オブジェクトを含むページを前記跨ぎ方向に並べて配置した際に、前記跨ぎ方向に余白が生じる場合は、当該余白部分に白紙ページを配置する、
ことを特徴とする請求項２乃至９のいずれか一に記載の印刷制御装置。
【請求項１１】
表示部と、
決定した前記集約ページ数を通知する通知画面を前記表示部に表示させる表示制御部と、を更に備える、
ことを特徴とする請求項２乃至１０のいずれか一に記載の印刷制御装置。
【請求項１２】
前記表示制御部は、前記通知画面で前記集約ページ数を指定可能にする、
ことを特徴とする請求項１１に記載の印刷制御装置。
【請求項１３】
前記表示制御部は、前記通知画面において、前記ページ集約印刷の対象を、前記印刷データ内の全ページとするか前記特定オブジェクトを含むページのみとするか、前記集約ページ数を、前記特定オブジェクト毎に決定するか前記跨ぎページ数が最も大きい特定オブジェクトに合わせて決定するか、前記特定オブジェクト毎に用紙の切り替えを行うか否か、の少なくとも１つを選択可能にする、
ことを特徴とする請求項１１又は１２に記載の印刷制御装置。
【請求項１４】
前記表示制御部は、決定した前記集約ページ数が予め定めた第１の閾値よりも大きい、又は、決定した前記集約ページ数でページ集約を行ったときの文字のフォントサイズが予め定めた第２の閾値よりも小さい場合は、その旨を通知する警告画面を前記表示部に表示させる、
ことを特徴とする請求項１１乃至１３のいずれか一に記載の印刷制御装置。
【請求項１５】
前記表示制御部は、前記警告画面において、決定した前記集約ページ数でページ集約印刷を続行するか、ページ集約印刷を解除するかを指定可能にする、
ことを特徴とする請求項１４に記載の印刷制御装置。
【請求項１６】
前記表示制御部は、前記特定オブジェクトの種別がイメージの場合は、前記第１の閾値を他の種別の場合よりも大きくする、
ことを特徴とする請求項１４又は１５に記載の印刷制御装置。
【請求項１７】
スプレッドシートの印刷を制御する印刷制御装置で動作する印刷制御プログラムであって、
前記印刷制御装置に、
前記スプレッドシートの印刷データを受信する第１処理、
前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第２処理、
前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第３処理、
前記印刷データをラスタライズしてページデータを生成し、前記第２処理で設定又は前記第３処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第４処理、
前記印刷画像を印刷エンジンに送信して印刷を指示する第５処理、を実行させる、
ことを特徴とする印刷制御プログラム。
【請求項１８】
前記印刷制御装置は、前記印刷エンジンを備える印刷装置に内蔵される、
ことを特徴とする請求項１７に記載の印刷制御プログラム。
【請求項１９】
スプレッドシートの印刷を制御する装置における印刷制御方法であって、
前記スプレッドシートの印刷データを受信する第１処理と、
前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第２処理と、
前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第３処理と、
前記印刷データをラスタライズしてページデータを生成し、前記第２処理で設定又は前記第３処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第４処理と、
前記印刷画像を印刷エンジンに送信して印刷を指示する第５処理と、を実行する、
ことを特徴とする印刷制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御装置、印刷制御プログラム及び印刷制御方法に関し、特に、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム及び印刷制御方法に関する。
【背景技術】
【０００２】
文書作成や表計算などの処理が可能なオフィススイート・アプリケーションは、オフィスワーク、教育、家庭など、あらゆる場面で一般的に使用されている。オフィススイート・アプリケーションの内の代表的な表計算アプリケーションとして、Microsoft（登録商標、以下省略）のExcel（登録商標、以下省略）が挙げられる。また、Apache OpenOfficeなど、同様の機能を有するアプリケーションも複数流通しており、これらの表計算アプリケーションはスプレッドシート（Spreadsheet）と呼ばれる。
【０００３】
上記MicrosoftのExcelのようなスプレッドシートにおいて、シート内に図、表、文字などのオブジェクトを配置して、資料を作る事が日常的に行われている。Excelでは、印刷時に縮小率を設定して印刷ページサイズを指定することができるが、例えば、一部に横長の表などのオブジェクトを含む資料を印刷する場合、現状では、資料に設定されているページサイズに合わせて全ページを印刷するか、表などのオブジェクトのサイズに合わせて全体を縮小して印刷している。
【０００４】
このようなオブジェクトの印刷に関して、例えば、下記特許文献１には、一の画像データを構成する複数のページ画像の中から、前記画像に含まれる重視領域を特定する領域特定手段と、前記重視領域に基づいて、前記複数のページ画像の印刷ページ順番を決定する順番決定手段とを有する画像形成装置が開示されている。また、オブジェクトを示すオブジェクト情報を受け付ける受付手段をさらに有し、前記領域特定手段は、前記オブジェクト情報に示される前記オブジェクトの領域を前記重視領域として特定する構成が開示されている。
【０００５】
また、下記特許文献２には、用紙の領域より大きい領域の印刷イメージを入力し、余白のない印刷を行う印刷手段と、１ページのデータを分割して複数ページに印刷する指示に基づいて、印刷すべき用紙に対応する印刷イメージを、隣り合う用紙に対応する印刷イメージと一部が重なるように分割し、前記印刷手段に出力する出力手段とを備えた印刷装置が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１５−０５０６３９号公報
【特許文献２】特開２００４−０９８６５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述したように、一部に横長の表を含む資料を印刷する場合、資料に設定されているページサイズに合わせて全ページを印刷すると、表が途中で切れ、離れたページに残りの表が印刷されてしまい、関連する表が纏まらずに複数ページに散在してしまうため、表の中身を確認するために散在する別のページを探し出す手間が生じる。また、複数ページに跨がる文章が存在する場合も同様であり、関連する文章が纏まらずに複数ページに散在してしまうため、文章の意味を把握するために散在する別のページを探し出す手間が生じる。一方、表などのオブジェクトのサイズに合わせて全体を縮小して印刷する場合は、資料に含まれる文字のフォントサイズが小さくなるため、資料の理解が困難になる。
【０００８】
この問題に対して、上記特許文献１では、分割されたページの印刷時に、複数ページに跨がるオブジェクトについては面積が大きいページから順に印刷するようにしているが、この方法では、ページを跨いでオブジェクトが存在する場合、元のドキュメントの印刷ページ順を無視してオブジェクトの面積順に印刷することになるため、資料全体の視認性が低下する。
【０００９】
また、特許文献２では、イメージの一部が重なるよう分割して順にプリンタに出力するため、イメージについては連続した印刷ページ順になるが、この方法は、印刷するデータの中身を見て、必要のあるページだけについて印刷ページ順を変更すると言うものではないため、やはり、資料全体の視認性が低下する。
【００１０】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、複数ページに跨がるオブジェクトを含むスプレッドシートの資料を印刷する際に、オブジェクトが印刷される複数のページが散在することを防止しつつ、資料全体の視認性を維持することができる印刷制御装置、印刷制御プログラム及び印刷制御方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置であって、前記スプレッドシートの印刷データを受信し、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する印刷データ解析部と、前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する印刷ページ順変更部と、前記印刷データをラスタライズしてページデータを生成し、前記印刷データ解析部が設定又は前記印刷ページ順変更部が更新した前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成し、当該印刷画像を印刷エンジンに送信する印刷画像生成部と、を備えることを特徴とする。
【００１２】
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置で動作する印刷制御プログラムであって、前記印刷制御装置に、前記スプレッドシートの印刷データを受信する第１処理、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第２処理、前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第３処理、前記印刷データをラスタライズしてページデータを生成し、前記第２処理で設定又は前記第３処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第４処理、前記印刷画像を印刷エンジンに送信して印刷を指示する第５処理、を実行させることを特徴とする。
【００１３】
本発明の一側面は、スプレッドシートの印刷を制御する装置における印刷制御方法であって、前記スプレッドシートの印刷データを受信する第１処理と、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第２処理と、前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第３処理と、前記印刷データをラスタライズしてページデータを生成し、前記第２処理で設定又は前記第３処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第４処理と、前記印刷画像を印刷エンジンに送信して印刷を指示する第５処理と、を実行することを特徴とする。
【発明の効果】
【００１４】
本発明の印刷制御装置、印刷制御プログラム及び印刷制御方法によれば、複数ページに跨がるオブジェクトを含むスプレッドシートの資料を印刷する際に、オブジェクトが印刷される複数のページが散在することを防止しつつ、資料全体の視認性を維持することができる。
【００１５】
その理由は、印刷制御装置（印刷制御プログラム）は、スプレッドシートの印刷データを受信すると、印刷データを解析して印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定し、印刷データに複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、次の跨ぎ先のページのページ番号が印刷ページ順の次のページのページ番号になるように、印刷ページ順を更新し、印刷データをラスタライズして得たページデータを、設定又は更新した印刷ページ順に基づいて配置した印刷画像を生成して印刷エンジンに送信するからである。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施例に係る印刷システムの構成を示す模式図である。
【図２】本発明の一実施例に係る印刷システムの構成を示す模式図である。
【図３】本発明の一実施例に係るクライアント端末の構成を示すブロック図である。
【図４】本発明の一実施例に係るコントローラの構成を示すブロック図である。
【図５】本発明の一実施例に係る印刷装置の構成を示すブロック図である。
【図６】本発明の一実施例に係るコントローラの処理を示すフローチャート図である。
【図７】本発明の一実施例に係るスプレッドシートの資料の印刷ページ順の一例（横方向に複数ページに跨がるオブジェクトが１つ存在する場合）を説明する模式図である。
【図８】本発明の一実施例に係るスプレッドシートの資料の印刷ページ順の他の例（縦方向及び横方向に複数ページに跨がるオブジェクトが１つ存在する場合）を説明する模式図である。
【図９】本発明の一実施例に係るスプレッドシートの資料の印刷ページ順の他の例（横方向に複数ページに跨がるオブジェクトが２つ存在する場合）を説明する模式図である。
【図１０】本発明の一実施例に係るコントローラの処理（Ｎｉｎ１処理）を示すフローチャート図である。
【図１１】オブジェクトが跨がるページのＮｉｎ１配置を説明する模式図である。
【図１２】本発明の一実施例に係るページ集約がＯＫの場合の一例（４ｉｎ１）を示す模式図である。
【図１３】本発明の一実施例に係るページ集約がＮＧの場合の一例（２ｉｎ１）を示す模式図である。
【図１４】本発明の一実施例に係るスプレッドシートの資料の一例を示す模式図である。
【図１５】図１４の資料をページ集約印刷する場合の印刷ページ順の一例を説明するテーブルである。
【図１６】図１４の資料をページ集約印刷する場合の印刷ページ順の他の例を説明するテーブルである。
【図１７】図１４の資料をページ集約印刷する場合の印刷ページ順の他の例を説明するテーブルである。
【図１８】図１４の資料をページ集約印刷する場合の印刷ページ順の他の例を説明するテーブルである。
【発明を実施するための形態】
【００１７】
背景技術で示したように、Excelのようなスプレッドシートでは、印刷時に縮小率を設定して印刷ページサイズを指定することができ、例えば、一部に横長の表などのオブジェクトを含む資料を印刷する場合、資料に設定されているページサイズに合わせて全ページを印刷するか、オブジェクトのサイズに合わせて全体を縮小して印刷している。
【００１８】
しかしながら、資料に設定されているページサイズに合わせて全ページを印刷すると、オブジェクトが複数ページに散在してしまい、オブジェクトの内容を確認するために散在する別のページを探し出す必要が生じる。一方、オブジェクトのサイズに合わせて全体を縮小して印刷すると、資料に含まれる文字のフォントサイズが小さくなり、資料の視認性が低下してしまう。
【００１９】
そこで、本発明の一実施の形態では、図、表、文字などのオブジェクトを含むスプレッドシートの資料を印刷するとき、これらのオブジェクトがページを跨いで存在する場合には、オブジェクトが跨がるページ同士が隣り合う順番となるように印刷ページ順を変更するようにする。
【００２０】
具体的には、スプレッドシートの印刷データを受信すると、印刷データを解析し、印刷設定情報に基づいて印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定する。そして、複数ページに跨がるオブジェクトが含まれているかを判断し、複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、次の跨ぎ先のページのページ番号が印刷ページ順の次のページのページ番号になるように、印刷ページ順を更新し、設定又は更新した印刷ページ順に基づいて、印刷データをラスタライズして得たページデータを配置した印刷画像を生成して印刷エンジンに送信する。
【００２１】
また、印刷設定情報で、１枚の用紙に複数ページを縮小して配置するページ集約印刷が指示された場合は、複数ページに跨がるオブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、集約ページ数を決定（各々のオブジェクトの跨ぎページ数の全ページが、跨ぎ方向に並べて配置できるように集約ページ数を決定）し、決定した集約ページ数でページデータを集約して配置した印刷画像を生成する。
【００２２】
これにより、複数ページに跨がるオブジェクトが分割して印刷される場合でも、このオブジェクトを含む全ページが隣り合う順番となるように印刷ページ順が変更されるため、オブジェクトが複数ページに散在してしまう不具合を防止することができる。また、ページ集約印刷を行う場合は、このオブジェクトを含む全ページが１枚の用紙内に並んで配置されるため、資料全体の視認性を維持することができる。
【実施例】
【００２３】
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る印刷制御装置、印刷制御プログラム及び印刷制御方法について、図１乃至図１８を参照して説明する。図１及び図２は、本実施例の印刷システムの構成を示す模式図である。また、図３乃至図５は、各々、クライアント端末、コントローラ、印刷装置の構成を示すブロック図であり、図６及び図１０は、本実施例のコントローラの処理を示すフローチャート図である。また、図７乃至図９は、スプレッドシートの資料の印刷ページ順を説明する模式図であり、図１１は、オブジェクトが跨がるページのＮｉｎ１配置を説明する模式図、図１２及び図１３は、ページ集約がＯＫ／ＮＧの場合の一例を示す模式図である。また、図１４は、本実施例のスプレッドシートの資料の一例を示す模式図であり、図１５乃至図１８は、図１４の資料をページ集約印刷する場合の印刷ページ順を説明するテーブルである。
【００２４】
図１に示すように、本実施例の印刷システム１０は、クライアント端末２０とコントローラ３０と印刷装置４０などで構成される。これらはイーサネット（登録商標）、トークンリング、ＦＤＤＩ（Fiber-Distributed Data Interface）等の規格により定められるＬＡＮ（Local Area Network）やＷＡＮ（Wide Area Network）等の通信ネットワーク５０を介して接続されている。
【００２５】
なお、コントローラ３０と印刷装置４０とはＰＣＩ（Peripheral Component Interconnect）接続などの専用線で接続されていてもよい。また、図１では、印刷システム１０をクライアント端末２０とコントローラ３０と印刷装置４０とで構成したが、図２に示すように、コントローラ３０は印刷装置４０に内蔵される構成としてもよい。以下、図１の印刷システム１０を前提にして、各装置について説明する。
【００２６】
［クライアント端末］
クライアント端末２０は、パーソナルコンピュータなどのコンピュータ装置、スマートフォンやタブレットなどの携帯端末などであり、スプレッドシートの印刷データを作成してコントローラ３０に送信する。このクライアント端末２０は、図３（ａ）に示すように、制御部２１、記憶部２５、ネットワークＩ／Ｆ部２６、表示部２７、操作部２８などで構成される。
【００２７】
制御部２１は、ＣＰＵ（Central Processing Unit）２２と、ＲＯＭ（Read Only Memory）２３やＲＡＭ（Random Access Memory）２４などのメモリとで構成され、ＣＰＵ２２は、ＲＯＭ２３や記憶部２５に記憶した制御プログラムをＲＡＭ２４に展開して実行することにより、クライアント端末２０全体の動作を制御する。また、図３（ｂ）に示すように、上記制御部２１（ＣＰＵ２２）により、ＯＳ（Operating System）２１ａ、アプリケーション２１ｂ、ダイレクトプリントユーティリティ２１ｃなどが実行される。
【００２８】
ＯＳ２１ａは、Windows（登録商標）やMacOS（登録商標）、Android（登録商標）などであり、クライアント端末２０でアプリケーション２１ｂやダイレクトプリントユーティリティ２１ｃなどを動作可能にする。
【００２９】
アプリケーション２１ｂは、MicrosoftのExcelなどの表計算アプリケーション（スプレッドシート）であり、シート内に、図、表、文字などのオブジェクトが描画されたデータ（印刷データ）を作成する。このスプレッドシートの印刷データには、シート数、シート毎のページ数、ページサイズ、オブジェクト情報（サイズ、描画位置等）、文字情報（文字列、フォントサイズ、描画位置、ピッチ等）、縮小率、ページ集約印刷に関する情報などを規定する印刷設定情報が含まれる。
【００３０】
ダイレクトプリントユーティリティ２１ｃは、所定のフォルダ（例えば、記憶部２５内のフォルダ）を監視し、スプレッドシートの印刷データが所定のフォルダに保存されたら、コントローラ３０に当該印刷データを送信してダイレクトプリントを指示する。
【００３１】
記憶部２５は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などで構成され、ＣＰＵ２２が各部を制御するためのプログラム、スプレッドシートの印刷データなどを保存する。
【００３２】
ネットワークＩ／Ｆ部２６は、ＮＩＣ（Network Interface Card）やモデムなどで構成され、クライアント端末２０を通信ネットワーク５０に接続し、スプレッドシートの印刷データを送信可能にする。
【００３３】
表示部２７は、液晶表示装置（ＬＣＤ：Liquid Crystal Display）や有機ＥＬ（electroluminescence）表示装置などで構成され、アプリケーション２１ｂの画面などを表示する。
【００３４】
操作部２８は、マウスやキーボードなどで構成され、アプリケーション２１ｂを用いたスプレッドシートの印刷データの作成、ダイレクトプリントの指示などの操作を可能にする。
【００３５】
なお、図３（ｂ）では、ダイレクトプリントユーティリティ２１ｃを用いて印刷指示を行う構成としたが、プリンタドライバを用いて印刷を指示することもできる。その場合は、制御部２１により、プリンタドライバが実行され、プリンタドライバは、アプリケーション２１ｂによって作成されたデータを、ＰＪＬ（Printer Job Language）やＰＳ（PostScript）、ＰＣＬ（Printer Control Language）等のページ記述言語で記述されたＰＤＬ（Page Description Language）の印刷データに変換してコントローラ３０に送信する。
【００３６】
［コントローラ］
コントローラ３０は、クライアント端末２０から受信したスプレッドシートの印刷データを処理し、印刷装置４０に印刷を指示する。このコントローラ３０は、図４（ａ）に示すように、制御部３１、記憶部３５、ネットワークＩ／Ｆ部３６、表示部３７、操作部３８などで構成される。
【００３７】
制御部３１は、ＣＰＵ３２と、ＲＯＭ３３やＲＡＭ３４などのメモリとで構成され、ＣＰＵ３２は、ＲＯＭ３３や記憶部３５に記憶した制御プログラムをＲＡＭ３４に展開して実行することにより、コントローラ３０全体の動作を制御する。また、図４（ｂ）に示すように、制御部３１は、印刷データ解析部３１ａ、印刷ページ順変更部３１ｂ、印刷画像生成部３１ｃ、表示制御部３１ｄなどとして機能する。
【００３８】
印刷データ解析部３１ａは、クライアント端末２０から受信したスプレッドシートの印刷データを解析し、シート数、シート毎のページ数、ページサイズ、オブジェクト情報（サイズ、描画位置等）、文字情報（文字列、フォントサイズ、描画位置、ピッチ等）、縮小率、ページ集約印刷に関する情報などを規定する印刷設定情報を取得する。そして、取得した印刷設定情報に基づいて印刷ページサイズを決定し、決定した印刷ページサイズに基づいてシートをページ分割し、分割した各ページの印刷ページ順を設定し、設定した印刷ページ順とページ印刷内容とを記憶部３５などに記憶して管理する。
【００３９】
印刷ページ順変更部３１ｂは、印刷データ内に複数ページに跨がる図、表、文字等のオブジェクトが含まれているかを判断し、複数ページに跨がるオブジェクト（跨ぎオブジェクトとも呼ぶ。）が含まれている場合は、オブジェクト毎にそのオブジェクトが跨がる方向（以下、跨ぎ方向と呼ぶ。）及びそのオブジェクトが跨がるページ数（以下、跨ぎページ数と呼ぶ。）を取得し、オブジェクト毎の跨ぎ方向及び跨ぎページ数を記憶部３５などに記憶して管理する。そして、そのオブジェクトが跨がるページ（跨ぎ元ページ）について、跨ぎ方向の次のページ（次の跨ぎ先ページ）のページ番号と印刷ページ順の次のページのページ番号とが一致するか（言い換えると、そのオブジェクトの次の跨ぎ先ページのページ番号が、同じオブジェクトが跨がる直前ページの次であるか）を判断する。そして、双方のページ番号が異なる場合は、次の跨ぎ先ページのページ番号を印刷ページ順の次のページ番号に変更して（言い換えると、そのオブジェクトの次の跨ぎ先ページの印刷ページ順を、同じオブジェクトが跨がる直前ページの次に変更して）、印刷データ解析部３１ａが管理する印刷ページ順を更新する。
【００４０】
印刷画像生成部３１ｃは、ＲＩＰ（Raster Image Processor）部として機能し、印刷データをラスタライズしてページデータを生成し、印刷データ解析部３１ａが設定又は印刷ページ順変更部３１ｂが更新した印刷ページ順に従って、ページデータを配置した印刷画像を生成し、生成した印刷画像を印刷装置４０に送信する。なお、１枚の用紙に１ページを配置する通常印刷時は、各々のページデータが各々の用紙に対する印刷画像となる。また、印刷設定情報で、１枚の用紙に複数ページを縮小して配置するページ集約印刷（Ｎｉｎ１印刷）が指示されている場合は、以下の手順に従ってページデータを配置して印刷画像を生成する。
【００４１】
まず、オブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、複数ページに跨がるオブジェクトの全ページを跨ぎ方向に並べて配置することができるページ集約のＮ数（集約ページ数）を決定する。その際、複数ページに跨がるオブジェクトが複数ある場合は、各々のオブジェクトの跨ぎページ数に基づいてオブジェクト毎にＮ数を決定するか、又は、１つのオブジェクトが跨がる最大ページ数を取得し、取得した最大ページ数に基づいてＮ数を決定する。このＮ数は、オブジェクトの種別に応じて決定してもよい。そして、決定したＮ数に従って、複数ページに跨がるオブジェクトの最初のページが、ページ集約したときに用紙の左側（用紙を正しい向きに配置したときにユーザ側から見て左側）になるように配置し、そのオブジェクトが跨がる残りのページを、跨ぎ方向に配置（跨ぎ方向が横方向の場合は左から右へ、跨ぎ方向が縦方向の場合は上から下へ順に配置）する。この時、複数ページに跨がるオブジェクトのみをページ集約対象とするか、印刷データ内の全ページをページ集約対象とする。また、複数ページに跨がるオブジェクトの全ページを跨ぎ方向に並べて配置した際に跨ぎ方向に余白が生じる場合は白紙ページを挿入してＮｉｎ１の印刷画像を生成する。また、操作部３８を用いてユーザが指示したＮ数に応じて、Ｎｉｎ１の印刷画像の再生成を行う。
【００４２】
表示制御部３１ｄは、印刷画像生成部３１ｃが決定したＮ数を通知する通知画面を、印刷画像の送信前に表示部３７に表示させる。その際、必要に応じて、通知画面でユーザがＮ数を指定できるようにする。また、表示制御部３１ｄは、決定したＮ数が予め定めた閾値（第１の閾値）よりも大きいか、決定したＮ数でページ集約したときの文字のフォントサイズが予め定めた閾値（第２の閾値）よりも小さいかを判断し、決定したＮ数が第１の閾値よりも大きい、又は、文字のフォントサイズが第２の閾値よりも小さい場合は、その旨を通知する警告画面を、印刷画像の送信前に表示部３７に表示させる。そして、警告画面において、決定したＮ数でＮｉｎ１印刷を続行するか、ページ集約を解除して１枚の用紙に１ページを印刷する通常印刷にするか、をユーザが指定できるようにする。なお、複数ページに跨がるオブジェクトの種別によらず第１の閾値は一定としてもよいし、イメージオブジェクトの場合は、グラフィックスオブジェクトやテキストオブジェクトよりも第１の閾値を大きく（判断の基準を緩く）してもよい。
【００４３】
なお、上記印刷データ解析部３１ａ、印刷ページ順変更部３１ｂ、印刷画像生成部３１ｃ、表示制御部３１ｄはハードウェアとして構成してもよいし、制御部３１を印刷データ解析部３１ａ、印刷ページ順変更部３１ｂ、印刷画像生成部３１ｃ、表示制御部３１ｄ（特に、印刷データ解析部３１ａ、印刷ページ順変更部３１ｂ、印刷画像生成部３１ｃ）として機能させる印刷制御プログラムとして構成し、当該印刷制御プログラムをＣＰＵ３２に実行させるようにしてもよい。
【００４４】
記憶部３５は、ＨＤＤやＳＳＤなどで構成され、ＣＰＵ３２が各部を制御するためのプログラム、クライアント端末２０から受信したスプレッドシートの印刷データ、印刷画像生成部３１ｃが生成したページデータや印刷画像などを保存する。
【００４５】
ネットワークＩ／Ｆ部３６は、ＮＩＣやモデムなどで構成され、コントローラ３０を通信ネットワーク５０に接続し、スプレッドシートの印刷データを受信可能にし、ページデータや印刷画像を送信可能にする。
【００４６】
表示部３７は、液晶表示装置や有機ＥＬ表示装置などで構成され、印刷に関する各種画面を表示する。本実施例では、特に、印刷画像生成部３１ｃが決定したＮ数の通知画面や警告画面を印刷画像の送信前に表示する。
【００４７】
操作部３８は、マウスやキーボードなどで構成され、印刷に関する各種操作を可能にする。本実施例では、特に、上記通知画面におけるＮ数の指定操作、上記警告画面における決定したＮ数でＮｉｎ１印刷を続行するかページ集約を解除するかの選択操作などを受け付ける。
【００４８】
［印刷装置］
印刷装置４０は、ＭＦＰ（Multi-Functional Peripherals）や単機能プリンタなどであり、コントローラ３０から受信したページデータに基づいて、用紙に印刷を行う。この印刷装置４０は、図５に示すように、制御部４１、記憶部４５、ネットワークＩ／Ｆ部４６、表示操作部４７、読み取り部４８、印刷部４９などで構成される。
【００４９】
制御部４１は、ＣＰＵ４２とＲＯＭ４３やＲＡＭ４４などのメモリとで構成され、ＣＰＵ４２は、ＲＯＭ４３や記憶部４５に記憶した制御プログラムをＲＡＭ４４に展開して実行することにより、印刷装置４０全体の動作を制御する。特に、本実施例では、印刷モードを、ページ集約をしない通常の印刷モードやページ集約する印刷モードに設定できるようにする。また、ページ集約する印刷モードでは、オブジェクトのページと他のページとを混在不可とする印刷モード（ページ混在不可モードと呼ぶ。）、複数ページに跨がるオブジェクトのみをページ集約する印刷モードや印刷データの全ページをページ集約する印刷モードなどに設定できるようにする。
【００５０】
記憶部４５は、ＨＤＤやＳＳＤなどで構成され、ＣＰＵ４２が各部を制御するためのプログラム、自装置の処理機能に関する情報、ページデータや印刷画像などを記憶する。
【００５１】
ネットワークＩ／Ｆ部４６は、ＮＩＣやモデムなどで構成され、印刷装置４０を通信ネットワーク５０に接続し、コントローラ３０からページデータや印刷画像を受信可能にする。
【００５２】
表示操作部４７は、表示部上に透明電極が格子状に配置された感圧式の操作部（タッチセンサ）を設けたタッチパネルなどであり、印刷処理に関する各種画面を表示し、印刷に関する各種操作を可能にする。
【００５３】
読み取り部４８は、原稿台上の原稿から画像データを光学的に読み取る部分であり、原稿を走査する光源と、原稿で反射された光を電気信号に変換するＣＣＤ（Charge Coupled Devices）等のイメージセンサと、電気信号をＡ／Ｄ変換するＡ／Ｄ変換器等により構成される。なお、読み取り部４８は必須ではない。
【００５４】
印刷部４９は、給紙部から供給される用紙に印刷画像を形成して排紙部に出力する印刷エンジンである。この印刷部４９は、例えば、印刷画像に基づいてレーザ光を照射して露光する露光部と、感光体ドラムと現像部と帯電部と感光体クリーニング部と１次転写ローラとを備え、ＣＭＹＫの各色のトナー像を形成する画像形成部と、ローラによって回転され、画像形成部で形成されたトナー像を用紙に搬送する中間転写体として機能する中間ベルトと、中間ベルト上に形成されたトナー像を用紙に転写する２次転写ローラと、用紙に転写されたトナー像を定着させる定着部などで構成される。
【００５５】
なお、図１乃至図５は、本実施例の印刷システム１０の一例であり、各装置の構成や制御は適宜変更可能である。例えば、上記では、コントローラ３０が印刷装置４０を制御する場合について記載したが、図２に示すように、コントローラ３０が印刷装置４０に内蔵される場合は、印刷装置４０の制御部４１を印刷データ解析部、印刷ページ順変更部、印刷画像生成部、表示制御部として機能させる（ＣＰＵ４２に印刷制御プログラムを実行させる）ようにしてもよい。
【００５６】
以下、本実施例のコントローラ３０（又はコントローラ３０を内蔵する印刷装置４０）の動作について具体的に説明する。ＣＰＵ３２は、ＲＯＭ３３又は記憶部３５に記憶した印刷制御プログラムをＲＡＭ３４に展開して実行することにより、図６及び図１０のフローチャート図に示す各ステップの処理を実行する。
【００５７】
図６に示すように、コントローラ３０の制御部３１（印刷データ解析部３１ａ）は、クライアント端末２０からスプレッドシートの印刷データを受信すると（Ｓ１０１）、印刷データを解析し（Ｓ１０２）、ページサイズ、フォントサイズ、縮小率等の印刷設定情報を取得し、取得した印刷設定情報に基づいて印刷ページサイズを決定する（Ｓ１０３）。次に、制御部３１（印刷データ解析部３１ａ）は、決定した印刷ページサイズに基づいてシートをページ分割し、分割した各ページの印刷ページ順（通常の印刷ページ順）を設定し、設定した印刷ページ順とページ印刷内容とを記憶部３５などに記憶して管理する（Ｓ１０４）。次に、制御部３１（印刷画像生成部３１ｃ）は、印刷データをラスタライズして、メモリ上に通常の印刷ページ順でページデータを生成する（Ｓ１０５）。
【００５８】
次に、制御部３１（印刷ページ順変更部３１ｂ）は、印刷データの解析結果に基づいて、印刷データ内に複数ページに跨がるオブジェクトがあるかを判断する（Ｓ１０６）。複数ページに跨がるオブジェクトがあるか否かは、印刷データの印刷設定情報のページサイズ、オブジェクト情報（サイズ、描画位置等）や文字情報（文字列、フォントサイズ、描画位置、ピッチ等）に基づいて、描画しようとしているオブジェクトの位置を算出し、指定されたページサイズ内に収まらない場合に、複数ページに跨がるオブジェクトがあると判断する。
【００５９】
複数ページに跨がるオブジェクトがある場合は、制御部３１（印刷ページ順変更部３１ｂ）は、オブジェクト毎に跨ぎ方向及び跨ぎページ数を取得し、記憶部３５などに記憶して管理する（Ｓ１０７）。次に、制御部３１（印刷ページ順変更部３１ｂ）は、ページ変更対象オブジェクトを設定し（Ｓ１０８）、そのオブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とが一致するかどうか（言い換えると、そのオブジェクトの次の跨ぎ先ページのページ番号が、同じオブジェクトが跨がる直前ページの次であるか）を判断する（Ｓ１０９）。双方のページ番号が異なる場合は、制御部３１（印刷ページ順変更部３１ｂ）は、オブジェクトの次の跨ぎ先ページのページ番号を、印刷ページ順の次のページのページ番号に変更（言い換えると、そのオブジェクトの次の跨ぎ先ページの印刷ページ順を、同じオブジェクトが跨がる直前ページの次に変更）し（Ｓ１１０）、管理されている印刷ページ順を更新する（Ｓ１１１）。そして、制御部３１（印刷ページ順変更部３１ｂ）は、ページ変更対象オブジェクトが跨がる残りページがあるかを判断し（Ｓ１１２）、残りページがある場合は、Ｓ１０９に戻ってページ番号の比較を行い、残りページがない場合は、Ｓ１０６に戻って、複数ページに跨がるオブジェクトの有無を判断する。
【００６０】
Ｓ１０６で複数ページに跨がるオブジェクトがない（又は複数ページに跨がるオブジェクトの全ページについて印刷ページ順を更新した）場合は、制御部３１（印刷画像生成部３１ｃ）は、Ｓ１０４で設定した印刷ページ順又はＳ１１１で更新した印刷ページ順にメモリからページデータを取得する（Ｓ１１３）。次に、制御部３１（印刷画像生成部３１ｃ）は、印刷設定情報に基づいて、印刷データがＮｉｎ１印刷であるかを判断し（Ｓ１１４）、Ｎｉｎ１印刷の場合は、Ｎｉｎ１処理を実施する（Ｓ１１５）。このＮｉｎ１処理については後述する。そして、制御部３１（印刷画像生成部３１ｃ）は、Ｓ１１３で取得したページデータ（又はＳ１１５のＮｉｎ１処理後のページデータ）に基づいて印刷画像を生成し、生成した印刷画像を印刷装置４０に送信し（Ｓ１１６）、印刷装置４０では、受信した印刷画像に基づいて、印刷部（印刷エンジン）４９に印刷処理を実行させる。
【００６１】
上記フローの印刷制御（１枚の用紙に１ページを印刷する通常印刷時の印刷制御）について、図７乃至図９の模式図を参照して具体的に説明する。通常印刷時の印刷パターンとして、後述するパターン１〜３がある。以下、各パターンを個別に説明する。
【００６２】
＜パターン１＞
パターン１は、図７に示すように、１つのオブジェクトが複数ページ（例えば、横）に跨がる場合の印刷パターンである。図７のようなスプレッドシートの資料をダイレクトプリントする場合、印刷データに含まれるページサイズ、フォントサイズ、縮小率等に基づき、１ページの印刷ページサイズが決定され、その印刷ページサイズで印刷データを分割し、各々のページ６０内の括弧に記載した印刷ページ順（通常の印刷ページ順）で印刷処理が実行される。その結果、シート内に横長の表１（オブジェクト６１ａ）を含む場合、表１が３分割されて２ページ目、６ページ目及び１０ページ目に印刷されてしまい、表１を印刷したページが散在してしまう。
【００６３】
そこで、本実施例では下記に示す制御により、オブジェクト６１ａが跨がる全てのページ６０について印刷ページ順が隣り合うように印刷ページ順を変更する。まず、印刷データに含まれるページサイズやフォントサイズに基づいてページ分割し、印刷ページ順（通常の印刷ページ順）とページ印刷内容とを対応付ける。次に、複数ページに跨がるオブジェクト６１ａを含む最初のページ（ここでは第２ページ）を検出すると、そのオブジェクト６１ａを含む次のページ（ここでは第６ページ）の印刷ページ順が、そのオブジェクト６１ａを含む直近のページ（第２ページ）の次のページ番号（第３ページ）と同じかどうかを判断する。第６ページが第３ページと異なるので、そのオブジェクト６１ａを含む次のページ（第６ページ）の印刷ページ順をそのオブジェクト６１ａを含む直近のページ（第２ページ）の次に変更する（すなわち、第６ページを第３ページに変更する。）。同じオブジェクト６１ａについて、そのオブジェクト６１ａを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト６１ａを含む他のページ（ここでは第１０ページ）があれば同様の手順で印刷ページ順を変更する。その結果、表１が跨がる第２、６、１０ページについて、第２ページの次が第６ページ、第６ページの次が第１０ページになるように印刷ページ順が変更される。この制御により、オブジェクト６１ａが跨がるページの印刷ページ順が隣り合う順番に変更されるため、オブジェクト６１ａを印刷したページが散在することがなくなる。
【００６４】
この場合、出力されるページ順は（１）→（２）→（６）→（１０）→（３）→（４）→（５）→（７）→（８）→（９）→（１１）→（１２）になる。なお、図７は例示であり、例えば、（５）、（７）、（８）、（９）、（１１）、（１２）に印刷する文字が入っている場合でも、上記の順番で印刷する。また、ここでは理解を容易にするためにオブジェクト６１ａが複数ページに跨がる例で説明しているが、１行の文章が複数ページに跨がる場合も同様である。また、プリンタドライバ経由で印刷データを受信する場合は、クライアント端末２０のプリンタドライバが（１）〜（１２）の各ページの印刷データを作成するため、コントローラ３０では複数ページに跨がるオブジェクトが検出できなくなる。その場合は、クライアント端末２０側で本実施例の印刷制御を実施することになる。
【００６５】
＜パターン２＞
パターン２は、図８に示すように、１つのオブジェクトが複数ページ（縦及び横）に跨がる場合の印刷パターンである。この場合も、パターン１と同様に、印刷ページ順（通常の印刷ページ順）とページ印刷内容との対応付けが行われた後、複数ページに跨がるオブジェクト６１ｂ（表２）を含む最初のページ（ここでは第２ページ）を検出すると、そのオブジェクト６１ｂを含む次のページ（ここでは第３ページ）の印刷ページ順が、そのオブジェクト６１ｂを含む直近のページ（第２ページ）の次のページ番号（第３ページ）と同じかどうかを比較する。この場合は同じであるので、ここまでは通常の印刷ページ順と同じになる。次に、そのオブジェクト６１ｂを含む次のページ（ここでは第６ページ）の印刷ページ順がそのオブジェクト６１ｂを含む直近のページ（第３ページ）の次のページ番号（第４ページ）と同じかどうかを比較する。第６ページが第４ページと異なるので、そのオブジェクト６１ｂを含む次のページ（第６ページ）の印刷ページ順をそのオブジェクト６１ｂを含む直近のページ（第３ページ）の次に変更する（すなわち、第６ページを第４ページに変更する。）。同じオブジェクト６１ｂについてそのオブジェクト６１ｂを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト６１ｂを含む他のページ（ここでは第７、１０、１１ページ）があれば同様の制御で印刷ページ順を変更する。その結果、表２が跨がる第２、３、６、７、１０、１１ページについて、第２ページの次が第３ページ、第３ページの次が第６ページ、第６ページの次が第７ページ、第７ページの次が第１０ページ、第１０ページの次が第１１ページになるように印刷ページ順が変更される。この制御により、オブジェクト６１ｂが跨がるページの印刷ページ順が隣り合う順番に変更されるため、オブジェクト６１ｂを印刷したページが散在することがなくなる。
【００６６】
この場合、出力されるページ順は（１）→（２）→（３）→（６）→（７）→（１０）→（１１）→（４）→（５）→（８）→（９）→（１２）になる。なお、図８は例示であり、例えば、（５）、（８）、（９）、（１２）に印刷する文字が入っている場合でも、上記の順番で印刷する。また、プリンタドライバ経由で印刷データを受信する場合は、クライアント端末２０側で本実施例の印刷制御を実施することになる。
【００６７】
＜パターン３＞
パターン３は、図９に示すように、複数のオブジェクトが複数ページ（例えば、横）に跨がる場合の印刷パターンである。この場合も、パターン１と同様に、印刷ページ順（通常の印刷ページ順）とページ印刷内容との対応付けが行われた後、複数ページに跨がるオブジェクト６１ｃ（表３）を含む最初のページ（ここでは第２ページ）を検出すると、そのオブジェクト６１ｃを含む次のページ（ここでは第６ページ）の印刷ページ順が、そのオブジェクト６１ｃを含む直近のページ（第２ページ）の次のページ番号（第３ページ）と同じかどうかを比較する。第６ページが第３ページと異なるので、そのオブジェクト６１ｃを含む次のページ（第６ページ）の印刷ページ順をそのオブジェクト６１ｃを含む直近のページ（第２ページ）の次に変更する（すなわち、第６ページを第３ページに変更する。）。同じオブジェクト６１ｃについて、そのオブジェクト６１ｃを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト６１ｃを含む他のページ（ここでは第１０ページ）があれば同様の制御で印刷ページ順を変更する。次に、複数ページに跨がる次のオブジェクト６１ｄ（表４）について、オブジェクト６１ｃ（表３）と同じ処理を行う。
【００６８】
その結果、表３が跨がる第２、６、１０ページについて、第２ページの次が第６ページ、第６ページの次が第１０ページになるように印刷ページ順が変更される。また、表４が跨がる第３、７ページについて、第３ページの次が第７ページになるように印刷ページ順が変更される。この制御により、オブジェクト６１ｃ及びオブジェクト６１ｄが跨がるページの印刷ページ順が隣り合う順番に変更されるため、オブジェクト６１ｃ及びオブジェクト６１ｄを印刷したページが散在することがなくなる。
【００６９】
この場合、出力されるページ順は（１）→（２）→（６）→（１０）→（３）→（７）→（４）→（５）→（８）→（９）→（１１）→（１２）になる。なお、図９は例示であり、例えば、（５）、（８）、（９）、（１１）、（１２）に印刷する文字が入っている場合でも、上記の順番で印刷する。また、プリンタドライバ経由で印刷データを受信する場合は、クライアント端末２０側で本実施例の印刷制御を実施することになる。
【００７０】
次に、Ｎｉｎ１印刷を行う場合の印刷制御について説明する。Ｎｉｎ１印刷を行う場合、図６のＳ１１４の判断結果がＹｅｓとなり、制御部３１（印刷画像生成部３１ｃ）により、Ｓ１１５のＮｉｎ１処理が行われる。このＮｉｎ１処理について、図１０のフローチャート図を参照して説明する。なお、以下のフローでは、跨ぎオブジェクトを左から右へ横に配置する場合について記載するが、上から下へ縦に配置する場合についても同様に適用することができる。
【００７１】
まず、１つのオブジェクトが跨がる最大ページ数を取得し（Ｓ２０１）、その最大ページ数に基づいて集約ページ数（Ｎ数）を決定する（Ｓ２０２）。ここで、制御部３１（表示制御部３１ｄ）は、決定したＮ数を印刷画像の送信前に表示部３７に表示し、そのＮ数で印刷してよいかをユーザに選択させるようにしても良い。その際、ページ集約をしない通常の印刷モード、決定したＮ数でページ集約する印刷モード、ユーザが任意のＮ数を指定してページ集約する印刷モードなどの中から印刷モードをユーザに選択させるようにしても良い。また、Ｎ数の事前表示において警告を行うようにしてもよい。例えば、Ｎ数が大きすぎて印刷結果が小さくなりすぎると判断した場合（例えば、１６ｉｎ１より大きなＮ数になる場合）、制御部３１（表示制御部３１ｄ）は、印刷画像の送信前に表示部３７に警告表示を行い、ユーザに印刷モードの選択を促すようにしても良い。この警告表示をするかしないかは、集約数のＮ数を基準にしても良いし、含まれる文字のフォントサイズ（例えば、６ｐｔ以下）を基準にしても良い。
【００７２】
また、ここでは最大ページ数に基づいて集約ページ数（Ｎ数）を決定したが、オブジェクトの種別毎に集約ページ数の制限を設けてもよい。例えば、複数ページに跨がるオブジェクトには、細かな文字・数字が意味を持つ図・表の他に、イメージなど全体をざっと見る目的の物もあるため、ページ集約を行う場合、制御部３１（印刷画像生成部３１ｃ）は、オブジェクトの種別に応じて集約ページ数の制限を設定しても良い。例えば、図・表や文字列など、集約ページ数が大きくなると見にくくなるオブジェクトは９ｉｎ１を限度とし、イメージは２５ｉｎ１を限度とすることができる。
【００７３】
次に、更新された印刷ページ順にページデータを取得し（Ｓ２０３）、取得したページが、オブジェクトが跨がるページであるかを判断する（Ｓ２０４）。
【００７４】
取得したページが、オブジェクトが跨がるページの場合は、そのオブジェクトが跨がる全ページデータを取得し（Ｓ２０５）、Ｎｉｎ１用にページデータを縮小し（Ｓ２０６）、左列を基準にして右方向に、分割したオブジェクトのページデータを順番に配置する（Ｓ２０７）。次に、ページを配置中のＮｉｎ１の行に未配置列があるかを判断し（Ｓ２０８）、未配置列がある場合は、未配置列に白紙ページを配置する（Ｓ２０９）。次に、現在の印刷モードが、ページ混在不可モード（オブジェクトが跨がるページと他のページとを混在不可とするモード）であるか、又は、最終ページであるかを判断し（Ｓ２１０）、ページ混在不可モード又は最終ページの場合は、Ｎｉｎ１の全ての未配置部に白紙ページを配置する（Ｓ２１１）。
【００７５】
一方、取得したページが、オブジェクトが跨がるページでない場合は、現在の印刷モードが、全ページを集約するモードであるかを判断し（Ｓ２１３）、全ページを集約するモードの場合は、次にオブジェクトが跨がる先頭ページの１つ前（以降にオブジェクトが跨がるページが存在しない場合は最終ページ）までの全ページデータを取得し（Ｓ２１４）、Ｎｉｎ１用にページデータを縮小し（Ｓ２１５）、左列を基準にして右＞下の優先度でページデータを順番に配置する（Ｓ２１６）。次に、ページを配置中のＮｉｎ１の行に未配置列があるかを判断し（Ｓ２１７）、未配置列がある場合は、未配置列に白紙ページを配置する（Ｓ２１８）。次に、現在の印刷モードが、ページ混在不可モードであるか、又は、最終ページであるかを判断し（Ｓ２１９）、ページ混在不可モード又は最終ページの場合は、Ｎｉｎ１の全ての未配置部に白紙ページを配置する（Ｓ２２０）。また、Ｓ２１３で全ページを集約するモードでない場合は、そのページはＮｉｎ１ではなく、１枚の用紙に配置する（Ｓ２２１）。
【００７６】
その後、取得していない残ページがあるかを判断し（Ｓ２１２）、残ページがある場合は、Ｓ２０３に戻って、次のページデータに対して同様の処理を繰り返す。
【００７７】
上記フローのＮｉｎ１の印刷制御について、図１１乃至図１８を参照して具体的に説明する。Ｎｉｎ１印刷時は、１つのオブジェクトが跨がるページ全てについて、複数ページに跨がるオブジェクトが、印刷前の配置・向きでページ集約した１枚の用紙に収まるようにＮ数を決定し、Ｎｉｎ１で配置する。例えば、オブジェクトが横方向の２ページに跨がる場合は４ｉｎ１、横方向の３ページに跨がる場合は９ｉｎ１、縦方向の２ページに跨がる場合は４ｉｎ１とする。Ｎｉｎ１での印刷パターンは下記の２パターンがある。
【００７８】
第１のパターンは、オブジェクトが跨がるページでＮ数を決定し、オブジェクトが跨がるページだけをＮｉｎ１印刷するパターンである。オブジェクトが複数ページに跨がる（横に跨ぐ）最初のページは、Ｎｉｎ１の左側先頭ページ（図１１（ａ）に示す２ｉｎ１時は奇数ページ目、図１１（ｂ）に示す４ｉｎ１時は奇数ページ目、図１１（ｃ）に示す９ｉｎ１時は１、４、７ページ目、図１１（ｄ）に示す１６ｉｎ１時は１、５、９、１３ページ目）になるように、白紙ページを挿入してＮｉｎ１で構成する。なお、オブジェクトが跨がらないページは通常の１枚１ページで印刷する。
【００７９】
複数ページに跨がるオブジェクトが複数ある場合のＮｉｎ１のＮ数の決定方法は下記のどちらでもよい。
（１−Ａ）：最適なＮ数をオブジェクト毎に決定
（１−Ｂ）：印刷データに含まれる複数のオブジェクトのうち、オブジェクトが跨がる最大のページ数で固定的に決定
【００８０】
第２のパターンは、オブジェクトが跨がるページでＮ数を決定し、全ページをＮｉｎ１印刷するパターンである。オブジェクトが複数ページに跨がる（横に跨ぐ）最初のページの配置や白紙ページの挿入は第１のパターンと同じである。複数ページに跨がるオブジェクトが複数ある場合は、そのページは下記のどちらで配置しても良い。
（２−Ａ）：オブジェクト毎に個別にＮｉｎ１でページを構成せず、混在して配置
（２−Ｂ）：オブジェクト毎に個別にＮｉｎ１でページを構成
【００８１】
上記Ｎ数の決定方法について説明する。複数ページに跨がるオブジェクトが印刷前の配置・向き（分割されたオブジェクトが本来の形で繋がる順番・向き）に一方向に並べられるものの中で、最小の分割数となるＮ数を決定する。図１２の表４は４ｉｎ１でも９ｉｎ１でも配置することができるが、最小の分割数となる４ｉｎ１で配置する。なお、図１３のように、本来の形で繋がらない向きには、回転してまでページ集約はしない。
【００８２】
次に、図１４に示すような、複数ページに跨がるオブジェクトが複数存在するスプレッドシートの資料をＮｉｎ１印刷する場合の印刷制御について、図１５乃至図１８のテーブルを参照して説明する。なお、図１５乃至図１８は、各々、上述した（１−Ａ）、（１−Ｂ）、（２−Ａ）、（２−Ｂ）の印刷制御を行った場合の各印刷用紙における印刷ページの配置を示しており、テーブル中のハッチングを付した印刷用紙が、複数ページに跨がるオブジェクトが存在するページを配置した用紙である。
【００８３】
（１−Ａ）で印刷する場合は、図１５に示すように、跨ぎオブジェクト毎に最適なＮ数を決定する。例えば、表３は９ｉｎ１、表４は４ｉｎ１にする。この場合の印刷制御を図１０に則して説明すると、オブジェクトが跨がらない印刷ページ（１）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｎｏ）→Ｓ２２１の順に処理を行い、第１の印刷用紙に配置する。また、オブジェクト（表３）が跨がる印刷ページ（２、６、１０）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｎｏ）→Ｓ２１０（Ｙｅｓ）→Ｓ２１１の順に処理を行い、第２の印刷用紙の左列から順に横に並べて配置し、白紙６ページを挿入して９ｉｎ１で構成する。また、オブジェクト（表４）が跨がる印刷ページ（３、７）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｎｏ）→Ｓ２１０（Ｙｅｓ）→Ｓ２１１の順に処理を行い、第３の印刷用紙に左列から順に横に並べて配置し、白紙２ページを挿入して４ｉｎ１で構成する。また、オブジェクトが跨がらない印刷ページ（４、５、８、９、１１、１２）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｎｏ）→Ｓ２２１の順に処理を行い、第４〜第９の印刷用紙に各々１ページずつ配置する。
【００８４】
（１−Ｂ）で印刷する場合は、図１６に示すように、跨ぎオブジェクトの中の最大跨ぎページ数が３ページの表３が収まる９ｉｎ１に統一して配置する。この場合の印刷制御を図１０に則して説明すると、オブジェクトが跨がらない印刷ページ（１）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｎｏ）→Ｓ２２１の順に処理を行い、第１の印刷用紙に配置する。また、オブジェクト（表３）が跨がる印刷ページ（２、６、１０）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｎｏ）→Ｓ２１０（Ｙｅｓ）→Ｓ２１１の順に処理を行い、第２の印刷用紙の左列から順に横に並べて配置し、白紙６ページを挿入して９ｉｎ１で構成する。また、オブジェクト（表４）が跨がる印刷ページ（３、７）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｙｅｓ）→Ｓ２０９→Ｓ２１０（Ｙｅｓ）→Ｓ２１１の順に処理を行い、第３の印刷用紙に左列から順に横に並べて配置し、白紙７ページを挿入して９ｉｎ１で構成する。また、オブジェクトが跨がらない印刷ページ（４、５、８、９、１１、１２）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｎｏ）→Ｓ２２１の順に処理を行い、第４〜第９の印刷用紙に各々１ページずつ配置する。
【００８５】
（２−Ａ）で印刷する場合は、図１７に示すように、オブジェクトが跨がるページの最大数が３ページ（表３）となるため、全ページを９ｉｎ１で配置する。また、跨ぎオブジェクトが配置されるページはオブジェクト毎に個別の用紙に印刷せず、混在して１枚の用紙に配置する。この場合の印刷制御を図１０に則して説明すると、オブジェクトが跨がらない印刷ページ（１）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｙｅｓ）→Ｓ２１４〜Ｓ２１６→Ｓ２１７（Ｙｅｓ）→Ｓ２１８→Ｓ２１９（Ｎｏ）の順に処理を行い、１枚目の印刷用紙の１段目の左列に配置し、白紙２ページを横に挿入する。また、オブジェクト（表３）が跨がる印刷ページ（２、６、１０）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｎｏ）→Ｓ２１０（Ｎｏ）の順に処理を行い、１枚目の印刷用紙の２段目に左列から順に横に並べて配置する。また、オブジェクト（表４）が跨がる印刷ページ（３、７）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｙｅｓ）→Ｓ２０９→Ｓ２１０（Ｎｏ）の順に処理を行い、１枚目の印刷用紙の３段目の左列から順に横に並べて配置し、白紙１ページを挿入して９ｉｎ１で構成する。また、オブジェクトが跨がらない印刷ページ（４、５、８、９、１１、１２）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｙｅｓ）→Ｓ２１４〜Ｓ２１６→Ｓ２１７（Ｎｏ）→Ｓ２１９（Ｙｅｓ）→Ｓ２２０の順に処理を行い、２枚目の印刷用紙の１段目の左列から右＞下の優先度に従って配置し、白紙３ページを挿入して９ｉｎ１で構成する。
【００８６】
（２−Ｂ）で印刷する場合は、図１８に示すように、オブジェクトが跨がるページの最大数が３ページ（表３）となるため、全体を９ｉｎ１で構成するように決定する。跨ぎオブジェクトが配置されるページはオブジェクト毎に個別の用紙に印刷する。この場合の印刷制御を図１０に則して説明すると、オブジェクトが跨がらない印刷ページ（１）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｙｅｓ）→Ｓ２１４〜Ｓ２１６→Ｓ２１７（Ｙｅｓ）→Ｓ２１８→Ｓ２１９（Ｙｅｓ）→Ｓ２２０の順に処理を行い、１枚目の印刷用紙の１段目の左列に配置し、白紙８ページを挿入して９ｉｎ１で構成する。また、オブジェクト（表３）が跨がる印刷ページ（２、６、１０）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｎｏ）→Ｓ２１０（Ｙｅｓ）→Ｓ２１１の順に処理を行い、２枚目の印刷用紙の１段目に左列から順に横に並べて配置し、白紙６ページを挿入して９ｉｎ１で構成する。また、オブジェクト（表４）が跨がる印刷ページ（３、７）は、Ｓ２０４（Ｙｅｓ）→Ｓ２０５〜Ｓ２０７→Ｓ２０８（Ｙｅｓ）→Ｓ２０９→Ｓ２１０（Ｙｅｓ）→Ｓ２１１の順に処理を行い、３枚目の印刷用紙の１段目に左列から順に横に並べて配置し、白紙７ページを挿入して９ｉｎ１で構成する。また、オブジェクトが跨がらない印刷ページ（４、５、８、９、１１、１２）は、Ｓ２０４（Ｎｏ）→Ｓ２１３（Ｙｅｓ）→Ｓ２１４〜Ｓ２１６→Ｓ２１７（Ｎｏ）→Ｓ２１９（Ｙｅｓ）→Ｓ２２０の順に処理を行い、４枚目の印刷用紙の１段目の左列から右＞下の優先度に従って配置し、白紙３ページを挿入して９ｉｎ１で構成する。
【００８７】
なお、図１５乃至図１８は一例であり、印刷ページの配置やＮ数は適宜変更可能である。例えば、（２−Ｂ）で印刷する場合において、（１−Ａ）と同様に、跨ぎオブジェクト毎に最適なＮ数を設定して印刷してもよい。その場合は、（２−Ｂ）のテーブルにおける印刷用紙３は９ｉｎ１ではなく、（３）、（７）を横に配置し、白紙２ページを挿入する４ｉｎ１を構成することになる。
【００８８】
以上説明したように、コントローラ３０（又はコントローラ３０の機能を備えた印刷装置４０）は、スプレッドシートの印刷データを受信すると、印刷データを解析し、印刷設定情報に基づいて印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定し、複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページと印刷ページ順の次のページとを比較し、その比較結果に基づいて印刷ページ順を更新し、設定又は更新した印刷ページ順に基づいて、印刷データをラスタライズして得たページデータを配置した印刷画像を生成して印刷エンジンに送信することにより、オブジェクトが複数ページに散在してしまう不具合を防止することができる。
【００８９】
また、印刷設定情報で、１枚の用紙に複数ページを縮小して配置するページ集約印刷が指示された場合は、複数ページに跨がるオブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、集約ページ数を決定（各々のオブジェクトの跨ぎページ数の全ページが、跨ぎ方向に並べて配置できるように集約ページ数を決定）し、決定した集約ページ数でページデータを集約して配置した印刷画像を生成して印刷エンジンに送信することにより、資料全体の視認性を維持することができる。
【００９０】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【００９１】
例えば、上記実施例では、コントローラ３０が印刷制御を行う場合を示したが、印刷装置４０がコントローラ３０の機能を備える場合は、印刷装置４０が上記の印刷制御を行うようにすればよい。また、上記実施例では、ダイレクトプリントを前提にして印刷指示を行うことから、コントローラ３０や印刷装置４０の表示部に選択画面や警告画面を表示させたが、プリンタドライバを用いて印刷指示を行う場合は、プリンタドライバが印刷制御を行い、プリンタドライバによる印刷設定の際に選択画面や警告画面を表示することも可能である。
【産業上の利用可能性】
【００９２】
本発明は、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム、当該印刷制御プログラムを記録した記録媒体及び印刷制御装置を備えるシステムにおける印刷制御方法に利用可能である。
【符号の説明】
【００９３】
１０  印刷システム
２０  クライアント端末
２１  制御部
２１ａ  ＯＳ
２１ｂ  アプリケーション
２１ｃ  ダイレクトプリントユーティリティ
２２  ＣＰＵ
２３  ＲＯＭ
２４  ＲＡＭ
２５  記憶部
２６  ネットワークＩ／Ｆ部
２７  表示部
２８  操作部
３０  コントローラ
３１  制御部
３１ａ  印刷データ解析部
３１ｂ  印刷ページ順変更部
３１ｃ  印刷画像生成部
３１ｄ  表示制御部
３２  ＣＰＵ
３３  ＲＯＭ
３４  ＲＡＭ
３５  記憶部
３６  ネットワークＩ／Ｆ部
３７  表示部
３８  操作部
４０  印刷装置
４１  制御部
４２  ＣＰＵ
４３  ＲＯＭ
４４  ＲＡＭ
４５  記憶部
４６  ネットワークＩ／Ｆ部
４７  表示操作部
４８  読み取り部
４９  印刷部
５０  通信ネットワーク
６０  ページ
６１ａ〜６１ｄ  オブジェクト
【図１】
2018124601.tif 000003
【図２】
2018124601.tif 000004
【図３】
2018124601.tif 000005
【図４】
2018124601.tif 000006
【図５】
2018124601.tif 000007
【図６】
2018124601.tif 000008
【図７】
2018124601.tif 000009
【図８】
2018124601.tif 000010
【図９】
2018124601.tif 000011
【図１０】
2018124601.tif 000012
【図１１】
2018124601.tif 000013
【図１２】
2018124601.tif 000014
【図１３】
2018124601.tif 000015
【図１４】
2018124601.tif 000016
【図１５】
2018124601.tif 000017
【図１６】
2018124601.tif 000018
【図１７】
2018124601.tif 000019
【図１８】
2018124601.tif 000020