(57)【要約】      （修正有）【課題】アプリケーションに対してより簡単な設定を行った場合でも、余白部分を適切に削除もしくは削減して、データを１枚の記録紙に印刷させる。【解決手段】アプリケーションで生成されたデータを印刷装置で印刷させるためのアプリケーションに組み込まれる第１の制御プログラム及び第１の制御プログラムを介して印刷の指示があった場合に実行する第２の制御プログラムとを実行する情報処理装置であって、第１の制御プログラムが実行された場合、データを１ページに含む所定の用紙サイズの設定し、第２の制御プログラムに対する余白削除設定を実行する設定部と、第２の制御プログラムが実行された場合、所定の用紙サイズの１ページに含まれているデータに基づく印刷データを生成すると共に、生成した印刷データの余白を削除する余白削除部と、該余白削除部で余白削除した印刷データを印刷装置に出力する出力部とを有する。【選択図】図５
2019204347.tif 000002
【特許請求の範囲】
【請求項１】
印刷対象のデータを生成するアプリケーションを実行すると共に、当該アプリケーションで生成された前記データを印刷装置で印刷させるための前記アプリケーションに組み込まれる第１の制御プログラム及び前記第１の制御プログラムを介して印刷の指示があった場合に実行する第２の制御プログラムとを実行する情報処理装置であって、
前記アプリケーションにて前記第１の制御プログラムが実行された場合、当該アプリケーションに対する、前記データを１ページに含む所定の用紙サイズの設定、及び、前記第２の制御プログラムに対する、余白削除を行わせるための余白削除設定を実行する設定手段と、
前記第２の制御プログラムが実行された場合、前記アプリケーションにより生成された、前記所定の用紙サイズの１ページに含まれている前記データに基づく印刷データを生成すると共に、生成した印刷データの余白を削除する余白削除手段と、
該余白削除手段で余白削除した印刷データを前記印刷装置に出力する出力手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記設定手段は、更に、予め設定された複数のサイズの記録紙の中の、前記アプリケーションが作成したデータの印刷範囲を包含する最小のサイズの記録紙を設定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記余白削除手段は、
前記アプリケーションにより生成された、前記所定の用紙サイズの１ページに含まれている前記データの印刷イメージを生成し、生成された印刷イメージにおける余白を削除することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記余白削除手段は、前記印刷イメージにおける非白画素を含む領域の外接矩形を求め、当該外接矩形の外側を前記余白として判定して余白削除を行うことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記出力手段は、余白削除後の印刷イメージを、前記印刷装置にセットされた記録紙のサイズに応じて変倍し、前記変倍して得た印刷イメージを前記印刷装置に出力する
ことを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
更に、前記余白削除後の印刷データを、プレビュー表示するプレビュー表示手段を有し、
前記出力手段は、前記プレビュー表示手段で表示したプレビュー表示にて、ユーザから印刷の指示が入力された場合、前記印刷装置への出力を実行する
ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記アプリケーションは表計算ソフトウェアであり、前記第１の制御プログラムは前記表計算ソフトウェアのプラグインであり、前記第２のプログラムはプリンタドライバ、もしくはプレビューソフトウェアであることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
印刷対象のデータを生成するアプリケーションを実行すると共に、当該アプリケーションで生成された前記データを印刷装置で印刷させるための前記アプリケーションに組み込まれる第１の制御プログラム及び前記第１の制御プログラムを介して印刷の指示があった場合に実行する第２の制御プログラムとを実行する情報処理装置の制御方法であって、
前記アプリケーションにて前記第１の制御プログラムが実行された場合、当該アプリケーションに対する、前記データを１ページに含む所定の用紙サイズの設定、及び、前記第２の制御プログラムに対する、余白削除を行わせるための余白削除設定を実行する設定工程と、
前記第２の制御プログラムが実行された場合、前記アプリケーションにより生成された、前記所定の用紙サイズの１ページに含まれている前記データに基づく印刷データを生成すると共に、生成した印刷データの余白を削除する余白削除工程と、
該余白削除工程で余白削除した印刷データを前記印刷装置に出力する出力工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項９】
前記設定工程は、更に、予め設定された複数のサイズの記録紙の中の、前記アプリケーションが作成したデータの印刷範囲を包含する最小のサイズの記録紙を設定することを特徴とする請求項８に記載の情報処理装置の制御方法。
【請求項１０】
前記余白削除工程は、
前記アプリケーションにより生成された、前記所定の用紙サイズの１ページに含まれている前記データの印刷イメージを生成し、生成された印刷イメージにおける余白を削除することを特徴とする請求項８または９に記載の情報処理装置の制御方法。
【請求項１１】
前記余白削除工程は、前記印刷イメージにおける非白画素を含む領域の外接矩形を求め、当該外接矩形の外側を前記余白として判定して余白削除を行うことを特徴とする請求項１０に記載の情報処理装置の制御方法。
【請求項１２】
前記出力工程は、余白削除後の印刷イメージを、前記印刷装置にセットされた記録紙のサイズに応じて変倍し、前記変倍して得た印刷イメージを前記印刷装置に出力する
ことを特徴とする請求項１０または１１に記載の情報処理装置の制御方法。
【請求項１３】
更に、前記余白削除後の印刷データを、プレビュー表示するプレビュー表示工程を有し、
前記出力工程は、前記プレビュー表示工程で表示したプレビュー表示にて、ユーザから印刷の指示が入力された場合、前記印刷装置への出力を実行する
ことを特徴とする請求項８乃至１２のいずれか１項に記載の情報処理装置の制御方法。
【請求項１４】
前記アプリケーションは表計算ソフトウェアであり、前記第１の制御プログラムは前記表計算ソフトウェアのプラグインであり、前記第２のプログラムはプリンタドライバ、もしくはプレビューソフトウェアであることを特徴とする請求項８乃至１４のいずれか１項に記載の情報処理装置の制御方法。
【請求項１５】
アプリケーションで生成された印刷対象のデータを印刷装置で印刷させるための、前記アプリケーションに組み込まれるプログラムであって、
前記アプリケーションに対する、前記データを１ページに含む所定の用紙サイズの設定、及び、前記アプリケーションとは異なる制御プログラムに対する、余白削除を行わせるための余白削除設定を実行する設定手段としてコンピュータを機能させ、
前記制御プログラムは、前記アプリケーションにより生成された、前記所定の用紙サイズの１ページに含まれている前記データに基づく印刷データを生成すると共に、前記余白削除設定に従って、該生成した印刷データの余白を削除し、
該余白が削除された印刷データが前記印刷装置に出力されることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションにより作成した文書の印刷技術に関するものである。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）のような表計算ソフトウェアには、用紙サイズという概念がない。そのため、このような表計算ソフトウェアから表計算ドキュメントを印刷する際は、ユーザが特定の用紙サイズを指定して印刷を行う必要がある。しかしながら、大部分の表計算ドキュメントの縦横比はＡ４サイズ等の定型サイズの比率とは異なっているため、意図しない箇所でページが分割されたり、意図しない余白が発生してしまうことが往々にして良くある。
【０００３】
そこで、特許文献１に記載の印刷システムでは、規定の用紙サイズを表計算ソフトウェアに設定し、表計算ドキュメントに割り当てられたページ数を取得する。そして、取得されたページ数と該規定の用紙サイズに基づいて、表計算ドキュメントを１ページに含む、該表計算ドキュメントの大きさに対応する用紙サイズ算出する。さらに、算出された用紙サイズの大きさを少しずつ縮小しながら繰り返し表計算ソフトウェアに設定することで、表計算ソフトウェアによりフィットする用紙サイズを求める。そして、求めた用紙サイズを表計算ソフトウェアに対して指定し、該用紙サイズに応じて表計算ソフトウェアにより生成されたデータを、ロール紙のサイズに合わせてプリンタドライバに変倍させ、変倍されたデータを印刷装置にロール紙へ印刷させる。これにより、無駄な分割や余白が発生しない印刷を実現している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許５２５３０６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１の印刷システムでは、表計算ドキュメントによりフィットする用紙サイズを表計算ソフトウェアに設定する処理を行っている。そのために、用紙サイズを縮小しながら繰り返し表計算ソフトウェアに対して設定を行うことで、用紙サイズの調整を行っている。特にその調整のために表計算ソフトウェアに対して用紙サイズを設定する回数が多かった場合、アプリケーションに対する設定に多くの時間がかかってしまうことがある。一方で、表計算ドキュメントに対して余白の多い用紙サイズをアプリケーションに設定した場合、該用紙サイズの１ページに含まれるデータが、余白の多い状態で印刷されてしまう。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
印刷対象のデータを生成するアプリケーションを実行すると共に、当該アプリケーションで生成された前記データを印刷装置で印刷させるための前記アプリケーションに組み込まれる第１の制御プログラム及び前記第１の制御プログラムを介して印刷の指示があった場合に実行する第２の制御プログラムとを実行する情報処理装置であって、
前記アプリケーションにて前記第１の制御プログラムが実行された場合、当該アプリケーションに対する、前記データを１ページに含む所定の用紙サイズの設定、及び、前記第２の制御プログラムに対する、余白削除を行わせるための余白削除設定を実行する設定手段と、
前記第２の制御プログラムが実行された場合、前記アプリケーションにより生成された、前記所定の用紙サイズの１ページに含まれている前記データに基づく印刷データを生成すると共に、生成した印刷データの余白を削除する余白削除手段と、
該余白削除手段で余白削除した印刷データを前記印刷装置に出力する出力手段とを有する。
【発明の効果】
【０００７】
本発明によれば、アプリケーションに対してより簡単な設定を行った場合でも、無駄な余白部分を適切に削除もしくは削減して、アプリケーションにより作成されたデータを１枚の記録紙に印刷させることが可能になる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態のシステム構成図。
【図２】ホスト装置の構成を示すブロック図。
【図３】表計算ソフトウェアの画面の一例を示す図。
【図４】表計算ソフトウェアにプラグインを組み込んだ画面の一例を示す図。
【図５】プラグイン起動後の処理手順を示すフローチャート。
【図６】プラグインの用紙サイズ算出処理のフローチャート。
【図７】プリンタドライバのフローチャート。
【図８】余白削除された印刷結果の一例を示す図。
【図９】第２の実施形態のシステム構成図。
【図１０】加工用プリンタドライバの処理手順を示すフローチャート。
【図１１】プレビューソフトウェアの画面の一例を示す図。
【発明を実施するための形態】
【０００９】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。なお、以下の実施形態では、表計算ソフトウェアのプラグインソフトウェア（以下、プラグイン）と、表計算ソフトウェアから印刷された印刷データを加工するプリンタドライバを用いた例を説明する。ここで、プラグインとは、ソフトウェアに対して機能を追加するプログラムである。たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ（登録商標）や、Ｍｉｃｒｏｓｏｆｔ  Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ（登録商標）などは、自身の機能を拡張させるための手段を公開している。そのため、これらのソフトウェアはプラグインを登録して新たな機能を追加することが可能となっている。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１０】
［第１の実施形態］
図１は、第１の実施形態におけるシステム構成図である。本システムは、ホスト装置１と、ロール紙を装着可能な印刷装置２によって構成される。ホスト装置１は、パーソナルコンピュータ等であり、マイクロソフト社のＯＳ（オペレーティングシステム）、印刷装置２を制御するソフトウェアであるプリンタドライバ１１０、一般的な表計算ソフトウェア１００がハードディスク等の記憶装置に既にインストールしているものとする。本実施形態では、一般的な表計算ソフトウェアとして、Ｍｉｃｒｏｓｏｆｔ  Ｅｘｃｅｌ（登録商標）を想定して説明する。なお、ホスト装置１と印刷装置２とはネットワークを介して接続されるものとするが、他のＩ／Ｆを介して接続しても構わないし、有線、無線の種類も特に問わない。
【００１１】
プラグイン１０１は、表計算ソフトウェア１００の機能を拡張するためのソフトウェアの一種であり、表計算ソフトウェア１００上で動作し、表計算ソフトウェア１００の制御を行う。プリンタドライバ１１０は表計算ソフトウェア１００から印刷データを受け取って、印刷装置２が解釈できる形式の印刷データを生成し、その印刷データを印刷装置２に転送する処理を行う。
【００１２】
図２は、ホスト装置１のブロック構成図である。ホスト装置１は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、通信インターフェース２０４と、外部記憶装置２０５と、入力部２０６と、表示部２０７とを有する。
【００１３】
ＣＰＵ２０１は、ホスト装置１の全体の各種制御を行う。ＲＯＭ２０２には、ホスト装置１の起動時に、ＣＰＵ２０１が実行する初期化プログラム（ＢＩＯＳ、ブートプログラム）や各種データが格納されている。ＲＡＭ２０３は、ＣＰＵ２０１に対するメインメモリや作業領域として用いられる。外部記憶装置２０５は、たとえば、ハードディスク（ＨＤＤ）等で構成され、ＯＳ、表計算ソフトウェア１００、プラグイン１０１、プリンタドライバ１１０、その他各種プログラムや、表計算ソフトウェア１００で作成したデータファイルが格納されている。
【００１４】
本装置の電源がＯＮになると、ＣＰＵ２０１はＲＯＭ２０２のブートプログラムに従って外部記憶装置２０５からＯＳをＲＡＭ２０３にロードし実行する。この結果、ホスト装置１は、入力部２０６を介してユーザからの指示入力と表示部２０７への各種情報の表示を行うユーザインターフェースを有する情報処理装置として機能することになる。更に、ＣＰＵ２０１はＯＳの制御下で、表計算ソフトウェア１００や、プラグイン１０１、プリンタドライバ１１０を外部記憶装置２０５からＲＡＭ２０３にロードし実行することで、本装置は表計算ソフトウェアによるユーザが作成した表の印刷制御装置として機能することになる。なお、入力部２０６は、キーボードやマウス等で構成され、入力部２０６を介して、ユーザが各種指示を、ＣＰＵ２０１に入力する。表示部２０７は、ＬＣＤやＣＲＴ等で構成され、ＣＰＵ２０１の制御によって、各種表示を行う。また、通信インターフェース２０４を介して、印刷装置２等、周辺装置と通信する。プリンタドライバ１１０が生成した印刷データは、この通信インターフェース２０４を介して印刷装置２に送信されることになる。
【００１５】
図３は、ホスト装置１上で表計算ソフトウェア１００を実行している際の、ユーザによる作表画面を示している。表計算ソフトウェア１００の画面は、表計算ソフトウェア１００の備える機能をメニュー形式で表示するメニューバー３００と、メニュー内の機能をアイコン等のコントロールで表示するリボン３１０と、現在編集中の表計算ドキュメントを表示する文書表示領域３２０で構成される。
【００１６】
メニューバー３００において、ページレイアウトに関するメニュータブがユーザによって選択された場合、リボン３１０には、参照符号３１１〜３１４のコントロールが表示される。コントロール３１１は印刷に使用する用紙サイズを設定するためのコントロールである。コントロール３１２、３１３は印刷に使用する印刷用紙の枚数を指定するコントロールである。また、コントロール３１２は横方向（水平方向）、コントロール３１３は縦方向（垂直方向）に使用するページ数（印刷用紙の枚数）を設定するコントロールである。そして、コントロール３１４は、拡大縮小して印刷する場合に倍率を指定するためのコントロールである。横方向のページ数をＮ、縦方向のページ数をＭとしたとき、実際に印刷される印刷用紙の枚数はＮ×Ｍとなる。
【００１７】
なお、印刷用紙の枚数を指定するコントロール３１２、３１３と、倍率指定のコントロール３１４は排他関係にあり、どちらか一方しか設定はできない。例えば、用紙サイズ３１１にＡ４、横の印刷枚数３１２に「１ページ」（印刷用紙１枚）、縦の印刷枚数３１３に「１ページ」（印刷用紙１枚）が設定されている場合は、Ａ４用紙１枚に対する印刷が行われることを示す。このとき、倍率指定３１４は設定不可となり、描画データがＡ４サイズよりも小さい場合は、１００％が設定され、描画データがＡ４サイズよりも大きい場合、倍率指定３１４は１００％よりも小さな値が自動計算され、縮小印刷が行われる。一方、用紙サイズ３１１にＡ４、倍率指定３１４に１００％が設定されている場合は、Ａ４用紙で１００％のサイズで印刷が行われる。このとき、描画データがＡ４サイズよりも大きい場合、横の印刷枚数３１２や縦の印刷枚数３１３には「１ページ」より大きなページ数が設定され、例えば、横２枚、縦３枚を掛け合わせた計６枚の印刷が実行されることになる。
【００１８】
図４は、ユーザによって、メニューバー３００の中のプラグイン１０１に関するメニュータブ「プラグイン」が選択された場合の画面を示している。ここで、プラグイン１０１は表計算ソフトウェア１００に事前に登録を済ませているものとする。なお、表計算ソフトウェアに対する一般的なプラグインのシステム登録の方法については、公知であるため説明を省く。
【００１９】
参照符号４０１は、実施形態のプラグイン１０１が備えるコントロールであり、現在開いている表計算ドキュメントを無駄な余白なしに１枚の用紙で印刷を実行させるための印刷ボタンである。ユーザは、入力部２０６に連動するカーソルを、このコントロール４０１が示すボタン上に移動させ、クリックする操作を行うと（以下、単純に押下操作という）と、ＣＰＵ２０１は、表計算ソフトウェア１００の一部の機能として、プラグイン１０１が規定する処理を実行することになる。以下、図５を参照して、ＣＰＵ２０１が実行する、このプラグイン１０１の処理手順を説明する。
【００２０】
まず、Ｓ１０１にて、ＣＰＵ２０１は、印刷に使用する用紙サイズの算出と設定を行う。この算出と設定処理を図６のフローチャートに従って説明する。なお、当然ながら以下の説明もプラグイン１０１の処理の一部である。
【００２１】
Ｓ２０１にて、ＣＰＵ２０１は、表計算ソフトウェア１００のＡＰＩを用いて、初期値として倍率指定３１４に１００％の値を設定する。表計算ソフトウェア１００のＡＰＩについては、公知であるため、その説明は省く（以後、同様）。
【００２２】
次にＳ２０２にて、ＣＰＵ２０１は、表計算ソフトウェア１００のＡＰＩを用いて、用紙サイズ３１１に予め設定された規定のサイズを設定し、処理をＳ２０３へ処理を進める。この規定のサイズは、実施形態では固定値として扱うが、ユーザが設定できるようにしても良い。その場合、設定したサイズに関する情報は外部記憶装置２０５に格納され、ユーザから特に変更指示が無い限り、維持されるものとする。
【００２３】
ここで言う規定のサイズは、表計算ソフトウェア１００が作成する印刷データのサイズであり、印刷装置２に実際に搭載された記録用紙のサイズとは無関係の仮の記録紙のサイズである。詳細は後述する説明から明らかになるが、ここで設定された用紙サイズで表計算ソフトウェア１００は印刷データを作成し、その後、プリンタドライバ１１０あるいはプレビューソフトウェア１４０によって、外周の余白領域の削除と、実際の記録用紙のサイズに合わせた変倍処理（拡大又は縮小）が実行される。表計算ソフトウェア１００に設定する用紙サイズは、描画データが無駄に縮小されて画質劣化が発生することがないよう、１００％の拡大率で印刷可能な大き目の用紙サイズを設定することが望ましい。ただし、用紙サイズを無駄に大きな値に設定した場合、その後のレンダリング処理や余白領域の削除処理に時間がかかってしまうことから、描画データよりも少し大き目のサイズを設定するのが理想的であり、Ｓ２０２では、一般に利用頻度が高いＡ３サイズまでのデータが収まるＡ３サイズを規定のサイズの初期値として設定している。
【００２４】
Ｓ２０３にて、ＣＰＵ２０１は、表計算ドキュメントの描画データが先ほど設定した用紙サイズと倍率１００％の設定で印刷された場合に、何ページの印刷となるかを判断すると共に、その結果が印刷用紙１枚（即ち１ページ）に収まるか否かを判定する。印刷用紙１枚（１ページ）に収まらないと判定された場合、ＣＰＵ２０１は処理をステップＳ２０４へ進める。また、ページ１枚に収まると判定した場合、ＣＰＵ２０１は本処理を終了する。なお、ページ１枚に収まるかどうかの判断は特に問わないが、例えば表計算ソフトウェア１００のＡＰＩを通して現在の印刷枚数を取得する方法や、ページの改行の個数を判断するなどの方法が考えられる。
【００２５】
Ｓ２０４にて、ＣＰＵ２０１は、先ほど設定した用紙サイズ“Ａ３”よりも大きいサイズを設定し、処理を２０５へと進める。ここでは“Ａ１”サイズを設定したものと仮定する。
【００２６】
Ｓ２０５にて、ＣＰＵ２０１は、Ｓ２０３と同様の処理を行う。異なるのは、この段階での設定した用紙サイズが“Ａ１”となっている点である。印刷対象の表計算ドキュメントが印刷用紙１枚（１ページ）に収まらないと判定した場合、ＣＰＵ２０１は処理をＳ２０６へ進め、１枚に収まると判定した場合は本処理を終了する。
【００２７】
Ｓ２０６にて、ＣＰＵ２０１は、プリンタドライバ１１０が使用可能な最大の用紙サイズを設定し、用紙サイズ算出処理を終了する。ここで、最大の用紙サイズとしては、Ａ０などの業界標準の定型サイズを指定する方法や、プリンタドライバ１００のインストール時に、あらかじめ印刷に使用可能なオリジナルの最大サイズを登録して、それを指定する方法が考えられる。オリジナルのサイズの登録としては、ＯＳ標準の用紙サイズデータベースに登録する方法があり、ここで例えば６０インチ×５ｍ等のサイズを登録して使用することができる。ここで登録されたオリジナルのサイズは、一時的に使用するカスタムサイズとは異なり、３．２ｍ等の制限を持たないため、３．２ｍを超えた巨大なデータを縮小することなく、高品質で印刷することができるようになる。
【００２８】
以上の用紙サイズ算出処理により、描画データの大きさに応じて３段階で用紙サイズが設定されることになる。これにより、無駄に大きなサイズで印刷を行うケースが削減でき、後述する余白削除処理の高速化や、印刷自体の高速化、画質劣化の抑制を図ることができる。なお、実施形態では３つの用紙サイズを使用したが、もちろんこの数や用いる用紙サイズを変更することも可能である。また、プリンタドライバ１１０の最大サイズを固定で設定する方法や、Ａ１等の特定サイズで固定する方法も考えられる。
【００２９】
図５のフローチャートの処理の説明に戻る。
【００３０】
Ｓ１０１にて、ＣＰＵ２０１は印刷用紙のサイズの設定処理を終えると、処理をＳ１０２に進める。
【００３１】
Ｓ１０２にて、ＣＰＵ２０１は、表計算ソフトウェア１００のＡＰＩを用いて、横（水平方向）の印刷枚数３１２に「１ページ」、縦（垂直方向）の印刷枚数３１３に「１ページ」を表計算ソフトウェア１００におけるページ設定において設定し、処理をＳ１０３へ進める。本処理により、意図しない箇所で作成した表が、表計算ソフトウェア１００により分割されることを防ぎ、確実に１枚の用紙への印刷を実現できるようになる。本処理により、Ｓ２０１で設定した倍率は、再度自動的に計算され、用紙サイズが描画データより小さい場合は、倍率が１００％よりも小さな値となる。なお、用紙サイズが描画データより大きい場合は、１００％の値が維持されることになる。
【００３２】
Ｓ１０２における処理により、印刷実行の際には、表計算ドキュメントが１ページに収まっているデータが、印刷対象として表計算ソフトウェア１００から出力されることになる。しかし、上述のＳ２０２、またはＳ２０４、またはＳ２０６の処理により設定された用紙サイズから、表計算ドキュメントによりフィットするサイズへ変更する処理が行われていないため、印刷対象のデータにおいて無駄な余白が生じている場合がある。
【００３３】
そこで、Ｓ１０３にて、ＣＰＵ２０１は、プリンタドライバ１１０にこれから印刷する印刷データの上下左右の余白を削除する指示を行い、Ｓ１０４へと処理を進める。この指示する方法としては、例えばプリンタドライバ１１０のＳＤＫ（Software Development Kit）を用いて指示する方法や、印刷するドキュメントの名前を通して指示する方法等が考えられる。要するに、プリンタドライバ１１０に対して、余白削除を通知できれば良い。
【００３４】
Ｓ１０４にて、ＣＰＵ２０１は、表計算ソフトウェア１００のＡＰＩを用いて、表計算ソフトウェア１００に現在の設定で印刷を実行させ、処理を終了する。なお、Ｓ１０４においては、現在の設定として設定されている出力先のプリンタドライバに、Ｓ１０１において設定された用紙サイズの１ページに含まれている印刷対象の表計算ドキュメントが出力される。ここでは出力先のプリンタドライバとして、プリンタドライバ１１０が設定されている。
【００３５】
次に、図７のフローチャートを用いて、表計算ソフトウェア１００から印刷が実行された後の、ＣＰＵ２０１によるプリンタドライバ１１０の実行手順を説明する。この処理は、上記Ｓ１０４の処理を受けて実行されるものである。
【００３６】
まずＳ３０１にて、ＣＰＵ２０１は、Ｓ１０３で指定される余白削除の指示が存在するかどうかの確認を行い、指示が存在する場合は処理をＳ３０２へ、指示が存在しない場合は処理をＳ３０６へと進める。本処理により、プリンタドライバ１１０は常に余白を削除する必要がなくなり、余白を削除しない印刷ケースと、余白を削除する印刷ケースとを切り分けることが可能となる。
【００３７】
Ｓ３０２にて、ＣＰＵ２０１は、表計算ソフトウェア１００から渡された印刷対象のデータに基づき、ＲＧＢデータにレンダリングし、印刷イメージデータを生成する。そして、ＣＰＵ２０１は処理をＳ３０３へ進める。なお、ここでは、ＲＧＢ色空間でのレンダリングについて説明したが、色空間の種類は問わない。例えばＣＭＹＫやＲＧＢＡ等の色空間でも構わない。
【００３８】
Ｓ３０３にて、ＣＰＵ２０１は、レンダリングして得た印刷イメージデータの上下左右の余白を算出し、Ｓ３０４へと処理を進める。算出方法としては、印刷イメージデータの最上位のラインから下方向のラインに向けて走査し、最初に真っ白でない画素（非白画素）を含むラインの直前までを余白領域として判定する。これを左、右、下方向に対しても同様に処理することで、上下左右の余白を算出することができる。つまり、レンダリングした印刷イメージデータにおいて、非白画素を含む領域の外接矩形を求め、その外接矩形の外側を削除するものとして決定する。なお、本実施形態における余白の算出方法は上記の算出方法に限定するものでない。例えば、レンダリング処理中に、非白画素をレンダリングした際の座標が、垂直、水平方向のそれぞれの最大座標を超える、或いは最小座標を下回る場合にその座標を更新する処理を行い、レンダリングを終了した際のそれらの座標から余白を算出しても良い。
【００３９】
Ｓ３０４にて、ＣＰＵ２０１は、Ｓ３０３により算出された余白領域をもとに、余白の削除を行い、Ｓ３０５へと処理を進める。余白を削除する対象としては、ＲＧＢデータをそのまま印刷データとして印刷装置２に送信する場合は、ＲＧＢデータに対して余白箇所（外接矩形外）を削除する。また、ＲＧＢ以外のフォーマット形式（ＸＰＳやＰＤＦ等）を印刷装置２に送信する必要がある場合は、そのフォーマットに対して、余白箇所の削除を行う。余白を削除する対象やタイミングについては、特に限定するものではなく、例えば、印刷装置２で実施することも可能である。また、描画データだけでなく、印刷装置２に送信する用紙サイズ等の情報も必要に応じて変更を行う。
【００４０】
Ｓ３０５にて、ＣＰＵ２０１は、余白が削除された印刷データを、印刷装置２にセットされた用紙サイズにフィットするよう拡大縮小処理（変倍処理）を行い、Ｓ３０６へと処理を進める。なお、印刷に使用する用紙媒体や用紙サイズについては特に限定されず、例えばロール紙等の長尺印刷が可能な用紙媒体に対しては、拡大／縮小処理は印刷データの幅をロール紙幅へフィットさせて行えばよい。一方、カット紙に対しては、Ａ４等の定型サイズに対して印刷データを内接フィットさせることで無駄な余白を発生させなくする方法や、印刷データを９０度回転させた後にフィット処理を行うことで、さらに余白を発生させなくする方法が考えられる。印刷に使用する用紙媒体や用紙サイズの特定方法については、例えばあらかじめプラグイン１０１に用紙媒体や用紙サイズを指定するコントロールを設ける方法がある。また、印刷装置２がセンサにより現在装着されている用紙媒体の用紙サイズを検知し、検知された用紙サイズを、ＣＰＵ２０１がホスト装置１と印刷装置２の間の通信により取得する方法等が考えられる。Ｓ３０６では、このようにユーザにより指定された用紙サイズ、或いは印刷装置２から取得された用紙サイズにフィットするように拡大縮小処理が行われる。なお、特にカット紙の場合、カット紙のアスペクト比と、表計算ソフトウェア１００による印刷しようとしている矩形範囲のアスペクト比が一致しない場合がある。この場合、印刷しようとしている矩形範囲の長尺方向を、カット紙の長尺方向に一致させて印刷する。
【００４１】
Ｓ３０６にて、ＣＰＵ２０１は、余白削除し、上記の拡大縮小処理後の印刷イメージデータを、印刷装置２が解釈可能な形式の印刷データに変換した上で、印刷装置２に印刷データを転送し、処理を終了する。
【００４２】
以上、説明したように本実施形態によれば、上記プラグイン１０１、プリンタドライバ１１０の２つの制御プログラムの共同処理により、図８のように、表計算ソフトウェア１００により作成した表（文書）を包含する印刷範囲を、余白無し或いは余白を削減して、１枚の記録紙へカスタムサイズで印刷が可能となる。特に、本実施形態によれば、図６の処理により、表計算ドキュメントを１ページに含む用紙サイズが、表計算ソフトウェア１００に設定される。そして、その用紙サイズに対応する大きさの印刷対象のデータが表計算ソフトウェア１００により作成される。そして、余白の削除については、プリンタドライバ１１０により実行される。そのため、例えば図６に示す処理の後に、余白がより少ない用紙サイズを算出して表計算ソフトウェア１００に対して設定する場合に比べ、より簡単な処理により表計算ソフトウェア１００に用紙サイズを設定することができる。また、この場合、表計算ソフトウェア１００により余白があるデータが生成されることもあるが、プリンタドライバ１１０により余白が削除される。そのため、表計算ソフトウェア１００に対するより簡単な設定が行われるが、余白が適切に削除または削減された印刷結果を得ることができる。
【００４３】
また、表計算ソフトウェア１００が、表計算ドキュメントにおけるセル内の余白を削除することができない場合もある。この場合、例えば表計算ドキュメントによりフィットする用紙サイズを設定できたとしても、セル内の余白は残っている状態で印刷対象のデータが生成される。しかし、本実施形態によれば、プリンタドライバ１１０では、表計算ドキュメントとしてのデータでなく、ＲＧＢ等の画像データとして余白を削除する。そのため、表計算ドキュメントにおいて元々はセル内に設けられていた余白を印刷装置２による印刷対象から除外することができる。
【００４４】
なお、Ｓ３０６において、プリンタドライバ１１０は、Ｓ３０４で削除された余白とは別に、印刷のための所定の余白を印刷イメージデータに付与してもよい。或いは、印刷装置２において、印刷のための所定の余白が付与されるよう印刷が行われてもよい。これにより、仮にＳ３０４において余白が完全に削除され、表計算ドキュメントにおける実データが印刷イメージデータの端に配置されていたとしても、印刷結果においてある程度の余白を残すことができる。そのため、印刷結果の視認性を確保することができる。または、Ｓ３０４において、印刷結果の視認性確保のために、所定の量の余白は残すように、余白の削減を行ってもよい。
【００４５】
［第２の実施形態］
次に、余白削除したデータを、印刷前にプレビュー表示やレイアウト変更する例を第２の実施形態として説明する。
【００４６】
図９は、本第２の実施形態におけるシステム構成図である。本システムにおける、ホスト装置１、印刷装置２、表計算ソフトウェア１００、プラグイン１０１については、図１と同じであるため説明を省く。
【００４７】
加工用プリンタドライバ１２０は、表計算ソフトウェア１００からの印刷データを受け取り、余白削除までを行うプリンタドライバである。ただし、加工用プリンタドライバ１２０は印刷装置２への印刷は行わず、余白削除後のイメージデータをスプールファイル１３０として出力する。スプールファイル１３０の出力場所は、外部記憶装置２０５に予め定義されたＴｅｍｐフォルダやＡｐｐＤａｔａ等、後述するプレビューソフトウェア１４０が読み込むことができればよく、その場所は特に問わない。
【００４８】
プレビューソフトウェア１４０はスプールファイル１３０を読み込み、余白削除されたデータを表示部２０７にプレビューウインドウとして表示する。プレビューソフトウェア１４０の起動方法としては、ユーザが自身で起動する方法や、加工用プリンタドライバ１２０への印刷を監視し、その印刷タイミングでプレビューソフトウェア１４０を起動する常駐アプリケーションを用意する方法等が考えられる。また、スプールファイル１３０を監視して自動起動する方法や、加工用プリンタドライバ１２０が直接起動する方法等でも構わない。
【００４９】
プリンタドライバ１５０は、印刷装置２に印刷データを転送するための一般的なプリンタドライバである。プレビューソフトウェア１４０からプリンタドライバ１５０に印刷指示を行うことで、印刷装置２に対して送信処理が実行される。なお、加工用プリンタドライバ１２０とプリンタドライバ１５０は内部的に処理を切り替える構成をとることで、同じ一つのプリンタドライバとすることも可能である。
【００５０】
図１０は、表計算ソフトウェア１００から印刷が実行された後の加工用プリンタドライバ１２０の動作を表したフローチャートである。同図は、先に説明した第１の実施形態の図７に置き換わるものである。そして、図示のＳ４０１はＳ３０１と、Ｓ４０２はＳ３０２と、Ｓ４０３はＳ３０３と、Ｓ４０４はＳ３０４と同じ処理であるため、ここでの説明は省略し、Ｓ４０５について説明する。
【００５１】
Ｓ４０５にて、ＣＰＵ２０１は、余白を削除した印刷データをスプールファイル１３０として出力し、処理を終了する。ここで、プレビューソフトウェア１４０にて、印刷データを拡大や縮小する変更が可能な場合は、Ｓ４０４で余白を削除し、Ｓ４０５で特定フォルダへ出力する印刷データは、ベクター形式のデータが望ましい。例えば、加工用プリンタドライバ１２０がＸＰＳ（XML Paper Specification）を印刷データとして扱うＸＰＳドライバの場合は、プリンタドライ１５０が受信する印刷データはベクター形式のＸＰＳとなる。この場合、Ｓ４０３の余白箇所の算出はＸＰＳをＲＧＢに変換したものに対して行われるが、Ｓ４０４で余白を削除しＳ４０５で出力する印刷データは、ベクター形式であるＸＰＳとなる。その結果、プレビューソフトウェア１４０上で印刷データが拡大や縮小される場合においても、ベクター形式であるＸＰＳに対して処理が行われるため、細線の途切れや、文字が粗くなる等の品質低下が起こることなく、高品質での印刷を実現することができる。
【００５２】
図１１はプレビューソフトウェア１４０により表示するプレビューウインドウの一例を表している。図示の参照符号１１０１が、印刷結果を確認するための作表イメージを示す画面であり、ユーザは印刷をキャンセルしたい場合はキャンセルボタン１１０２を押下（クリック）し、印刷を実行する場合は印刷ボタン１１０３を押下することで、印刷を実行することができる。
【００５３】
プレビューソフトウェア１４０には、印刷データのプレビューのみでなく、印刷データの加工処理の機能を持たせることも可能である。例えば、余白削除された印刷データとロール紙幅の長さが一致していない場合、ユーザは、印刷データを自動的にロール紙幅にフィットさせるチェックボックス１１０４をチェック状態にすれば良い。これにより、確実に無駄な余白が発生しない印刷を実現できる。
【００５４】
また、第２の実施形態は、加工用プリンタドライバ１２０が余白の削除を行ったが、これをプレビューソフトウェアで行ってもよい。なお、本第２の実施形態のプリンタドライバ１５０は、図７におけるＳ３０５の処理を行い、印刷装置２に送信する。
【００５５】
以上の第２の実施形態により、余白を削除された印刷データのプレビューや、追加の加工処理が実現可能となる。
【００５６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５７】
１…ホスト装置、２…印刷装置、１０１…プラグイン、１１０…プリンタドライバ
【図１】
2019204347.tif 000003
【図２】
2019204347.tif 000004
【図３】
2019204347.tif 000005
【図４】
2019204347.tif 000006
【図５】
2019204347.tif 000007
【図６】
2019204347.tif 000008
【図７】
2019204347.tif 000009
【図８】
2019204347.tif 000010
【図９】
2019204347.tif 000011
【図１０】
2019204347.tif 000012
【図１１】
2019204347.tif 000013