JP2018124601A - 印刷制御装置、印刷制御プログラム及び印刷制御方法 - Google Patents
印刷制御装置、印刷制御プログラム及び印刷制御方法 Download PDFInfo
- Publication number
- JP2018124601A JP2018124601A JP2017013792A JP2017013792A JP2018124601A JP 2018124601 A JP2018124601 A JP 2018124601A JP 2017013792 A JP2017013792 A JP 2017013792A JP 2017013792 A JP2017013792 A JP 2017013792A JP 2018124601 A JP2018124601 A JP 2018124601A
- Authority
- JP
- Japan
- Prior art keywords
- page
- pages
- printing
- control apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Record Information Processing For Printing (AREA)
- Control Or Security For Electrophotography (AREA)
- Facsimiles In General (AREA)
- Editing Of Facsimile Originals (AREA)
- Accessory Devices And Overall Control Thereof (AREA)
Abstract
【課題】スプレッドシートの資料を印刷する際に、オブジェクトが印刷される複数のページが散在することを防止しつつ、資料全体の視認性を維持する。【解決手段】印刷制御装置は、スプレッドシートの印刷データを受信すると、印刷データを解析して印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定し、印刷データに複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、次の跨ぎ先のページのページ番号が印刷ページ順の次のページのページ番号になるように、印刷ページ順を更新し、印刷データをラスタライズして得たページデータを、設定又は更新した印刷ページ順に基づいて配置した印刷画像を生成して印刷エンジンに送信する。【選択図】図6
Description
本発明は、印刷制御装置、印刷制御プログラム及び印刷制御方法に関し、特に、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム及び印刷制御方法に関する。
文書作成や表計算などの処理が可能なオフィススイート・アプリケーションは、オフィスワーク、教育、家庭など、あらゆる場面で一般的に使用されている。オフィススイート・アプリケーションの内の代表的な表計算アプリケーションとして、Microsoft(登録商標、以下省略)のExcel(登録商標、以下省略)が挙げられる。また、Apache OpenOfficeなど、同様の機能を有するアプリケーションも複数流通しており、これらの表計算アプリケーションはスプレッドシート(Spreadsheet)と呼ばれる。
上記MicrosoftのExcelのようなスプレッドシートにおいて、シート内に図、表、文字などのオブジェクトを配置して、資料を作る事が日常的に行われている。Excelでは、印刷時に縮小率を設定して印刷ページサイズを指定することができるが、例えば、一部に横長の表などのオブジェクトを含む資料を印刷する場合、現状では、資料に設定されているページサイズに合わせて全ページを印刷するか、表などのオブジェクトのサイズに合わせて全体を縮小して印刷している。
このようなオブジェクトの印刷に関して、例えば、下記特許文献1には、一の画像データを構成する複数のページ画像の中から、前記画像に含まれる重視領域を特定する領域特定手段と、前記重視領域に基づいて、前記複数のページ画像の印刷ページ順番を決定する順番決定手段とを有する画像形成装置が開示されている。また、オブジェクトを示すオブジェクト情報を受け付ける受付手段をさらに有し、前記領域特定手段は、前記オブジェクト情報に示される前記オブジェクトの領域を前記重視領域として特定する構成が開示されている。
また、下記特許文献2には、用紙の領域より大きい領域の印刷イメージを入力し、余白のない印刷を行う印刷手段と、1ページのデータを分割して複数ページに印刷する指示に基づいて、印刷すべき用紙に対応する印刷イメージを、隣り合う用紙に対応する印刷イメージと一部が重なるように分割し、前記印刷手段に出力する出力手段とを備えた印刷装置が開示されている。
上述したように、一部に横長の表を含む資料を印刷する場合、資料に設定されているページサイズに合わせて全ページを印刷すると、表が途中で切れ、離れたページに残りの表が印刷されてしまい、関連する表が纏まらずに複数ページに散在してしまうため、表の中身を確認するために散在する別のページを探し出す手間が生じる。また、複数ページに跨がる文章が存在する場合も同様であり、関連する文章が纏まらずに複数ページに散在してしまうため、文章の意味を把握するために散在する別のページを探し出す手間が生じる。一方、表などのオブジェクトのサイズに合わせて全体を縮小して印刷する場合は、資料に含まれる文字のフォントサイズが小さくなるため、資料の理解が困難になる。
この問題に対して、上記特許文献1では、分割されたページの印刷時に、複数ページに跨がるオブジェクトについては面積が大きいページから順に印刷するようにしているが、この方法では、ページを跨いでオブジェクトが存在する場合、元のドキュメントの印刷ページ順を無視してオブジェクトの面積順に印刷することになるため、資料全体の視認性が低下する。
また、特許文献2では、イメージの一部が重なるよう分割して順にプリンタに出力するため、イメージについては連続した印刷ページ順になるが、この方法は、印刷するデータの中身を見て、必要のあるページだけについて印刷ページ順を変更すると言うものではないため、やはり、資料全体の視認性が低下する。
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、複数ページに跨がるオブジェクトを含むスプレッドシートの資料を印刷する際に、オブジェクトが印刷される複数のページが散在することを防止しつつ、資料全体の視認性を維持することができる印刷制御装置、印刷制御プログラム及び印刷制御方法を提供することにある。
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置であって、前記スプレッドシートの印刷データを受信し、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する印刷データ解析部と、前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する印刷ページ順変更部と、前記印刷データをラスタライズしてページデータを生成し、前記印刷データ解析部が設定又は前記印刷ページ順変更部が更新した前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成し、当該印刷画像を印刷エンジンに送信する印刷画像生成部と、を備えることを特徴とする。
本発明の一側面は、スプレッドシートの印刷を制御する印刷制御装置で動作する印刷制御プログラムであって、前記印刷制御装置に、前記スプレッドシートの印刷データを受信する第1処理、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第2処理、前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第3処理、前記印刷データをラスタライズしてページデータを生成し、前記第2処理で設定又は前記第3処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第4処理、前記印刷画像を印刷エンジンに送信して印刷を指示する第5処理、を実行させることを特徴とする。
本発明の一側面は、スプレッドシートの印刷を制御する装置における印刷制御方法であって、前記スプレッドシートの印刷データを受信する第1処理と、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第2処理と、前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第3処理と、前記印刷データをラスタライズしてページデータを生成し、前記第2処理で設定又は前記第3処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第4処理と、前記印刷画像を印刷エンジンに送信して印刷を指示する第5処理と、を実行することを特徴とする。
本発明の印刷制御装置、印刷制御プログラム及び印刷制御方法によれば、複数ページに跨がるオブジェクトを含むスプレッドシートの資料を印刷する際に、オブジェクトが印刷される複数のページが散在することを防止しつつ、資料全体の視認性を維持することができる。
その理由は、印刷制御装置(印刷制御プログラム)は、スプレッドシートの印刷データを受信すると、印刷データを解析して印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定し、印刷データに複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、次の跨ぎ先のページのページ番号が印刷ページ順の次のページのページ番号になるように、印刷ページ順を更新し、印刷データをラスタライズして得たページデータを、設定又は更新した印刷ページ順に基づいて配置した印刷画像を生成して印刷エンジンに送信するからである。
背景技術で示したように、Excelのようなスプレッドシートでは、印刷時に縮小率を設定して印刷ページサイズを指定することができ、例えば、一部に横長の表などのオブジェクトを含む資料を印刷する場合、資料に設定されているページサイズに合わせて全ページを印刷するか、オブジェクトのサイズに合わせて全体を縮小して印刷している。
しかしながら、資料に設定されているページサイズに合わせて全ページを印刷すると、オブジェクトが複数ページに散在してしまい、オブジェクトの内容を確認するために散在する別のページを探し出す必要が生じる。一方、オブジェクトのサイズに合わせて全体を縮小して印刷すると、資料に含まれる文字のフォントサイズが小さくなり、資料の視認性が低下してしまう。
そこで、本発明の一実施の形態では、図、表、文字などのオブジェクトを含むスプレッドシートの資料を印刷するとき、これらのオブジェクトがページを跨いで存在する場合には、オブジェクトが跨がるページ同士が隣り合う順番となるように印刷ページ順を変更するようにする。
具体的には、スプレッドシートの印刷データを受信すると、印刷データを解析し、印刷設定情報に基づいて印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定する。そして、複数ページに跨がるオブジェクトが含まれているかを判断し、複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、次の跨ぎ先のページのページ番号が印刷ページ順の次のページのページ番号になるように、印刷ページ順を更新し、設定又は更新した印刷ページ順に基づいて、印刷データをラスタライズして得たページデータを配置した印刷画像を生成して印刷エンジンに送信する。
また、印刷設定情報で、1枚の用紙に複数ページを縮小して配置するページ集約印刷が指示された場合は、複数ページに跨がるオブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、集約ページ数を決定(各々のオブジェクトの跨ぎページ数の全ページが、跨ぎ方向に並べて配置できるように集約ページ数を決定)し、決定した集約ページ数でページデータを集約して配置した印刷画像を生成する。
これにより、複数ページに跨がるオブジェクトが分割して印刷される場合でも、このオブジェクトを含む全ページが隣り合う順番となるように印刷ページ順が変更されるため、オブジェクトが複数ページに散在してしまう不具合を防止することができる。また、ページ集約印刷を行う場合は、このオブジェクトを含む全ページが1枚の用紙内に並んで配置されるため、資料全体の視認性を維持することができる。
上記した本発明の一実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る印刷制御装置、印刷制御プログラム及び印刷制御方法について、図1乃至図18を参照して説明する。図1及び図2は、本実施例の印刷システムの構成を示す模式図である。また、図3乃至図5は、各々、クライアント端末、コントローラ、印刷装置の構成を示すブロック図であり、図6及び図10は、本実施例のコントローラの処理を示すフローチャート図である。また、図7乃至図9は、スプレッドシートの資料の印刷ページ順を説明する模式図であり、図11は、オブジェクトが跨がるページのNin1配置を説明する模式図、図12及び図13は、ページ集約がOK/NGの場合の一例を示す模式図である。また、図14は、本実施例のスプレッドシートの資料の一例を示す模式図であり、図15乃至図18は、図14の資料をページ集約印刷する場合の印刷ページ順を説明するテーブルである。
図1に示すように、本実施例の印刷システム10は、クライアント端末20とコントローラ30と印刷装置40などで構成される。これらはイーサネット(登録商標)、トークンリング、FDDI(Fiber-Distributed Data Interface)等の規格により定められるLAN(Local Area Network)やWAN(Wide Area Network)等の通信ネットワーク50を介して接続されている。
なお、コントローラ30と印刷装置40とはPCI(Peripheral Component Interconnect)接続などの専用線で接続されていてもよい。また、図1では、印刷システム10をクライアント端末20とコントローラ30と印刷装置40とで構成したが、図2に示すように、コントローラ30は印刷装置40に内蔵される構成としてもよい。以下、図1の印刷システム10を前提にして、各装置について説明する。
[クライアント端末]
クライアント端末20は、パーソナルコンピュータなどのコンピュータ装置、スマートフォンやタブレットなどの携帯端末などであり、スプレッドシートの印刷データを作成してコントローラ30に送信する。このクライアント端末20は、図3(a)に示すように、制御部21、記憶部25、ネットワークI/F部26、表示部27、操作部28などで構成される。
クライアント端末20は、パーソナルコンピュータなどのコンピュータ装置、スマートフォンやタブレットなどの携帯端末などであり、スプレッドシートの印刷データを作成してコントローラ30に送信する。このクライアント端末20は、図3(a)に示すように、制御部21、記憶部25、ネットワークI/F部26、表示部27、操作部28などで構成される。
制御部21は、CPU(Central Processing Unit)22と、ROM(Read Only Memory)23やRAM(Random Access Memory)24などのメモリとで構成され、CPU22は、ROM23や記憶部25に記憶した制御プログラムをRAM24に展開して実行することにより、クライアント端末20全体の動作を制御する。また、図3(b)に示すように、上記制御部21(CPU22)により、OS(Operating System)21a、アプリケーション21b、ダイレクトプリントユーティリティ21cなどが実行される。
OS21aは、Windows(登録商標)やMacOS(登録商標)、Android(登録商標)などであり、クライアント端末20でアプリケーション21bやダイレクトプリントユーティリティ21cなどを動作可能にする。
アプリケーション21bは、MicrosoftのExcelなどの表計算アプリケーション(スプレッドシート)であり、シート内に、図、表、文字などのオブジェクトが描画されたデータ(印刷データ)を作成する。このスプレッドシートの印刷データには、シート数、シート毎のページ数、ページサイズ、オブジェクト情報(サイズ、描画位置等)、文字情報(文字列、フォントサイズ、描画位置、ピッチ等)、縮小率、ページ集約印刷に関する情報などを規定する印刷設定情報が含まれる。
ダイレクトプリントユーティリティ21cは、所定のフォルダ(例えば、記憶部25内のフォルダ)を監視し、スプレッドシートの印刷データが所定のフォルダに保存されたら、コントローラ30に当該印刷データを送信してダイレクトプリントを指示する。
記憶部25は、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成され、CPU22が各部を制御するためのプログラム、スプレッドシートの印刷データなどを保存する。
ネットワークI/F部26は、NIC(Network Interface Card)やモデムなどで構成され、クライアント端末20を通信ネットワーク50に接続し、スプレッドシートの印刷データを送信可能にする。
表示部27は、液晶表示装置(LCD:Liquid Crystal Display)や有機EL(electroluminescence)表示装置などで構成され、アプリケーション21bの画面などを表示する。
操作部28は、マウスやキーボードなどで構成され、アプリケーション21bを用いたスプレッドシートの印刷データの作成、ダイレクトプリントの指示などの操作を可能にする。
なお、図3(b)では、ダイレクトプリントユーティリティ21cを用いて印刷指示を行う構成としたが、プリンタドライバを用いて印刷を指示することもできる。その場合は、制御部21により、プリンタドライバが実行され、プリンタドライバは、アプリケーション21bによって作成されたデータを、PJL(Printer Job Language)やPS(PostScript)、PCL(Printer Control Language)等のページ記述言語で記述されたPDL(Page Description Language)の印刷データに変換してコントローラ30に送信する。
[コントローラ]
コントローラ30は、クライアント端末20から受信したスプレッドシートの印刷データを処理し、印刷装置40に印刷を指示する。このコントローラ30は、図4(a)に示すように、制御部31、記憶部35、ネットワークI/F部36、表示部37、操作部38などで構成される。
コントローラ30は、クライアント端末20から受信したスプレッドシートの印刷データを処理し、印刷装置40に印刷を指示する。このコントローラ30は、図4(a)に示すように、制御部31、記憶部35、ネットワークI/F部36、表示部37、操作部38などで構成される。
制御部31は、CPU32と、ROM33やRAM34などのメモリとで構成され、CPU32は、ROM33や記憶部35に記憶した制御プログラムをRAM34に展開して実行することにより、コントローラ30全体の動作を制御する。また、図4(b)に示すように、制御部31は、印刷データ解析部31a、印刷ページ順変更部31b、印刷画像生成部31c、表示制御部31dなどとして機能する。
印刷データ解析部31aは、クライアント端末20から受信したスプレッドシートの印刷データを解析し、シート数、シート毎のページ数、ページサイズ、オブジェクト情報(サイズ、描画位置等)、文字情報(文字列、フォントサイズ、描画位置、ピッチ等)、縮小率、ページ集約印刷に関する情報などを規定する印刷設定情報を取得する。そして、取得した印刷設定情報に基づいて印刷ページサイズを決定し、決定した印刷ページサイズに基づいてシートをページ分割し、分割した各ページの印刷ページ順を設定し、設定した印刷ページ順とページ印刷内容とを記憶部35などに記憶して管理する。
印刷ページ順変更部31bは、印刷データ内に複数ページに跨がる図、表、文字等のオブジェクトが含まれているかを判断し、複数ページに跨がるオブジェクト(跨ぎオブジェクトとも呼ぶ。)が含まれている場合は、オブジェクト毎にそのオブジェクトが跨がる方向(以下、跨ぎ方向と呼ぶ。)及びそのオブジェクトが跨がるページ数(以下、跨ぎページ数と呼ぶ。)を取得し、オブジェクト毎の跨ぎ方向及び跨ぎページ数を記憶部35などに記憶して管理する。そして、そのオブジェクトが跨がるページ(跨ぎ元ページ)について、跨ぎ方向の次のページ(次の跨ぎ先ページ)のページ番号と印刷ページ順の次のページのページ番号とが一致するか(言い換えると、そのオブジェクトの次の跨ぎ先ページのページ番号が、同じオブジェクトが跨がる直前ページの次であるか)を判断する。そして、双方のページ番号が異なる場合は、次の跨ぎ先ページのページ番号を印刷ページ順の次のページ番号に変更して(言い換えると、そのオブジェクトの次の跨ぎ先ページの印刷ページ順を、同じオブジェクトが跨がる直前ページの次に変更して)、印刷データ解析部31aが管理する印刷ページ順を更新する。
印刷画像生成部31cは、RIP(Raster Image Processor)部として機能し、印刷データをラスタライズしてページデータを生成し、印刷データ解析部31aが設定又は印刷ページ順変更部31bが更新した印刷ページ順に従って、ページデータを配置した印刷画像を生成し、生成した印刷画像を印刷装置40に送信する。なお、1枚の用紙に1ページを配置する通常印刷時は、各々のページデータが各々の用紙に対する印刷画像となる。また、印刷設定情報で、1枚の用紙に複数ページを縮小して配置するページ集約印刷(Nin1印刷)が指示されている場合は、以下の手順に従ってページデータを配置して印刷画像を生成する。
まず、オブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、複数ページに跨がるオブジェクトの全ページを跨ぎ方向に並べて配置することができるページ集約のN数(集約ページ数)を決定する。その際、複数ページに跨がるオブジェクトが複数ある場合は、各々のオブジェクトの跨ぎページ数に基づいてオブジェクト毎にN数を決定するか、又は、1つのオブジェクトが跨がる最大ページ数を取得し、取得した最大ページ数に基づいてN数を決定する。このN数は、オブジェクトの種別に応じて決定してもよい。そして、決定したN数に従って、複数ページに跨がるオブジェクトの最初のページが、ページ集約したときに用紙の左側(用紙を正しい向きに配置したときにユーザ側から見て左側)になるように配置し、そのオブジェクトが跨がる残りのページを、跨ぎ方向に配置(跨ぎ方向が横方向の場合は左から右へ、跨ぎ方向が縦方向の場合は上から下へ順に配置)する。この時、複数ページに跨がるオブジェクトのみをページ集約対象とするか、印刷データ内の全ページをページ集約対象とする。また、複数ページに跨がるオブジェクトの全ページを跨ぎ方向に並べて配置した際に跨ぎ方向に余白が生じる場合は白紙ページを挿入してNin1の印刷画像を生成する。また、操作部38を用いてユーザが指示したN数に応じて、Nin1の印刷画像の再生成を行う。
表示制御部31dは、印刷画像生成部31cが決定したN数を通知する通知画面を、印刷画像の送信前に表示部37に表示させる。その際、必要に応じて、通知画面でユーザがN数を指定できるようにする。また、表示制御部31dは、決定したN数が予め定めた閾値(第1の閾値)よりも大きいか、決定したN数でページ集約したときの文字のフォントサイズが予め定めた閾値(第2の閾値)よりも小さいかを判断し、決定したN数が第1の閾値よりも大きい、又は、文字のフォントサイズが第2の閾値よりも小さい場合は、その旨を通知する警告画面を、印刷画像の送信前に表示部37に表示させる。そして、警告画面において、決定したN数でNin1印刷を続行するか、ページ集約を解除して1枚の用紙に1ページを印刷する通常印刷にするか、をユーザが指定できるようにする。なお、複数ページに跨がるオブジェクトの種別によらず第1の閾値は一定としてもよいし、イメージオブジェクトの場合は、グラフィックスオブジェクトやテキストオブジェクトよりも第1の閾値を大きく(判断の基準を緩く)してもよい。
なお、上記印刷データ解析部31a、印刷ページ順変更部31b、印刷画像生成部31c、表示制御部31dはハードウェアとして構成してもよいし、制御部31を印刷データ解析部31a、印刷ページ順変更部31b、印刷画像生成部31c、表示制御部31d(特に、印刷データ解析部31a、印刷ページ順変更部31b、印刷画像生成部31c)として機能させる印刷制御プログラムとして構成し、当該印刷制御プログラムをCPU32に実行させるようにしてもよい。
記憶部35は、HDDやSSDなどで構成され、CPU32が各部を制御するためのプログラム、クライアント端末20から受信したスプレッドシートの印刷データ、印刷画像生成部31cが生成したページデータや印刷画像などを保存する。
ネットワークI/F部36は、NICやモデムなどで構成され、コントローラ30を通信ネットワーク50に接続し、スプレッドシートの印刷データを受信可能にし、ページデータや印刷画像を送信可能にする。
表示部37は、液晶表示装置や有機EL表示装置などで構成され、印刷に関する各種画面を表示する。本実施例では、特に、印刷画像生成部31cが決定したN数の通知画面や警告画面を印刷画像の送信前に表示する。
操作部38は、マウスやキーボードなどで構成され、印刷に関する各種操作を可能にする。本実施例では、特に、上記通知画面におけるN数の指定操作、上記警告画面における決定したN数でNin1印刷を続行するかページ集約を解除するかの選択操作などを受け付ける。
[印刷装置]
印刷装置40は、MFP(Multi-Functional Peripherals)や単機能プリンタなどであり、コントローラ30から受信したページデータに基づいて、用紙に印刷を行う。この印刷装置40は、図5に示すように、制御部41、記憶部45、ネットワークI/F部46、表示操作部47、読み取り部48、印刷部49などで構成される。
印刷装置40は、MFP(Multi-Functional Peripherals)や単機能プリンタなどであり、コントローラ30から受信したページデータに基づいて、用紙に印刷を行う。この印刷装置40は、図5に示すように、制御部41、記憶部45、ネットワークI/F部46、表示操作部47、読み取り部48、印刷部49などで構成される。
制御部41は、CPU42とROM43やRAM44などのメモリとで構成され、CPU42は、ROM43や記憶部45に記憶した制御プログラムをRAM44に展開して実行することにより、印刷装置40全体の動作を制御する。特に、本実施例では、印刷モードを、ページ集約をしない通常の印刷モードやページ集約する印刷モードに設定できるようにする。また、ページ集約する印刷モードでは、オブジェクトのページと他のページとを混在不可とする印刷モード(ページ混在不可モードと呼ぶ。)、複数ページに跨がるオブジェクトのみをページ集約する印刷モードや印刷データの全ページをページ集約する印刷モードなどに設定できるようにする。
記憶部45は、HDDやSSDなどで構成され、CPU42が各部を制御するためのプログラム、自装置の処理機能に関する情報、ページデータや印刷画像などを記憶する。
ネットワークI/F部46は、NICやモデムなどで構成され、印刷装置40を通信ネットワーク50に接続し、コントローラ30からページデータや印刷画像を受信可能にする。
表示操作部47は、表示部上に透明電極が格子状に配置された感圧式の操作部(タッチセンサ)を設けたタッチパネルなどであり、印刷処理に関する各種画面を表示し、印刷に関する各種操作を可能にする。
読み取り部48は、原稿台上の原稿から画像データを光学的に読み取る部分であり、原稿を走査する光源と、原稿で反射された光を電気信号に変換するCCD(Charge Coupled Devices)等のイメージセンサと、電気信号をA/D変換するA/D変換器等により構成される。なお、読み取り部48は必須ではない。
印刷部49は、給紙部から供給される用紙に印刷画像を形成して排紙部に出力する印刷エンジンである。この印刷部49は、例えば、印刷画像に基づいてレーザ光を照射して露光する露光部と、感光体ドラムと現像部と帯電部と感光体クリーニング部と1次転写ローラとを備え、CMYKの各色のトナー像を形成する画像形成部と、ローラによって回転され、画像形成部で形成されたトナー像を用紙に搬送する中間転写体として機能する中間ベルトと、中間ベルト上に形成されたトナー像を用紙に転写する2次転写ローラと、用紙に転写されたトナー像を定着させる定着部などで構成される。
なお、図1乃至図5は、本実施例の印刷システム10の一例であり、各装置の構成や制御は適宜変更可能である。例えば、上記では、コントローラ30が印刷装置40を制御する場合について記載したが、図2に示すように、コントローラ30が印刷装置40に内蔵される場合は、印刷装置40の制御部41を印刷データ解析部、印刷ページ順変更部、印刷画像生成部、表示制御部として機能させる(CPU42に印刷制御プログラムを実行させる)ようにしてもよい。
以下、本実施例のコントローラ30(又はコントローラ30を内蔵する印刷装置40)の動作について具体的に説明する。CPU32は、ROM33又は記憶部35に記憶した印刷制御プログラムをRAM34に展開して実行することにより、図6及び図10のフローチャート図に示す各ステップの処理を実行する。
図6に示すように、コントローラ30の制御部31(印刷データ解析部31a)は、クライアント端末20からスプレッドシートの印刷データを受信すると(S101)、印刷データを解析し(S102)、ページサイズ、フォントサイズ、縮小率等の印刷設定情報を取得し、取得した印刷設定情報に基づいて印刷ページサイズを決定する(S103)。次に、制御部31(印刷データ解析部31a)は、決定した印刷ページサイズに基づいてシートをページ分割し、分割した各ページの印刷ページ順(通常の印刷ページ順)を設定し、設定した印刷ページ順とページ印刷内容とを記憶部35などに記憶して管理する(S104)。次に、制御部31(印刷画像生成部31c)は、印刷データをラスタライズして、メモリ上に通常の印刷ページ順でページデータを生成する(S105)。
次に、制御部31(印刷ページ順変更部31b)は、印刷データの解析結果に基づいて、印刷データ内に複数ページに跨がるオブジェクトがあるかを判断する(S106)。複数ページに跨がるオブジェクトがあるか否かは、印刷データの印刷設定情報のページサイズ、オブジェクト情報(サイズ、描画位置等)や文字情報(文字列、フォントサイズ、描画位置、ピッチ等)に基づいて、描画しようとしているオブジェクトの位置を算出し、指定されたページサイズ内に収まらない場合に、複数ページに跨がるオブジェクトがあると判断する。
複数ページに跨がるオブジェクトがある場合は、制御部31(印刷ページ順変更部31b)は、オブジェクト毎に跨ぎ方向及び跨ぎページ数を取得し、記憶部35などに記憶して管理する(S107)。次に、制御部31(印刷ページ順変更部31b)は、ページ変更対象オブジェクトを設定し(S108)、そのオブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と印刷ページ順の次のページのページ番号とが一致するかどうか(言い換えると、そのオブジェクトの次の跨ぎ先ページのページ番号が、同じオブジェクトが跨がる直前ページの次であるか)を判断する(S109)。双方のページ番号が異なる場合は、制御部31(印刷ページ順変更部31b)は、オブジェクトの次の跨ぎ先ページのページ番号を、印刷ページ順の次のページのページ番号に変更(言い換えると、そのオブジェクトの次の跨ぎ先ページの印刷ページ順を、同じオブジェクトが跨がる直前ページの次に変更)し(S110)、管理されている印刷ページ順を更新する(S111)。そして、制御部31(印刷ページ順変更部31b)は、ページ変更対象オブジェクトが跨がる残りページがあるかを判断し(S112)、残りページがある場合は、S109に戻ってページ番号の比較を行い、残りページがない場合は、S106に戻って、複数ページに跨がるオブジェクトの有無を判断する。
S106で複数ページに跨がるオブジェクトがない(又は複数ページに跨がるオブジェクトの全ページについて印刷ページ順を更新した)場合は、制御部31(印刷画像生成部31c)は、S104で設定した印刷ページ順又はS111で更新した印刷ページ順にメモリからページデータを取得する(S113)。次に、制御部31(印刷画像生成部31c)は、印刷設定情報に基づいて、印刷データがNin1印刷であるかを判断し(S114)、Nin1印刷の場合は、Nin1処理を実施する(S115)。このNin1処理については後述する。そして、制御部31(印刷画像生成部31c)は、S113で取得したページデータ(又はS115のNin1処理後のページデータ)に基づいて印刷画像を生成し、生成した印刷画像を印刷装置40に送信し(S116)、印刷装置40では、受信した印刷画像に基づいて、印刷部(印刷エンジン)49に印刷処理を実行させる。
上記フローの印刷制御(1枚の用紙に1ページを印刷する通常印刷時の印刷制御)について、図7乃至図9の模式図を参照して具体的に説明する。通常印刷時の印刷パターンとして、後述するパターン1〜3がある。以下、各パターンを個別に説明する。
<パターン1>
パターン1は、図7に示すように、1つのオブジェクトが複数ページ(例えば、横)に跨がる場合の印刷パターンである。図7のようなスプレッドシートの資料をダイレクトプリントする場合、印刷データに含まれるページサイズ、フォントサイズ、縮小率等に基づき、1ページの印刷ページサイズが決定され、その印刷ページサイズで印刷データを分割し、各々のページ60内の括弧に記載した印刷ページ順(通常の印刷ページ順)で印刷処理が実行される。その結果、シート内に横長の表1(オブジェクト61a)を含む場合、表1が3分割されて2ページ目、6ページ目及び10ページ目に印刷されてしまい、表1を印刷したページが散在してしまう。
パターン1は、図7に示すように、1つのオブジェクトが複数ページ(例えば、横)に跨がる場合の印刷パターンである。図7のようなスプレッドシートの資料をダイレクトプリントする場合、印刷データに含まれるページサイズ、フォントサイズ、縮小率等に基づき、1ページの印刷ページサイズが決定され、その印刷ページサイズで印刷データを分割し、各々のページ60内の括弧に記載した印刷ページ順(通常の印刷ページ順)で印刷処理が実行される。その結果、シート内に横長の表1(オブジェクト61a)を含む場合、表1が3分割されて2ページ目、6ページ目及び10ページ目に印刷されてしまい、表1を印刷したページが散在してしまう。
そこで、本実施例では下記に示す制御により、オブジェクト61aが跨がる全てのページ60について印刷ページ順が隣り合うように印刷ページ順を変更する。まず、印刷データに含まれるページサイズやフォントサイズに基づいてページ分割し、印刷ページ順(通常の印刷ページ順)とページ印刷内容とを対応付ける。次に、複数ページに跨がるオブジェクト61aを含む最初のページ(ここでは第2ページ)を検出すると、そのオブジェクト61aを含む次のページ(ここでは第6ページ)の印刷ページ順が、そのオブジェクト61aを含む直近のページ(第2ページ)の次のページ番号(第3ページ)と同じかどうかを判断する。第6ページが第3ページと異なるので、そのオブジェクト61aを含む次のページ(第6ページ)の印刷ページ順をそのオブジェクト61aを含む直近のページ(第2ページ)の次に変更する(すなわち、第6ページを第3ページに変更する。)。同じオブジェクト61aについて、そのオブジェクト61aを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト61aを含む他のページ(ここでは第10ページ)があれば同様の手順で印刷ページ順を変更する。その結果、表1が跨がる第2、6、10ページについて、第2ページの次が第6ページ、第6ページの次が第10ページになるように印刷ページ順が変更される。この制御により、オブジェクト61aが跨がるページの印刷ページ順が隣り合う順番に変更されるため、オブジェクト61aを印刷したページが散在することがなくなる。
この場合、出力されるページ順は(1)→(2)→(6)→(10)→(3)→(4)→(5)→(7)→(8)→(9)→(11)→(12)になる。なお、図7は例示であり、例えば、(5)、(7)、(8)、(9)、(11)、(12)に印刷する文字が入っている場合でも、上記の順番で印刷する。また、ここでは理解を容易にするためにオブジェクト61aが複数ページに跨がる例で説明しているが、1行の文章が複数ページに跨がる場合も同様である。また、プリンタドライバ経由で印刷データを受信する場合は、クライアント端末20のプリンタドライバが(1)〜(12)の各ページの印刷データを作成するため、コントローラ30では複数ページに跨がるオブジェクトが検出できなくなる。その場合は、クライアント端末20側で本実施例の印刷制御を実施することになる。
<パターン2>
パターン2は、図8に示すように、1つのオブジェクトが複数ページ(縦及び横)に跨がる場合の印刷パターンである。この場合も、パターン1と同様に、印刷ページ順(通常の印刷ページ順)とページ印刷内容との対応付けが行われた後、複数ページに跨がるオブジェクト61b(表2)を含む最初のページ(ここでは第2ページ)を検出すると、そのオブジェクト61bを含む次のページ(ここでは第3ページ)の印刷ページ順が、そのオブジェクト61bを含む直近のページ(第2ページ)の次のページ番号(第3ページ)と同じかどうかを比較する。この場合は同じであるので、ここまでは通常の印刷ページ順と同じになる。次に、そのオブジェクト61bを含む次のページ(ここでは第6ページ)の印刷ページ順がそのオブジェクト61bを含む直近のページ(第3ページ)の次のページ番号(第4ページ)と同じかどうかを比較する。第6ページが第4ページと異なるので、そのオブジェクト61bを含む次のページ(第6ページ)の印刷ページ順をそのオブジェクト61bを含む直近のページ(第3ページ)の次に変更する(すなわち、第6ページを第4ページに変更する。)。同じオブジェクト61bについてそのオブジェクト61bを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト61bを含む他のページ(ここでは第7、10、11ページ)があれば同様の制御で印刷ページ順を変更する。その結果、表2が跨がる第2、3、6、7、10、11ページについて、第2ページの次が第3ページ、第3ページの次が第6ページ、第6ページの次が第7ページ、第7ページの次が第10ページ、第10ページの次が第11ページになるように印刷ページ順が変更される。この制御により、オブジェクト61bが跨がるページの印刷ページ順が隣り合う順番に変更されるため、オブジェクト61bを印刷したページが散在することがなくなる。
パターン2は、図8に示すように、1つのオブジェクトが複数ページ(縦及び横)に跨がる場合の印刷パターンである。この場合も、パターン1と同様に、印刷ページ順(通常の印刷ページ順)とページ印刷内容との対応付けが行われた後、複数ページに跨がるオブジェクト61b(表2)を含む最初のページ(ここでは第2ページ)を検出すると、そのオブジェクト61bを含む次のページ(ここでは第3ページ)の印刷ページ順が、そのオブジェクト61bを含む直近のページ(第2ページ)の次のページ番号(第3ページ)と同じかどうかを比較する。この場合は同じであるので、ここまでは通常の印刷ページ順と同じになる。次に、そのオブジェクト61bを含む次のページ(ここでは第6ページ)の印刷ページ順がそのオブジェクト61bを含む直近のページ(第3ページ)の次のページ番号(第4ページ)と同じかどうかを比較する。第6ページが第4ページと異なるので、そのオブジェクト61bを含む次のページ(第6ページ)の印刷ページ順をそのオブジェクト61bを含む直近のページ(第3ページ)の次に変更する(すなわち、第6ページを第4ページに変更する。)。同じオブジェクト61bについてそのオブジェクト61bを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト61bを含む他のページ(ここでは第7、10、11ページ)があれば同様の制御で印刷ページ順を変更する。その結果、表2が跨がる第2、3、6、7、10、11ページについて、第2ページの次が第3ページ、第3ページの次が第6ページ、第6ページの次が第7ページ、第7ページの次が第10ページ、第10ページの次が第11ページになるように印刷ページ順が変更される。この制御により、オブジェクト61bが跨がるページの印刷ページ順が隣り合う順番に変更されるため、オブジェクト61bを印刷したページが散在することがなくなる。
この場合、出力されるページ順は(1)→(2)→(3)→(6)→(7)→(10)→(11)→(4)→(5)→(8)→(9)→(12)になる。なお、図8は例示であり、例えば、(5)、(8)、(9)、(12)に印刷する文字が入っている場合でも、上記の順番で印刷する。また、プリンタドライバ経由で印刷データを受信する場合は、クライアント端末20側で本実施例の印刷制御を実施することになる。
<パターン3>
パターン3は、図9に示すように、複数のオブジェクトが複数ページ(例えば、横)に跨がる場合の印刷パターンである。この場合も、パターン1と同様に、印刷ページ順(通常の印刷ページ順)とページ印刷内容との対応付けが行われた後、複数ページに跨がるオブジェクト61c(表3)を含む最初のページ(ここでは第2ページ)を検出すると、そのオブジェクト61cを含む次のページ(ここでは第6ページ)の印刷ページ順が、そのオブジェクト61cを含む直近のページ(第2ページ)の次のページ番号(第3ページ)と同じかどうかを比較する。第6ページが第3ページと異なるので、そのオブジェクト61cを含む次のページ(第6ページ)の印刷ページ順をそのオブジェクト61cを含む直近のページ(第2ページ)の次に変更する(すなわち、第6ページを第3ページに変更する。)。同じオブジェクト61cについて、そのオブジェクト61cを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト61cを含む他のページ(ここでは第10ページ)があれば同様の制御で印刷ページ順を変更する。次に、複数ページに跨がる次のオブジェクト61d(表4)について、オブジェクト61c(表3)と同じ処理を行う。
パターン3は、図9に示すように、複数のオブジェクトが複数ページ(例えば、横)に跨がる場合の印刷パターンである。この場合も、パターン1と同様に、印刷ページ順(通常の印刷ページ順)とページ印刷内容との対応付けが行われた後、複数ページに跨がるオブジェクト61c(表3)を含む最初のページ(ここでは第2ページ)を検出すると、そのオブジェクト61cを含む次のページ(ここでは第6ページ)の印刷ページ順が、そのオブジェクト61cを含む直近のページ(第2ページ)の次のページ番号(第3ページ)と同じかどうかを比較する。第6ページが第3ページと異なるので、そのオブジェクト61cを含む次のページ(第6ページ)の印刷ページ順をそのオブジェクト61cを含む直近のページ(第2ページ)の次に変更する(すなわち、第6ページを第3ページに変更する。)。同じオブジェクト61cについて、そのオブジェクト61cを含む全てのページについて同様に印刷ページ順を比較する処理を繰り返し、そのオブジェクト61cを含む他のページ(ここでは第10ページ)があれば同様の制御で印刷ページ順を変更する。次に、複数ページに跨がる次のオブジェクト61d(表4)について、オブジェクト61c(表3)と同じ処理を行う。
その結果、表3が跨がる第2、6、10ページについて、第2ページの次が第6ページ、第6ページの次が第10ページになるように印刷ページ順が変更される。また、表4が跨がる第3、7ページについて、第3ページの次が第7ページになるように印刷ページ順が変更される。この制御により、オブジェクト61c及びオブジェクト61dが跨がるページの印刷ページ順が隣り合う順番に変更されるため、オブジェクト61c及びオブジェクト61dを印刷したページが散在することがなくなる。
この場合、出力されるページ順は(1)→(2)→(6)→(10)→(3)→(7)→(4)→(5)→(8)→(9)→(11)→(12)になる。なお、図9は例示であり、例えば、(5)、(8)、(9)、(11)、(12)に印刷する文字が入っている場合でも、上記の順番で印刷する。また、プリンタドライバ経由で印刷データを受信する場合は、クライアント端末20側で本実施例の印刷制御を実施することになる。
次に、Nin1印刷を行う場合の印刷制御について説明する。Nin1印刷を行う場合、図6のS114の判断結果がYesとなり、制御部31(印刷画像生成部31c)により、S115のNin1処理が行われる。このNin1処理について、図10のフローチャート図を参照して説明する。なお、以下のフローでは、跨ぎオブジェクトを左から右へ横に配置する場合について記載するが、上から下へ縦に配置する場合についても同様に適用することができる。
まず、1つのオブジェクトが跨がる最大ページ数を取得し(S201)、その最大ページ数に基づいて集約ページ数(N数)を決定する(S202)。ここで、制御部31(表示制御部31d)は、決定したN数を印刷画像の送信前に表示部37に表示し、そのN数で印刷してよいかをユーザに選択させるようにしても良い。その際、ページ集約をしない通常の印刷モード、決定したN数でページ集約する印刷モード、ユーザが任意のN数を指定してページ集約する印刷モードなどの中から印刷モードをユーザに選択させるようにしても良い。また、N数の事前表示において警告を行うようにしてもよい。例えば、N数が大きすぎて印刷結果が小さくなりすぎると判断した場合(例えば、16in1より大きなN数になる場合)、制御部31(表示制御部31d)は、印刷画像の送信前に表示部37に警告表示を行い、ユーザに印刷モードの選択を促すようにしても良い。この警告表示をするかしないかは、集約数のN数を基準にしても良いし、含まれる文字のフォントサイズ(例えば、6pt以下)を基準にしても良い。
また、ここでは最大ページ数に基づいて集約ページ数(N数)を決定したが、オブジェクトの種別毎に集約ページ数の制限を設けてもよい。例えば、複数ページに跨がるオブジェクトには、細かな文字・数字が意味を持つ図・表の他に、イメージなど全体をざっと見る目的の物もあるため、ページ集約を行う場合、制御部31(印刷画像生成部31c)は、オブジェクトの種別に応じて集約ページ数の制限を設定しても良い。例えば、図・表や文字列など、集約ページ数が大きくなると見にくくなるオブジェクトは9in1を限度とし、イメージは25in1を限度とすることができる。
次に、更新された印刷ページ順にページデータを取得し(S203)、取得したページが、オブジェクトが跨がるページであるかを判断する(S204)。
取得したページが、オブジェクトが跨がるページの場合は、そのオブジェクトが跨がる全ページデータを取得し(S205)、Nin1用にページデータを縮小し(S206)、左列を基準にして右方向に、分割したオブジェクトのページデータを順番に配置する(S207)。次に、ページを配置中のNin1の行に未配置列があるかを判断し(S208)、未配置列がある場合は、未配置列に白紙ページを配置する(S209)。次に、現在の印刷モードが、ページ混在不可モード(オブジェクトが跨がるページと他のページとを混在不可とするモード)であるか、又は、最終ページであるかを判断し(S210)、ページ混在不可モード又は最終ページの場合は、Nin1の全ての未配置部に白紙ページを配置する(S211)。
一方、取得したページが、オブジェクトが跨がるページでない場合は、現在の印刷モードが、全ページを集約するモードであるかを判断し(S213)、全ページを集約するモードの場合は、次にオブジェクトが跨がる先頭ページの1つ前(以降にオブジェクトが跨がるページが存在しない場合は最終ページ)までの全ページデータを取得し(S214)、Nin1用にページデータを縮小し(S215)、左列を基準にして右>下の優先度でページデータを順番に配置する(S216)。次に、ページを配置中のNin1の行に未配置列があるかを判断し(S217)、未配置列がある場合は、未配置列に白紙ページを配置する(S218)。次に、現在の印刷モードが、ページ混在不可モードであるか、又は、最終ページであるかを判断し(S219)、ページ混在不可モード又は最終ページの場合は、Nin1の全ての未配置部に白紙ページを配置する(S220)。また、S213で全ページを集約するモードでない場合は、そのページはNin1ではなく、1枚の用紙に配置する(S221)。
その後、取得していない残ページがあるかを判断し(S212)、残ページがある場合は、S203に戻って、次のページデータに対して同様の処理を繰り返す。
上記フローのNin1の印刷制御について、図11乃至図18を参照して具体的に説明する。Nin1印刷時は、1つのオブジェクトが跨がるページ全てについて、複数ページに跨がるオブジェクトが、印刷前の配置・向きでページ集約した1枚の用紙に収まるようにN数を決定し、Nin1で配置する。例えば、オブジェクトが横方向の2ページに跨がる場合は4in1、横方向の3ページに跨がる場合は9in1、縦方向の2ページに跨がる場合は4in1とする。Nin1での印刷パターンは下記の2パターンがある。
第1のパターンは、オブジェクトが跨がるページでN数を決定し、オブジェクトが跨がるページだけをNin1印刷するパターンである。オブジェクトが複数ページに跨がる(横に跨ぐ)最初のページは、Nin1の左側先頭ページ(図11(a)に示す2in1時は奇数ページ目、図11(b)に示す4in1時は奇数ページ目、図11(c)に示す9in1時は1、4、7ページ目、図11(d)に示す16in1時は1、5、9、13ページ目)になるように、白紙ページを挿入してNin1で構成する。なお、オブジェクトが跨がらないページは通常の1枚1ページで印刷する。
複数ページに跨がるオブジェクトが複数ある場合のNin1のN数の決定方法は下記のどちらでもよい。
(1−A):最適なN数をオブジェクト毎に決定
(1−B):印刷データに含まれる複数のオブジェクトのうち、オブジェクトが跨がる最大のページ数で固定的に決定
(1−A):最適なN数をオブジェクト毎に決定
(1−B):印刷データに含まれる複数のオブジェクトのうち、オブジェクトが跨がる最大のページ数で固定的に決定
第2のパターンは、オブジェクトが跨がるページでN数を決定し、全ページをNin1印刷するパターンである。オブジェクトが複数ページに跨がる(横に跨ぐ)最初のページの配置や白紙ページの挿入は第1のパターンと同じである。複数ページに跨がるオブジェクトが複数ある場合は、そのページは下記のどちらで配置しても良い。
(2−A):オブジェクト毎に個別にNin1でページを構成せず、混在して配置
(2−B):オブジェクト毎に個別にNin1でページを構成
(2−A):オブジェクト毎に個別にNin1でページを構成せず、混在して配置
(2−B):オブジェクト毎に個別にNin1でページを構成
上記N数の決定方法について説明する。複数ページに跨がるオブジェクトが印刷前の配置・向き(分割されたオブジェクトが本来の形で繋がる順番・向き)に一方向に並べられるものの中で、最小の分割数となるN数を決定する。図12の表4は4in1でも9in1でも配置することができるが、最小の分割数となる4in1で配置する。なお、図13のように、本来の形で繋がらない向きには、回転してまでページ集約はしない。
次に、図14に示すような、複数ページに跨がるオブジェクトが複数存在するスプレッドシートの資料をNin1印刷する場合の印刷制御について、図15乃至図18のテーブルを参照して説明する。なお、図15乃至図18は、各々、上述した(1−A)、(1−B)、(2−A)、(2−B)の印刷制御を行った場合の各印刷用紙における印刷ページの配置を示しており、テーブル中のハッチングを付した印刷用紙が、複数ページに跨がるオブジェクトが存在するページを配置した用紙である。
(1−A)で印刷する場合は、図15に示すように、跨ぎオブジェクト毎に最適なN数を決定する。例えば、表3は9in1、表4は4in1にする。この場合の印刷制御を図10に則して説明すると、オブジェクトが跨がらない印刷ページ(1)は、S204(No)→S213(No)→S221の順に処理を行い、第1の印刷用紙に配置する。また、オブジェクト(表3)が跨がる印刷ページ(2、6、10)は、S204(Yes)→S205〜S207→S208(No)→S210(Yes)→S211の順に処理を行い、第2の印刷用紙の左列から順に横に並べて配置し、白紙6ページを挿入して9in1で構成する。また、オブジェクト(表4)が跨がる印刷ページ(3、7)は、S204(Yes)→S205〜S207→S208(No)→S210(Yes)→S211の順に処理を行い、第3の印刷用紙に左列から順に横に並べて配置し、白紙2ページを挿入して4in1で構成する。また、オブジェクトが跨がらない印刷ページ(4、5、8、9、11、12)は、S204(No)→S213(No)→S221の順に処理を行い、第4〜第9の印刷用紙に各々1ページずつ配置する。
(1−B)で印刷する場合は、図16に示すように、跨ぎオブジェクトの中の最大跨ぎページ数が3ページの表3が収まる9in1に統一して配置する。この場合の印刷制御を図10に則して説明すると、オブジェクトが跨がらない印刷ページ(1)は、S204(No)→S213(No)→S221の順に処理を行い、第1の印刷用紙に配置する。また、オブジェクト(表3)が跨がる印刷ページ(2、6、10)は、S204(Yes)→S205〜S207→S208(No)→S210(Yes)→S211の順に処理を行い、第2の印刷用紙の左列から順に横に並べて配置し、白紙6ページを挿入して9in1で構成する。また、オブジェクト(表4)が跨がる印刷ページ(3、7)は、S204(Yes)→S205〜S207→S208(Yes)→S209→S210(Yes)→S211の順に処理を行い、第3の印刷用紙に左列から順に横に並べて配置し、白紙7ページを挿入して9in1で構成する。また、オブジェクトが跨がらない印刷ページ(4、5、8、9、11、12)は、S204(No)→S213(No)→S221の順に処理を行い、第4〜第9の印刷用紙に各々1ページずつ配置する。
(2−A)で印刷する場合は、図17に示すように、オブジェクトが跨がるページの最大数が3ページ(表3)となるため、全ページを9in1で配置する。また、跨ぎオブジェクトが配置されるページはオブジェクト毎に個別の用紙に印刷せず、混在して1枚の用紙に配置する。この場合の印刷制御を図10に則して説明すると、オブジェクトが跨がらない印刷ページ(1)は、S204(No)→S213(Yes)→S214〜S216→S217(Yes)→S218→S219(No)の順に処理を行い、1枚目の印刷用紙の1段目の左列に配置し、白紙2ページを横に挿入する。また、オブジェクト(表3)が跨がる印刷ページ(2、6、10)は、S204(Yes)→S205〜S207→S208(No)→S210(No)の順に処理を行い、1枚目の印刷用紙の2段目に左列から順に横に並べて配置する。また、オブジェクト(表4)が跨がる印刷ページ(3、7)は、S204(Yes)→S205〜S207→S208(Yes)→S209→S210(No)の順に処理を行い、1枚目の印刷用紙の3段目の左列から順に横に並べて配置し、白紙1ページを挿入して9in1で構成する。また、オブジェクトが跨がらない印刷ページ(4、5、8、9、11、12)は、S204(No)→S213(Yes)→S214〜S216→S217(No)→S219(Yes)→S220の順に処理を行い、2枚目の印刷用紙の1段目の左列から右>下の優先度に従って配置し、白紙3ページを挿入して9in1で構成する。
(2−B)で印刷する場合は、図18に示すように、オブジェクトが跨がるページの最大数が3ページ(表3)となるため、全体を9in1で構成するように決定する。跨ぎオブジェクトが配置されるページはオブジェクト毎に個別の用紙に印刷する。この場合の印刷制御を図10に則して説明すると、オブジェクトが跨がらない印刷ページ(1)は、S204(No)→S213(Yes)→S214〜S216→S217(Yes)→S218→S219(Yes)→S220の順に処理を行い、1枚目の印刷用紙の1段目の左列に配置し、白紙8ページを挿入して9in1で構成する。また、オブジェクト(表3)が跨がる印刷ページ(2、6、10)は、S204(Yes)→S205〜S207→S208(No)→S210(Yes)→S211の順に処理を行い、2枚目の印刷用紙の1段目に左列から順に横に並べて配置し、白紙6ページを挿入して9in1で構成する。また、オブジェクト(表4)が跨がる印刷ページ(3、7)は、S204(Yes)→S205〜S207→S208(Yes)→S209→S210(Yes)→S211の順に処理を行い、3枚目の印刷用紙の1段目に左列から順に横に並べて配置し、白紙7ページを挿入して9in1で構成する。また、オブジェクトが跨がらない印刷ページ(4、5、8、9、11、12)は、S204(No)→S213(Yes)→S214〜S216→S217(No)→S219(Yes)→S220の順に処理を行い、4枚目の印刷用紙の1段目の左列から右>下の優先度に従って配置し、白紙3ページを挿入して9in1で構成する。
なお、図15乃至図18は一例であり、印刷ページの配置やN数は適宜変更可能である。例えば、(2−B)で印刷する場合において、(1−A)と同様に、跨ぎオブジェクト毎に最適なN数を設定して印刷してもよい。その場合は、(2−B)のテーブルにおける印刷用紙3は9in1ではなく、(3)、(7)を横に配置し、白紙2ページを挿入する4in1を構成することになる。
以上説明したように、コントローラ30(又はコントローラ30の機能を備えた印刷装置40)は、スプレッドシートの印刷データを受信すると、印刷データを解析し、印刷設定情報に基づいて印刷ページサイズを決定し、当該印刷ページサイズに基づいて印刷ページ順を設定し、複数ページに跨がるオブジェクトが含まれている場合は、当該オブジェクトが跨がるページについて、次の跨ぎ先のページと印刷ページ順の次のページとを比較し、その比較結果に基づいて印刷ページ順を更新し、設定又は更新した印刷ページ順に基づいて、印刷データをラスタライズして得たページデータを配置した印刷画像を生成して印刷エンジンに送信することにより、オブジェクトが複数ページに散在してしまう不具合を防止することができる。
また、印刷設定情報で、1枚の用紙に複数ページを縮小して配置するページ集約印刷が指示された場合は、複数ページに跨がるオブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、集約ページ数を決定(各々のオブジェクトの跨ぎページ数の全ページが、跨ぎ方向に並べて配置できるように集約ページ数を決定)し、決定した集約ページ数でページデータを集約して配置した印刷画像を生成して印刷エンジンに送信することにより、資料全体の視認性を維持することができる。
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
例えば、上記実施例では、コントローラ30が印刷制御を行う場合を示したが、印刷装置40がコントローラ30の機能を備える場合は、印刷装置40が上記の印刷制御を行うようにすればよい。また、上記実施例では、ダイレクトプリントを前提にして印刷指示を行うことから、コントローラ30や印刷装置40の表示部に選択画面や警告画面を表示させたが、プリンタドライバを用いて印刷指示を行う場合は、プリンタドライバが印刷制御を行い、プリンタドライバによる印刷設定の際に選択画面や警告画面を表示することも可能である。
本発明は、スプレッドシートの印刷を制御する印刷制御装置、当該印刷制御装置で動作する印刷制御プログラム、当該印刷制御プログラムを記録した記録媒体及び印刷制御装置を備えるシステムにおける印刷制御方法に利用可能である。
10 印刷システム
20 クライアント端末
21 制御部
21a OS
21b アプリケーション
21c ダイレクトプリントユーティリティ
22 CPU
23 ROM
24 RAM
25 記憶部
26 ネットワークI/F部
27 表示部
28 操作部
30 コントローラ
31 制御部
31a 印刷データ解析部
31b 印刷ページ順変更部
31c 印刷画像生成部
31d 表示制御部
32 CPU
33 ROM
34 RAM
35 記憶部
36 ネットワークI/F部
37 表示部
38 操作部
40 印刷装置
41 制御部
42 CPU
43 ROM
44 RAM
45 記憶部
46 ネットワークI/F部
47 表示操作部
48 読み取り部
49 印刷部
50 通信ネットワーク
60 ページ
61a〜61d オブジェクト
20 クライアント端末
21 制御部
21a OS
21b アプリケーション
21c ダイレクトプリントユーティリティ
22 CPU
23 ROM
24 RAM
25 記憶部
26 ネットワークI/F部
27 表示部
28 操作部
30 コントローラ
31 制御部
31a 印刷データ解析部
31b 印刷ページ順変更部
31c 印刷画像生成部
31d 表示制御部
32 CPU
33 ROM
34 RAM
35 記憶部
36 ネットワークI/F部
37 表示部
38 操作部
40 印刷装置
41 制御部
42 CPU
43 ROM
44 RAM
45 記憶部
46 ネットワークI/F部
47 表示操作部
48 読み取り部
49 印刷部
50 通信ネットワーク
60 ページ
61a〜61d オブジェクト
Claims (19)
- スプレッドシートの印刷を制御する印刷制御装置であって、
前記スプレッドシートの印刷データを受信し、前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する印刷データ解析部と、
前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する印刷ページ順変更部と、
前記印刷データをラスタライズしてページデータを生成し、前記印刷データ解析部が設定又は前記印刷ページ順変更部が更新した前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成し、当該印刷画像を印刷エンジンに送信する印刷画像生成部と、を備える、
ことを特徴とする印刷制御装置。 - 前記印刷画像生成部は、1枚の用紙に複数ページを縮小して配置するページ集約印刷が指示されている場合は、前記特定オブジェクト毎の跨ぎ方向及び跨ぎページ数に基づいて、前記ページ集約印刷における集約ページ数を決定し、前記集約ページ数で前記ページデータを集約して前記印刷画像を生成する、
ことを特徴とする請求項1に記載の印刷制御装置。 - 前記印刷画像生成部は、各々の前記特定オブジェクトについて、前記跨ぎページ数の全ページを前記跨ぎ方向に並べて配置できるように、前記集約ページ数を決定する、
ことを特徴とする請求項2に記載の印刷制御装置。 - 前記印刷画像生成部は、各々の前記特定オブジェクトについて、前記跨ぎページ数の全ページを、前記跨ぎ方向が横方向の場合は左から右へ、前記跨ぎ方向が縦方向の場合は上から下へ順に配置する、
ことを特徴とする請求項2又は3に記載の印刷制御装置。 - 前記印刷画像生成部は、前記特定オブジェクトを含むページのみを、前記ページ集約印刷の対象とする、
ことを特徴とする請求項2乃至4のいずれか一に記載の印刷制御装置。 - 前記印刷画像生成部は、前記印刷データ内の全ページを、前記ページ集約印刷の対象とする、
ことを特徴とする請求項2乃至4のいずれか一に記載の印刷制御装置。 - 前記印刷画像生成部は、前記印刷データに複数の前記特定オブジェクトが含まれている場合は、前記特定オブジェクト毎に前記集約ページ数を決定する、
ことを特徴とする請求項5又は6に記載の印刷制御装置。 - 前記印刷画像生成部は、前記印刷データに複数の前記特定オブジェクトが含まれている場合は、前記跨ぎページ数が最も大きい特定オブジェクトに合わせて前記集約ページ数を決定する、
ことを特徴とする請求項5又は6に記載の印刷制御装置。 - 前記印刷画像生成部は、前記印刷データに複数の前記特定オブジェクトが含まれており、同一の前記集約ページ数でページ集約を行う場合は、前記特定オブジェクト毎に用紙の切り替えを行わない、
ことを特徴とする請求項8に記載の印刷制御装置。 - 前記印刷画像生成部は、前記特定オブジェクトを含むページを前記跨ぎ方向に並べて配置した際に、前記跨ぎ方向に余白が生じる場合は、当該余白部分に白紙ページを配置する、
ことを特徴とする請求項2乃至9のいずれか一に記載の印刷制御装置。 - 表示部と、
決定した前記集約ページ数を通知する通知画面を前記表示部に表示させる表示制御部と、を更に備える、
ことを特徴とする請求項2乃至10のいずれか一に記載の印刷制御装置。 - 前記表示制御部は、前記通知画面で前記集約ページ数を指定可能にする、
ことを特徴とする請求項11に記載の印刷制御装置。 - 前記表示制御部は、前記通知画面において、前記ページ集約印刷の対象を、前記印刷データ内の全ページとするか前記特定オブジェクトを含むページのみとするか、前記集約ページ数を、前記特定オブジェクト毎に決定するか前記跨ぎページ数が最も大きい特定オブジェクトに合わせて決定するか、前記特定オブジェクト毎に用紙の切り替えを行うか否か、の少なくとも1つを選択可能にする、
ことを特徴とする請求項11又は12に記載の印刷制御装置。 - 前記表示制御部は、決定した前記集約ページ数が予め定めた第1の閾値よりも大きい、又は、決定した前記集約ページ数でページ集約を行ったときの文字のフォントサイズが予め定めた第2の閾値よりも小さい場合は、その旨を通知する警告画面を前記表示部に表示させる、
ことを特徴とする請求項11乃至13のいずれか一に記載の印刷制御装置。 - 前記表示制御部は、前記警告画面において、決定した前記集約ページ数でページ集約印刷を続行するか、ページ集約印刷を解除するかを指定可能にする、
ことを特徴とする請求項14に記載の印刷制御装置。 - 前記表示制御部は、前記特定オブジェクトの種別がイメージの場合は、前記第1の閾値を他の種別の場合よりも大きくする、
ことを特徴とする請求項14又は15に記載の印刷制御装置。 - スプレッドシートの印刷を制御する印刷制御装置で動作する印刷制御プログラムであって、
前記印刷制御装置に、
前記スプレッドシートの印刷データを受信する第1処理、
前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第2処理、
前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第3処理、
前記印刷データをラスタライズしてページデータを生成し、前記第2処理で設定又は前記第3処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第4処理、
前記印刷画像を印刷エンジンに送信して印刷を指示する第5処理、を実行させる、
ことを特徴とする印刷制御プログラム。 - 前記印刷制御装置は、前記印刷エンジンを備える印刷装置に内蔵される、
ことを特徴とする請求項17に記載の印刷制御プログラム。 - スプレッドシートの印刷を制御する装置における印刷制御方法であって、
前記スプレッドシートの印刷データを受信する第1処理と、
前記印刷データを解析して印刷ページサイズを決定し、前記印刷ページサイズに基づいて印刷ページ順を設定する第2処理と、
前記印刷データに、複数ページに跨がる特定オブジェクトが含まれているかを判断し、前記特定オブジェクトが含まれている場合は、当該特定オブジェクトが跨がるページについて、次の跨ぎ先のページのページ番号と前記印刷ページ順の次のページのページ番号とを比較し、双方のページ番号が異なる場合は、前記次の跨ぎ先のページのページ番号が前記印刷ページ順の次のページのページ番号になるように、前記印刷ページ順を更新する第3処理と、
前記印刷データをラスタライズしてページデータを生成し、前記第2処理で設定又は前記第3処理で更新された前記印刷ページ順に従って前記ページデータを配置した印刷画像を生成する第4処理と、
前記印刷画像を印刷エンジンに送信して印刷を指示する第5処理と、を実行する、
ことを特徴とする印刷制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017013792A JP2018124601A (ja) | 2017-01-30 | 2017-01-30 | 印刷制御装置、印刷制御プログラム及び印刷制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017013792A JP2018124601A (ja) | 2017-01-30 | 2017-01-30 | 印刷制御装置、印刷制御プログラム及び印刷制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018124601A true JP2018124601A (ja) | 2018-08-09 |
Family
ID=63111397
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017013792A Pending JP2018124601A (ja) | 2017-01-30 | 2017-01-30 | 印刷制御装置、印刷制御プログラム及び印刷制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018124601A (ja) |
-
2017
- 2017-01-30 JP JP2017013792A patent/JP2018124601A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6977661B2 (ja) | 印刷制御装置、印刷制御プログラム及び印刷制御方法 | |
JP6623938B2 (ja) | 画像処理装置及び面付け制御プログラム並びに面付け制御方法 | |
US9841936B2 (en) | Print setting control program and print setting control method | |
US20150077772A1 (en) | Data generation apparatus, non-transitory computer-readable storage medium, and data generation method | |
JP6750465B2 (ja) | ロール紙印刷装置、ロール紙印刷制御プログラム及びロール紙印刷制御方法 | |
JP6528663B2 (ja) | 印刷システム及び面付け印刷制御プログラム並びに面付け印刷制御方法 | |
JP2013152606A (ja) | 画像処理システム、画像形成装置、画像処理プログラム、および画像処理方法 | |
JP4392673B2 (ja) | 制御プログラム及び制御方法 | |
JP2020001358A (ja) | 画像形成装置、リカバリ制御プログラム及びリカバリ制御方法 | |
US20160182751A1 (en) | Imposition control program, image processing apparatus, and imposition control method | |
JP7009793B2 (ja) | 印刷制御装置、印刷制御プログラム及び印刷制御方法 | |
JP2009053789A (ja) | 情報処理装置とプログラムとコンピュータ読み取り可能な記録媒体 | |
JP7000794B2 (ja) | 画像形成装置、印刷制御方法及び印刷制御プログラム | |
JP2020168784A (ja) | 画像形成装置、ジョブ処理方法及びジョブ処理プログラム | |
JP2018124601A (ja) | 印刷制御装置、印刷制御プログラム及び印刷制御方法 | |
JP6862993B2 (ja) | 出力制御プログラム及び出力制御方法 | |
JP7087656B2 (ja) | 画像形成装置、面付け制御プログラム及び面付け制御方法 | |
JP2014149680A (ja) | 印刷設定装置及びプレビュー表示制御プログラム | |
JP6623806B2 (ja) | 印刷制御プログラム及び画像形成装置並びに印刷制御方法 | |
JP6790784B2 (ja) | 印刷制御装置、印刷制御プログラム及び印刷制御方法 | |
JP2019144913A (ja) | 印刷制御プログラム及び印刷制御方法 | |
JP2017205925A (ja) | 印刷システム及び印刷制御方法並びに印刷制御プログラム | |
JP6447407B2 (ja) | ジョブ管理システム及びジョブ管理プログラム並びにジョブ管理方法 | |
JP2017058894A (ja) | 画像処理装置及び面付け制御プログラム並びに面付け制御方法 | |
JP2016212744A (ja) | 印刷制御プログラム及び画像形成装置並びに印刷制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20191118 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20191122 |