(57)【要約】【課題】より一般的なプリンタドライバに対して、アプリケーションから任意の印刷設定情報を伝達することができる技術を提供することを目的とする。【解決手段】ユーザにより指定された出力サイズに対応するファイル名の、所定のアプリケーションが作成したデータを含む印刷ファイルの出力を、当該所定のアプリケーションが第１のプリンタドライバに依頼するように、当該第１のアプリケーションに対する指示を行う。そして、当該指示に応じて当該第１のプリンタドライバが当該所定のアプリケーションから取得した上記のデータと上記のファイル名に基づき、当該データの、当該出力サイズに対応する印刷設定に従った印刷を、第２のプリンタドライバに指示する。【選択図】図９
2019204322.tif 000002
【特許請求の範囲】
【請求項１】
プリンタドライバに所定のファイル名の印刷ファイルの出力を依頼することが可能な所定のアプリケーションを備える情報処理装置により実行される印刷制御方法であって、
ユーザにより指定された出力サイズを入力する入力工程と、
前記入力工程により入力された出力サイズに対応するファイル名の、前記所定のアプリケーションが作成したデータを含む印刷ファイルの出力を、前記所定のアプリケーションが第１のプリンタドライバに依頼するように、前記所定のアプリケーションに対する指示を行う第１の指示工程と、
前記第１の指示工程における指示に応じて前記第１のプリンタドライバが前記所定のアプリケーションから取得した前記データと前記ファイル名に基づき、前記データの、前記出力サイズに対応する印刷設定に従った印刷を、第２のプリンタドライバに指示する第２の指示工程と、
を備えることを特徴とする印刷制御方法。
【請求項２】
前記入力工程において入力された前記出力サイズに対応するアスペクト比の用紙サイズを前記所定のアプリケーションに設定する設定工程をさらに備え、
前記設定工程における設定の後に、前記所定のアプリケーションにより、前記アスペクト比のページが表示されることを特徴とする請求項１に記載の印刷制御方法。
【請求項３】
前記設定工程による設定の後のユーザによる所定の操作に応じて、前記第１の指示工程における指示が行われることを特徴とする請求項２に記載の印刷制御方法。
【請求項４】
前記所定の操作が実行されたときに前記所定のアプリケーションに設定されている第１の用紙サイズと、前記設定工程において設定された第２の用紙サイズが異なる場合、前記第１の指示工程では、前記出力サイズに対応するファイル名の前記印刷ファイルの出力のための指示は行われないことを特徴とする請求項３に記載の印刷制御方法。
【請求項５】
前記第１の用紙サイズと前記第２の用紙サイズが異なる場合、前記第１の指示工程では、前記出力サイズに対応するファイル名とは異なるファイル名の、前記所定のアプリケーションが作成したデータを含む印刷ファイルの出力を、前記所定のアプリケーションが第１のプリンタドライバに依頼するように、前記所定のアプリケーションに対する指示が行われることを特徴とする請求項４に記載の印刷制御方法。
【請求項６】
前記入力工程では、前記出力サイズとして、用紙の幅と長さを入力し、
前記第１の指示工程では、前記入力工程において入力された幅と長さを含むファイル名である前記印刷ファイルの出力のための指示が行われることを特徴とする請求項１乃至５のいずれか１項に記載の印刷制御方法。
【請求項７】
前記入力工程では、前記出力サイズと、フチなし印刷を行うか否かを示すフチ設定が入力され、
前記第１の指示工程では、前記出力サイズと前記フチ設定に対応するファイル名である前記印刷ファイルの出力のための指示が行われ、
前記第２の指示工程では、前記ファイル名に基づき、前記出力サイズと前記フチ設定に対応する印刷設定に従った印刷を、第２のプリンタドライバに指示することを特徴とする請求項１乃至６のいずれか１項に記載の印刷制御方法。
【請求項８】
前記入力工程と、前記第１の指示工程が、前記所定のアプリケーションに登録されているプラグインソフトウェアにより実行されることを特徴とする請求項１乃至７のいずれか１項に記載の印刷制御方法。
【請求項９】
前記第２の指示工程は、前記所定のアプリケーションとは異なるアプリケーションにより実行されることを特徴とする請求項１乃至８のいずれか１項に記載の印刷制御方法。
【請求項１０】
前記第１の指示工程における指示に応じて前記第１のプリンタドライバが前記所定のアプリケーションから取得した前記データと前記ファイル名に基づき、前記ファイル名に対応する前記出力サイズに基づく大きさの印刷対象のデータを生成する生成工程をさらに備え、
前記第２の指示工程では、前記生成工程において生成された印刷対象のデータの、前記出力サイズに対応する印刷設定に従った印刷を、第２のプリンタドライバに指示することを特徴とする請求項１乃至９のいずれか１項に記載の印刷制御方法。
【請求項１１】
前記生成工程は、前記第１のプリンタドライバにより実行されることを特徴とする請求項１０に記載の印刷制御方法。
【請求項１２】
プリンタドライバに所定のファイル名の印刷ファイルの出力を依頼することが可能な所定のアプリケーションを備える情報処理装置に、
ユーザにより指定された出力サイズを入力する入力工程と、
前記入力工程により入力された出力サイズに対応するファイル名の、前記所定のアプリケーションが作成したデータを含む印刷ファイルの出力を、前記所定のアプリケーションが第１のプリンタドライバに依頼するように、前記所定のアプリケーションに対する指示を行う指示工程と、
を実行させるプログラムであって、
前記指示工程における指示に応じて前記第１のプリンタドライバが前記所定のアプリケーションから取得した前記データと前記ファイル名に基づき、前記データの、前記出力サイズに対応する印刷設定に従った印刷が、第２のプリンタドライバに指示されることを特徴とするプログラム。
【請求項１３】
前記プログラムは、前記所定のアプリケーションに登録されるプラグインソフトウェアであることを特徴とする請求項１２に記載のプログラム。
【請求項１４】
プリンタドライバに所定のファイル名の印刷ファイルの出力を依頼することが可能な所定のアプリケーションを備える情報処理装置であって、
ユーザにより指定された出力サイズを入力する入力手段と、
前記入力手段により入力された出力サイズに対応するファイル名の、前記所定のアプリケーションが作成したデータを含む印刷ファイルの出力を、前記所定のアプリケーションが第１のプリンタドライバに依頼するように、前記所定のアプリケーションに対する指示を行う第１の指示手段と、
前記第１の指示手段における指示に応じて前記第１のプリンタドライバが前記所定のアプリケーションから取得した前記データと前記ファイル名に基づき、前記データの、前記出力サイズに対応する印刷設定に従った印刷を、第２のプリンタドライバに指示する第２の指示手段と、
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷制御方法、プログラム、および情報処理装置に関する。
【背景技術】
【０００２】
アプリケーションには、自身の機能を拡張させるための手段を公開しているものが存在する。そのようなアプリケーションとして、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅ（米国マイクロソフト社）や、Ｍｉｃｒｏｓｏｆｔ Ｉｎｔｅｒｎｅｔ Ｅｘｐｌｏｒｅｒ（米国マイクロソフト社）等が挙げられる。これらのアプリケーションは、公開されている手段に則って追加プログラムをインストール、登録することにより、ユーザに対して追加機能を提供することが可能である。そして、このような、アプリケーションに追加機能を提供するための追加プログラムは、一般的にプラグイン（プログラム）と呼ばれている。
【０００３】
この技術を利用し、長尺印刷や横断幕のような一般的な定型サイズを超えるような大きなサイズの用紙に印刷する際に、アプリケーションに対して必要となる煩雑な設定作業を軽減させるための手段として、特許文献１に記載の技術が提案されている。
【０００４】
図１５は、特許文献１におけるシステムの概略構成を示すブロック図である。図示するように、プラグインソフトウェア１５０２は、最大用紙サイズ情報保持部１５０３を内部に有する。最大用紙サイズ情報保持部１５０３とは、アプリケーション１５０１がサポートする最大用紙サイズの情報を保持するためのモジュールである。
【０００５】
プラグインソフトウェア１５０２は、ユーザがプリンタ１４０から出力したいサイズが、最大用紙サイズを超える場合であっても、ユーザが所望するサイズで印刷が行われるようにする。具体的には、プラグインソフトウェア１５０２は、最大用紙サイズ内でユーザが出力したいサイズと同じ縦横比のサイズを算出し、アプリケーション１５０１に対して設定する。さらに、プラグインソフトウェア１５０２は、アプリケーション１５０１に対して設定したサイズに基づきユーザが所望するサイズで印刷されるよう、プリンタドライバ１５０４に対して変倍設定を行う。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２００９／１５４２２７号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１には次のような課題がある。まず、特許文献１では、プラグインソフトウェア１５０２からプリンタドライバ１５０４を介して変倍設定を行う手段として、プリンタドライバ１５０４の設定画面を開かずに印刷設定を行う。そのためには、プリンタドライバに、上記印刷設定のための拡張ＡＰＩを搭載する必要がある。
【０００８】
そこで本発明は、上記の課題に鑑み、より一般的なプリンタドライバに対して、アプリケーションから任意の印刷設定を伝達することができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、プリンタドライバに所定のファイル名の印刷ファイルの出力を依頼することが可能な所定のアプリケーションを備える情報処理装置により実行される印刷制御方法であって、ユーザにより指定された出力サイズを入力する入力工程と、前記入力工程により入力された出力サイズに対応するファイル名の、前記所定のアプリケーションが作成したデータを含む印刷ファイルの出力を、前記所定のアプリケーションが第１のプリンタドライバに依頼するように、前記所定のアプリケーションに対する指示を行う第１の指示工程と、前記第１の指示工程における指示に応じて前記第１のプリンタドライバが前記所定のアプリケーションから取得した前記データと前記ファイル名に基づき、前記データの、前記出力サイズに対応する印刷設定に従った印刷を、第２のプリンタドライバに指示する第２の指示工程と、を備えることを特徴とする印刷制御方法である。
【発明の効果】
【００１０】
本発明により、より一般的なプリンタドライバに対して、アプリケーションから任意の印刷設定情報を伝達することが可能である。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態における情報処理装置のハードウェア構成を示すブロック図。
【図２】第１の実施形態における情報処理装置のソフトウェア構成を示すブロック図。
【図３】アプリケーションを起動したときの画面を示す図。
【図４】出力サイズ指定ダイアログを示す図。
【図５】用紙サイズの設定が変更された後のアプリケーションの画面を示す図。
【図６】第１の実施形態における、用紙設定ボタン押下時の一連の動作のフローチャート。
【図７】第１の実施形態における警告ダイアログを示す図。
【図８】第１の実施形態における用紙サイズ導出処理のフローチャート。
【図９】第１の実施形態における、編集／印刷ボタン押下時、プラグイン側で実行される処理のフローチャート。
【図１０】プラグインのモジュールがアプリケーションを介して仮想プリンタドライバに印刷実行を指示する際に用いられる命令文。
【図１１】第１の実施形態における、印刷ジョブを受け取った仮想プリンタドライバ側で実行される処理のフローチャート。
【図１２】第２の実施形態における編集／印刷設定ダイアログを示す図。
【図１３】第２の実施形態における、編集／印刷ボタン押下時、プラグイン側で実行される処理のフローチャート。
【図１４】第２の実施形態における、印刷ジョブを受け取った仮想プリンタドライバ側で実行される処理のフローチャート。
【図１５】背景技術における印刷システムの概略構成を示すブロック図。
【発明を実施するための形態】
【００１２】
また、拡張ＡＰＩを介して生成された印刷設定を用いて、アプリケーション１５０１からプリンタドライバ１５０４に印刷実行を指示するためには、アプリケーション１５０１が保持する印刷設定を差し替える必要がある。しかし、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｏｆｆｉｃｅの場合、印刷設定を切り替えるための標準的な手段としてのプラグインソフトウェアは公開されていないため、プラグインソフトウェア以外の手段を採用する必要がある。別の手段の一例として、ＰＣ１００のシステム情報として登録されている標準の印刷設定を一時的に変更し、これをアプリケーション１５０１に参照させることで印刷設定を切り替えることが考えられる。しかし、このような手段を採用した場合、一時的にシステム情報に対して変更を加えるため、他のアプリケーションに対しても影響を与える場合がある。
【００１３】
以下、図面を参照して本発明の実施形態を詳しく説明する。但し、以下の実施形態は本発明を必要以上に限定するものでなく、また、以下の実施形態で説明されている特徴の組み合わせの全てが本発明の課題解決に必須のものとは限らない。尚、同一の構成については、同じ符号を付して説明する。また、以下に記載されている構成要素の相対配置、形状等は、あくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１４】
［第１の実施形態］
＜ハードウェア構成について＞
図１は、本実施形態における情報処理装置と、プリンタとから成る印刷システムのうち、情報処理装置のハードウェア構成を示すブロック図である。情報処理装置として例えば、コンピュータが挙げられるので、以下、情報処理装置をＰＣと略記する。図示するように、ＰＣ１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、補助記憶装置１０４、入力インタフェース（以下、インタフェースをＩＦと略記する）１０５、出力ＩＦ１０６、及び入出力ＩＦ１０７を有する。これらのコンポーネントはバス１０８を介して接続されており、互いにデータを送信または受信することができる。入力ＩＦ１０５は、マウス１１０、キーボード１２０等の入力デバイスが接続されており、これらの入力デバイスからの入力を制御する。マウス１１０やキーボード１２０等の入力デバイスは、アプリケーションやプラグインを実行することでディスプレイ１３０に表示されるアイコンやメニュー、その他のオブジェクトに対し、ユーザからの各種入力（ユーザ操作）を行うために用いられる。出力ＩＦ１０６は、ディスプレイ１３０等の出力デバイスが接続されており、出力デバイスへの出力を制御する。入出力ＩＦ１０７は、プリンタ１４０が接続されており、プリンタ１４０に対する入出力を制御する。
【００１５】
ＲＯＭ１０２には、初期化のためのプログラム及びデータが記憶されている。補助記憶装置１０４には、アプリケーションプログラム群、プラグイン、ＯＳ、プリンタドライバ、仮想プリンタドライバ、及びその他の各種データが記憶されている。ＲＡＭ１０３は、データを一時的に記憶する記憶媒体であり、ＣＰＵ１０１のメインメモリ、ワークエリアとして機能する。具体的に例えば、ＲＯＭ１０２や補助記憶装置１０４に記憶された各種プログラムがＲＡＭ１０３に展開され、該展開されたプログラムがＣＰＵ１０１によって実行される。本実施形態では、ＲＯＭ１２と補助記憶装置１０４との少なくとも一方に記憶されているプログラムがＲＡＭ１０３に展開され、ＣＰＵ１０１が該展開されたプログラムを実行する。これにより、ＰＣ１００における後述の機能を実現し、後述のフローに従う処理を実行する。
【００１６】
プリンタ１４０は、入出力インタフェース１０７を介してＰＣ１００と接続されており、ＰＣ１００は、プリンタ１４０が解釈可能な印刷データを含む印刷ジョブをプリンタ１４０に送信する。尚、プリンタとは、印刷機能に特化した専用機に限らず、印刷機能とその他の機能とを複合した複合機や、記録媒体上に画像やパターンを形成する製造装置等も含む。また、以降の説明では、プリンタ１４０がロール紙等の連続紙に画像を印刷する場合を例に説明する。しかしこれに限らず、プリンタ１４０がカット紙に画像を印刷する場合であっても良い。
【００１７】
＜ソフトウェア構成について＞
図２は、本実施形態における印刷システムのうち、ＰＣ１００のソフトウェア構成を示すブロック図である。符号２０１は、ＰＣ１００上で動作するアプリケーションを示す。本明細書で説明に用いる例（以下、実施例と呼ぶ）では、汎用的なアプリケーションとして、Ｍｉｃｒｏｓｏｆｔ Ｗｏｒｄ（以下、単にアプリケーションと呼ぶ）を例に挙げて説明する。Ｍｉｃｒｏｓｏｆｔ Ｗｏｒｄは、米国マイクロソフト社のアプリケーションであり、一般的な文書や印刷物の原稿作成に使用されるアプリケーションであり、追加機能を組み込む手段が公開されている。
【００１８】
符号２０２は、アプリケーションの機能を拡張する拡張手段、つまり、プラグインソフトウェア（以下、単にプラグインと呼ぶ）を示す。プラグイン２０２は、アプリケーション２０１上で動作し、アプリケーション２０１の設定を変更したり、後述するようにアプリケーション２０１を介して仮想プリンタドライバ２０４に対して印刷実行を指示したりする。
【００１９】
符号２０３は、最大用紙サイズ情報保持部を示す。最大用紙サイズ情報保持部２０３は、プラグイン２０２における１つのモジュールであり、最大用紙サイズに関する情報（最大用紙サイズ情報と呼ぶ）を保持する。最大用紙サイズとは、アプリケーション２０１において、設定可能な用紙サイズのうち最大のものを示す情報であって、幅の値と長さの値とで構成される。最大用紙サイズ情報保持部２０３によって保持された最大用紙サイズ情報は、後述の処理で利用される。尚、本実施例で採用するアプリケーション（Ｍｉｃｒｏｓｏｆｔ Ｗｏｒｄ）における最大用紙サイズは、幅５５ｃｍ、長さ５５ｃｍである。
【００２０】
尚、ここでは、アプリケーションとしてＭｉｃｒｏｓｏｆｔ Ｗｏｒｄを取り上げているが、アプリケーションはこれに限定されない。Ｍｉｃｒｏｓｏｆｔ Ｗｏｒｄと同等な拡張手段を提供しているアプリケーションを有する任意のシステムに、本実施形態を適用可能である。
【００２１】
符号２０４は、アプリケーション２０１がオペレーティングシステム（以下、ＯＳと呼ぶ）を介して印刷を指示する仮想プリンタドライバを示す。本実施形態における印刷システムでは、プリンタ１４０と接続し、プリンタ１４０に対して印刷を指示するプリンタドライバ２０６とは別に、仮想プリンタドライバ２０４を設けている。また、この印刷システムでは、プラグインソフトウェア２０２による印刷が行われる場合、アプリケーション２０１からの印刷指示を、プリンタ１４０と直接接続されるプリンタドライバ２０６受け付ける構成となっていない。印刷指示を、プリンタドライバ２０６の前段に設けられる仮想プリンタドライバ２０４が受け付ける構成となっている。
【００２２】
尚、プラグインソフトウェア２０２は、不図示のＷｅｂサーバにより提供されており、ＰＣ１００が備える不図示のＷｅｂブラウザにより、該Ｗｅｂサーバにアクセスすることで、プラグインソフトウェア２０２をダウンロードすることができる。また、このＷｅｂサーバにより、プラグインソフトウェア２０２のインストーラ、仮想プリンタドライバ２０４、及び後述のレイアウト編集アプリケーション２０５も提供されている。そして、プラグインソフトウェア２０２のダウンロードの際には、このインストーラ、仮想プリンタドライバ２０４、及びレイアウト編集アプリケーション２０５も自動的に、共にダウンロードされる。そして、このインストーラにより、プラグインソフトウェア２０２、仮想プリンタドライバ２０４、レイアウト編集アプリケーション２０５が自動的にインストールされる。
【００２３】
アプリケーション２０１からの印刷指示を受け取った仮想プリンタドライバ２０４は、アプリケーション種別に依らないデータ形式の印刷用中間データ（以下、単に中間データと呼ぶ）を生成し、これをレイアウト編集アプリケーション２０５に渡す。中間データは、一般的にはＯＳによって形式が定められており、代表的な形式として、ＥＭＦ形式や、ＸＰＳ形式等が挙げられる。また、ＯＳによって規定されているもの以外の独自の形式を用いることもできる。
【００２４】
符号２０５は、仮想プリンタドライバ２０４が生成した中間データを用いて、紙面上の印刷レイアウトを編集するアプリケーションを示す。レイアウト編集アプリケーション２０５は、印刷レイアウトに関するユーザ指示に応じて、中間データを加工する。また、レイアウト編集アプリケーション２０５は、加工済みの中間データを用いて、プリンタ１４０と直接接続されているプリンタドライバ２０６に印刷を指示する。プリンタドライバ２０６は、印刷設定に従って中間データをプリンタ１４０が解釈可能な印刷データに変換し、印刷データを含む印刷ジョブをプリンタ１４０に送出する。
【００２５】
＜アプリケーションについて＞
図３は、アプリケーション２０１を起動したときにディスプレイ１３０に表示される画面を示す図である。この画面は、タイトルバー３０１と、メニューバー３０２と、リボン３０３と、文書表示領域３０４とを含む。タイトルバー３０１には、現在作成中の文書のタイトルやアプリケーション名等が表示される。メニューバー３０２には、「ファイル」、「ホーム」等のユーザが選択可能なメニューが表示される。リボン３０３には、アプリケーション２０１やプラグイン２０２が有する機能に対応するボタンが配される。文書表示領域３０４には、現在作成中の文書が表示され、本実施例では、ユーザが編集中の原稿３０５が表示されている。尚、ここでは、原稿３０５の用紙サイズとして、アプリケーション２０１における一般的な設定であるＡ４（幅２１０ｍｍ、長さ２９７ｍｍ）が設定されているものとする。
【００２６】
リボン３０３上に配置されている、用紙設定ボタン３０６と、編集／印刷ボタン３０７は、アプリケーション２０１用のプラグイン２０２を登録することで、リボン３０３上に表示されるコントロールである。
【００２７】
＜出力サイズ指定ダイアログについて＞
図４は、用紙設定ボタン３０６をユーザが押下することで表示される出力サイズ指定ダイアログ４０１を示す図である。図３に示す画面がディスプレイ１３０に表示された状態で、ユーザが用紙設定ボタン３０６を押下すると、ユーザからの入力を受け付ける画面が、図３に示す画面から出力サイズ指定ダイアログ４０１に遷移し、アプリケーション２０１の設定等を変更できなくなる。
【００２８】
出力サイズ指定ダイアログ４０１は、ユーザがプリンタ１４０を用いて印刷したい出力物の大きさ（以下、出力サイズと呼ぶ）を指定するコントロールとして、幅指定コントロール４０２と、長さ指定コントロール４０３とを有する。ユーザは、幅指定コントロール４０２にｍｍ単位の数値を入力することで幅を指定し、長さ指定コントロール４０３にｍｍ単位の数値を入力することで長さを指定する。尚、ここでは図示するように、ユーザによって、出力サイズの幅として１０００ｍｍが、出力サイズの長さとして３０００ｍｍが指定されたとする。
【００２９】
尚、プリンタ１４０が、自身にセットされているロール紙の幅をセンサにより自動検知し、その検知結果が出力サイズ指定ダイアログ４０１に反映されても良い。具体的には、プラグインソフトウェア２０２がＯＳを介してプリンタ１４０にアクセスし、プリンタ１４０がセンサにより検知したロール紙の幅をプリンタ１４０から取得する。そして、そのロール紙の幅が、幅指定コントロール４０２に自動的に反映されても良い。この構成により、プリンタ１４０にセットされているロール紙の幅を出力サイズの幅として、より確実に指定することができる。
【００３０】
出力サイズ指定ダイアログ４０１がディスプレイ１３０に表示された状態で、ユーザがＯＫボタン４０４を押下した場合について説明する。この場合、ＣＰＵ１０１は、プラグイン２０２のモジュールにより、原稿３０５の用紙サイズを導出したり、アプリケーション２０１における用紙サイズを設定したり、出力サイズを保持したりする。そして、出力サイズ指定ダイアログ４０１を閉じると同時に、ユーザからの入力を受け付ける画面を、出力サイズ指定ダイアログ４０１からアプリケーション２０１の画面に遷移させる。
【００３１】
一方、出力サイズ指定ダイアログ４０１がディスプレイ１３０に表示された状態で、ユーザがキャンセルボタン４０５を押下すると、出力サイズ指定ダイアログ４０１でユーザが設定した内容は破棄され、出力サイズ指定ダイアログ４０１が閉じられる。また、ユーザからの入力を受け付ける画面が、出力サイズ指定ダイアログ４０１からアプリケーション２０１の画面（図３参照）に遷移する。
【００３２】
図５は、図４に示す出力サイズ指定ダイアログ４０１において、ユーザがＯＫボタン４０４を押下し、ユーザからの入力を受け付ける画面が、出力サイズ指定ダイアログ４０１からアプリケーション２０１の画面に遷移した状態を示している。文書表示領域３０４には、出力サイズ指定ダイアログ４０１で指定された長さと幅との間の比と同じ縦横比の原稿３０５が表示されている。またこのとき、出力サイズ指定ダイアログ４０１で指定された幅の値と長さの値とが、ＲＡＭ１０３等に保持されている。
【００３３】
図５に示す画面がディスプレイ１３０に表示された状態で、ユーザは原稿３０５に対して、文字やイラスト等のオブジェクトを配置することが可能である。印刷したい文書が完成したら、ユーザは、編集／印刷ボタン３０７を押下する。すると、ＣＰＵ１０１は、プラグイン２０２のモジュールにより、アプリケーション２０１を介して仮想プリンタドライバ２０４へ印刷を行うよう指示する。印刷指示を受けた仮想プリンタドライバ２０４は、前述したような中間データを生成する。
【００３４】
＜用紙設定ボタン押下時の処理について＞
以下、用紙設定ボタン３０６押下時の一連の処理について、図６を用いて説明する。図６に示す各処理は、ＣＰＵ１０１がプラグイン２０２を実行することで実現されるモジュールによって実行される。ユーザが用紙設定ボタン３０６を押下すると、一連の処理が開始して、ステップＳ６０１に進む。尚、以下では「ステップＳ〜」を単純に「Ｓ〜」と略記する。
【００３５】
Ｓ６０１において、ＣＰＵ１０１は、前述の出力サイズ指定ダイアログ４０１をディスプレイ１３０に表示する。本ステップ後、出力サイズ指定ダイアログ４０１に対するユーザの入力待ち状態となる。
【００３６】
出力サイズ指定ダイアログ４０１上でユーザがＯＫボタン４０４又はキャンセルボタン４０５を押下した場合、Ｓ６０２において、ＣＰＵ１０１は、押下されたボタンがＯＫボタン４０４か、又は、キャンセルボタン４０５か判定する。ＯＫボタン４０４が押下された場合、Ｓ６０３に進む一方、キャンセルボタン４０５が押下された場合、Ｓ６０９に進む。
【００３７】
Ｓ６０３において、ＣＰＵ１０１は、幅指定コントロール４０２に入力された値と長さ指定コントロール４０３に入力された値とを取得する。そして、ＣＰＵ１０１は、これらの入力値が正常な値か判定する。ここで、幅と長さとの各値について、正常でない値は予め定められている。正常でない値とは例えば、数値以外（文字等）、負値、プリンタ１４０でサポートされていない値、等である。また、コントロールに値が入力されていない状態でＯＫボタン４０４が押下された場合も、本ステップの判定結果は偽となる。本ステップの判定結果が真の場合、Ｓ６０５に進む一方、該判定結果が偽の場合、Ｓ６０４に進む。
【００３８】
Ｓ６０３でＮＯの場合、Ｓ６０４において、ＣＰＵ１０１は、幅指定コントロール４０２に入力された値と、長さ指定コントロール４０３に入力された値とで特定されるサイズが正常でない旨を示す画面をディスプレイ１３０に表示する。図７は、本ステップで表示する画面の一例として、本実施形態で採用する警告ダイアログ７０１を示す図である。警告ダイアログ７０１がディスプレイ１３０に表示された状態でユーザがＯＫボタン７０２を押下すると、Ｓ６０２に戻り、再度、出力サイズ指定ダイアログ４０１の入力待ち状態となる。
【００３９】
続けて、Ｓ６０３でＹＥＳの場合を説明する。尚、以下では、図４に示したように、出力サイズ指定ダイアログ４０１を介して、幅１０００ｍｍ、長さ３０００ｍｍが指定され、これらの値で特定されるサイズが、プリンタ１４０でサポートされているケースを取り上げながら説明する。
【００４０】
Ｓ６０５において、ＣＰＵ１０１は出力サイズ判定手段として機能し、出力サイズ指定ダイアログ４０１で指定された出力サイズが、アプリケーション２０１における最大用紙サイズ内に収まるか判定する。本ステップの判定結果が真の場合、Ｓ６０６を経ることなくＳ６０７に進む。この場合、ステップＳ６０６における用紙サイズを導出する処理は実行されず、用紙サイズは出力サイズと同じとして以降の処理が実行される。一方、本ステップの判定結果が偽の場合、Ｓ６０６に進む。本ステップの判定は、プラグイン２０２の最大用紙サイズ情報保持部２０３によりＲＡＭ１０３に保持された最大用紙サイズ情報を用いて、アプリケーション２０１における最大用紙サイズとユーザにより入力された出力サイズとを比較することで行う。
【００４１】
具体的には、最大用紙サイズ情報保持部２０３は、アプリケーション２０１において設定可能な最大用紙サイズ（最大ページサイズ）の幅、長さのそれぞれを示す情報を保持している。そして、出力サイズを特定する幅と最大用紙サイズを規定する幅との大小関係、及び、出力サイズを特定する長さと最大用紙サイズを規定する長さとの大小関係を判定する。そして、出力サイズを特定する幅が最大用紙サイズを規定する幅以下、かつ、出力サイズを特定する長さが最大用紙サイズを規定する長さ以下の場合、出力サイズが最大用紙サイズ内に納まると判定する。一方、出力サイズを特定する幅が最大用紙サイズを規定する幅より大きい、出力サイズを特定する長さが最大用紙サイズを規定する長さより大きい、これらの少なくとも１つを満たす場合、出力サイズが最大用紙サイズ内に収まらないと判定する。本実施例では、ユーザの入力した出力サイズ(幅１０００ｍｍ、長さ３０００ｍｍ)に対し、アプリケーション２０１における最大用紙サイズは、幅５５０ｍｍ、長さ５５０ｍｍであることから、出力サイズは最大用紙サイズ内に収まらないと判定されることとなる。
【００４２】
Ｓ６０６において、ＣＰＵ１０１は、用紙サイズを導出する処理（用紙サイズ導出処理とする）を実行する。本ステップで導出する用紙サイズとは、プラグイン２０２のモジュールがアプリケーション２０１に対して設定する原稿３０５の用紙サイズである。尚、用紙サイズ導出処理については、図８を用いて後述する。
【００４３】
Ｓ６０７において、ＣＰＵ１０１は、Ｓ６０６で導出した用紙サイズとユーザが入力した出力サイズとの情報を記憶する。本ステップで情報を記憶する記憶先は特に限定されないが、ＷｉｎｄｏｗｓＯＳを搭載したＰＣ１００ではレジストリ等が候補として挙げられる。尚、本実施例でも、用紙サイズと出力サイズとの情報をレジストリに記憶するものとする。
【００４４】
Ｓ６０８において、ＣＰＵ１０１は、アプリケーション２０１における用紙サイズを設定する。尚、本実施例では、用紙サイズとして、幅１８３．３ｍｍ、長さ５５０ｍｍが設定されるものとする。
【００４５】
Ｓ６０９において、ＣＰＵ１０１は、出力サイズ指定ダイアログ４０１の終了処理を実行する。具体的には、出力サイズ指定ダイアログ４０１を閉じ、ユーザからの入力を受け付ける画面を、出力サイズ指定ダイアログ４０１からアプリケーション２０１の画面に遷移させる。
【００４６】
＜用紙サイズ導出処理について＞
図８は、本実施形態における用紙サイズ導出処理（図６のＳ６０６）の詳細なフローチャートである。
【００４７】
Ｓ８０１において、ＣＰＵ１０１は、最大用紙サイズ情報保持部２０３によりＲＡＭ１０３に保持された最大用紙サイズの情報、即ち最大用紙サイズを特定する幅の値と長さの値とを取得する。尚、本実施例では、幅５５０ｍｍ、長さ５５０ｍｍが取得される。
【００４８】
Ｓ８０２において、ＣＰＵ１０１は、出力サイズの幅から最大用紙サイズの幅への倍率（倍率Ａとする）を算出する。尚、本実施例では、倍率Ａ＝５５％（＝ ５５０ｍｍ／１０００ｍｍ）と算出される。
【００４９】
Ｓ８０３において、ＣＰＵ１０１は、出力サイズの長さから最大用紙サイズの長さへの倍率（倍率Ｂとする）を算出する。尚、本実施例では、倍率Ｂ＝１８．３３３・・・％（＝ ５５０ｍｍ／３０００ｍｍ）と算出される。
【００５０】
Ｓ８０４において、ＣＰＵ１０１は、倍率Ａが倍率Ｂ以下か判定する。本ステップの判定結果が真の場合、Ｓ８０５に進む一方、該判定結果が偽の場合、Ｓ８０６に進む。尚、本実施例では、倍率Ａ＝５５％、倍率Ｂ＝１８．３３３・・％であるため、本ステップの判定結果は偽となり、Ｓ８０６に進むことになる。
【００５１】
出力サイズの幅から最大用紙サイズの幅への倍率が、出力サイズの長さから最大用紙サイズの長さへの倍率以下の場合（倍率Ａ≦倍率Ｂ）、Ｓ８０４でＹＥＳと判定され、Ｓ８０５において、ＣＰＵ１０１は、出力サイズから用紙サイズへの倍率を倍率Ａに決定する。これに対し、倍率Ａが倍率Ｂより大きい場合（Ｓ８０４でＮＯ）、Ｓ８０６において、ＣＰＵ１０１は、出力サイズから用紙サイズへの倍率を倍率Ｂに決定する。尚、本実施例では、出力サイズから用紙サイズへの倍率は、Ｓ８０６で１８．３３３・・・％と決定されることになる。
【００５２】
Ｓ８０７において、ＣＰＵ１０１は、ユーザが指定した出力サイズを特定する幅の値と長さの値とのそれぞれに、Ｓ８０５又はＳ８０６で決定した倍率を乗じることで、用紙サイズを特定するための幅と長さとを算出する。尚、本実施例では、用紙サイズの幅は１８３．３３３・・・ｍｍ（＝１０００ｍｍ×１８．３３３・・・％）、用紙サイズの長さは５５０ｍｍ（＝３０００ｍｍ×１８％）と算出される。以上が、本実施形態における用紙サイズ導出処理の内容である。
【００５３】
尚、Ｓ８０７において算出された用紙サイズの幅または長さが小数点以下の値を含む場合、Ｓ６０８では、アプリケーション２０１のページサイズ設定に応じた値が設定される。例えば、アプリケーション２０１において、小数第一位まで設定可能である場合、上述の例では、用紙サイズの幅、長さとして１８３．３ｍｍ、５５０ｍｍが設定される。
【００５４】
図８およびＳ６０８における処理によれば、幅、長さの少なくとも一方が最大（上記の例では５５０ｍｍ）である用紙サイズをアプリケーション２０１のページサイズ設定に設定することができる。これにより、後述する拡大処理において、より小さな拡大率で拡大することができるため、拡大による画像劣化をより小さくすることができる。
【００５５】
尚、図８およびＳ６０８における処理は上述した例に限らず、例えばＳ８０２、Ｓ８０３において、倍率Ａ，Ｂにおける小数点以下の値を切り捨てても良い。上述した例では、倍率Ｂが１８％となる。そして、Ｓ８０７では、用紙サイズの幅として１８０ｍｍ、用紙サイズの長さ５４０ｍｍが算出される。この場合でも、用紙サイズの長さとして、最大の長さ（５５０ｍｍ）に近い長さ（５４０ｍｍ）をアプリケーション２０１のページサイズとして設定することができるため、後述する拡大処理による画像劣化を抑えることができる。
【００５６】
図５は、用紙サイズの設定を行った後のアプリケーション２０１の画面を示す。本実施例では図示するように、設定された原稿サイズ、即ち幅１８３．３ｍｍ、長さ５５０ｍｍの原稿３０５が表示されることとなる。即ち、出力サイズ指定ダイアログ４０１で指定された長さと幅に対応するアスペクト比であり、且つ、最大用紙サイズに収まるページサイズのページが、アプリケーション２０１により表示される。この状態で、ユーザは、原稿３０５に対して、文字やイラスト等のオブジェクトを配置し、原稿３０５を編集することができる。アプリケーション２０１により表示されているページ（原稿３０５）のアスペクト比は、出力サイズのアスペクト比であるため、ユーザは、印刷結果をより明確にイメージしながら、オブジェクトを配置などの原稿３０５の編集を行うことができる。そして、印刷する文書が完成した場合、ユーザは編集／印刷ボタン３０７を押下する。以下、編集／印刷ボタン３０７押下時の一連の処理について、図９〜図１１を用いて説明する。
【００５７】
＜編集／印刷ボタン押下時、プラグイン側で実行される処理について＞
まず、ＣＰＵ１０１がプラグイン２０２を実行することで実現されるモジュールにより実行される一連の処理について、図９を用いて説明する。ユーザが編集／印刷ボタン３０７を押下すると、一連の処理が開始して、ステップＳ９０１に進む。
【００５８】
Ｓ９０１において、ＣＰＵ１０１は、Ｓ６０７で記憶された用紙サイズと出力サイズとの情報を取得する。尚、本実施例では前述の通り、これらの情報はレジストリに記憶されているので、ＣＰＵ１０１は、レジストリにアクセスして、用紙サイズと出力サイズとの情報を取得する。
【００５９】
Ｓ９０２において、ＣＰＵ１０１は、Ｓ９０１で取得した情報により特定される用紙サイズと、アプリケーション２０１で現在設定されている原稿３０５の用紙サイズ（ページ設定におけるページサイズ）とを比較し、これらの用紙サイズが一致するか判定する。本ステップの判定結果が真の場合、Ｓ９０３に進む一方、該判定結果が偽の場合、Ｓ９０４に進む。
【００６０】
上述したＳ６０８においてアプリケーション２０１に用紙サイズが設定された後、ユーザが用紙サイズの変更を行わずに原稿３０５に対する編集を行い、編集／印刷ボタンを押下した場合、Ｓ９０２でＹｅｓと判定される。一方、Ｓ６０８においてアプリケーション２０１に用紙サイズが設定された後、ユーザが用紙サイズの変更を行い、且つ編集／印刷ボタンを押下した場合、Ｓ９０２でＮｏと判定される。
【００６１】
Ｓ９０２でＹＥＳの場合、Ｓ９０３において、ＣＰＵ１０１は、Ｓ９０１で取得した出力サイズの情報を用いて、仮想プリンタドライバ２０４に対して印刷実行を指示する際に出力ファイル名として指定するファイル名称を生成する。本実施形態では、次の式（１）に示すような、出力サイズ幅と出力サイズ長さとを含む書式で、出力ファイル名を生成する。
【００６２】
【数１】
2019204322.tif 000003
【００６３】
尚、本実施例では、レジストリに記憶された用紙サイズとアプリケーション２０１における原稿３０５の用紙サイズとが一致した場合、式（１）に従い、出力ファイル名“ＷｏｒｄＰｌｕｇｉｎ＿１０００＿３０００.ｐｒｎ”が生成されることとする。
【００６４】
一方、Ｓ９０２でＮＯの場合、Ｓ９０４において、ＣＰＵ１０１は、仮想プリンタドライバ２０４に対して印刷を指示する際に出力ファイル名として指定するファイル名称を生成する。本ステップはＳ９０３と異なり、出力サイズ幅と出力サイズ長さとを含まない書式で、出力ファイル名を生成する。尚、本実施例では、レジストリに記憶された用紙サイズとアプリケーション２０１における原稿３０５の用紙サイズとが一致しない場合、出力ファイル名“ＷｏｒｄＰｌｕｇｉｎ.ｐｒｎ”が生成されることとする。
【００６５】
Ｓ９０５において、ＣＰＵ１０１は、Ｓ９０３又はＳ９０４で生成した出力ファイル名を用いて、プラグインソフトウェア２０２によりアプリケーション２０１に対する指示を行う。この指示により、アプリケーション２０１は、仮想プリンタドライバ２０４に、該出力ファイル名の印刷ファイルの出力を依頼する。この依頼では、アプリケーション２０１から仮想プリンタドライバ２０４に、アプリケーション２０１で作成したデータ（文書、画像等）と、印刷ファイルのファイル名が渡される。図１０は、Ｓ９０５でプラグイン２０２のモジュールがアプリケーション２０１を介して仮想プリンタドライバ２０４に印刷の実行を指示する際に用いられる命令文の一例を示している。図示するように、引数「ＯｕｔｐｕｔＦｉｌｅＮａｍｅ」として、Ｓ９０３又はＳ９０４で生成した出力ファイル名を含むファイルパスを指定し、引数「ＰｒｉｎｔＴｏＦｉｌｅ」に「Ｔｒｕｅ」を指定する。これにより、印刷ファイルの作成を伴う印刷（所謂、ファイル出力印刷）を行うよう指示している。Ｓ９０５の処理が完了すると、図９に示す一連の処理は終了する。Ｓ９０５の処理によって、仮想プリンタドライバ２０４は、ＯＳを介してアプリケーション２０１より、アプリケーション２０１において作成されたデータと、ファイル名を含む印刷ジョブを受け取ることとなる。また、上記ファイル出力印刷はアプリケーション２０１が標準的に備える機能である。また、アプリケーション２０１は、プリンタドライバ２０６のような通常のプリンタドライバに印刷を実行させる場合と同様の処理により、印刷ジョブを仮想プリンタドライバ２０４に送信する。そのため、アプリケーション２０１は、仮想プリンタドライバ２０４に合わせた特別な機能を備えなくても、仮想プリンタドライバ２０４に対して印刷ファイルを出力することができる。以上が、本実施形態における、編集／印刷ボタン押下時、プラグイン側で実行される処理の内容である。
【００６６】
＜編集／印刷ボタン押下時、仮想プリンタドライバ側で実行される処理について＞
以下、印刷ジョブを受け取った仮想プリンタドライバ２０４側で実行される処理について、図１１を用いて説明する。
【００６７】
Ｓ１１０１において、ＣＰＵ１０１は、印刷ジョブに含まれる出力ファイル名を取得する。この出力ファイル名は、Ｓ９０５でプラグイン２０２のモジュールが指定したものである。また、仮想プリンタドライバ２０４に対して印刷実行を指示した不特定のアプリケーションによって指定された出力ファイル名の場合もある。
【００６８】
Ｓ１１０２において、ＣＰＵ１０１は出力ファイル名判定手段として機能し、Ｓ１１０１で取得した出力ファイル名が特定の書式で記述されているか判定する。本ステップの判定結果が真の場合、Ｓ１１０３に進む一方、該判定結果が偽の場合、Ｓ１１０５に進む。尚、本実施例では、前述した式（１）に示す書式で出力ファイル名が記述されているか判定するものとする。
【００６９】
まず、Ｓ１１０２でＹＥＳの場合を説明する。この場合、Ｓ１１０３において、ＣＰＵ１０１は、出力ファイル名から「出力サイズ幅」および「出力サイズ長さ」を取り出し、出力サイズを特定する。尚、本実施例では、前述の出力ファイル名“ＷｏｒｄＰｌｕｇｉｎ＿１０００＿３０００.ｐｒｎ”を含む印刷ジョブを受け取った場合、出力サイズ幅１０００ｍｍ、出力サイズ長さ３０００ｍｍを取得する。
【００７０】
Ｓ１１０４において、ＣＰＵ１０１は、アプリケーション２０１からＯＳを介して受け取った画像データに対して、Ｓ１１０３で特定した出力サイズまで変倍する変倍加工を伴う画像処理を実行することで、印刷対象となる中間データを生成する。そして、ＣＰＵ１０１は、Ｓ１１０５において、Ｓ１１０４において生成された中間データと、Ｓ１１０３において特定された出力サイズを、レイアウト編集アプリケーション２０５に渡す。具体的には、例えば生成した中間データおよび出力サイズをＲＡＭ１０３内等の所定の場所に一時的に記憶する。レイアウト編集アプリケーション２０５は、該所定の場所に情報が記憶されると、該記憶された情報を取得する。または、Ｓ１１０５において、レイアウト編集アプリケーション２０５の起動および中間データと出力サイズの記憶を行い、起動したレイアウト編集アプリケーション２０５が自動的に中間データと出力サイズを上記所定の場所から読み出しても良い。
【００７１】
続けて、Ｓ１１０２でＮＯの場合を説明する。この場合、Ｓ１１０６において、ＣＰＵ１０１は、アプリケーション２０１からＯＳを介して受け取った画像データに対して、等倍サイズで（つまり、変倍加工を伴わない）画像処理を実行することで、中間データを生成する。そして、ＣＰＵ１０１は、Ｓ１１０７において、Ｓ１１０６において生成された中間データをレイアウト編集アプリケーション２０５に渡す。具体的には、例えば生成した中間データをＲＡＭ１０３内等の所定の場所に一時的に記憶する。レイアウト編集アプリケーション２０５は、該所定の場所に情報が記憶されると、該記憶された情報を取得する。または、Ｓ１１０７において、レイアウト編集アプリケーション２０５の起動および中間データの記憶を行い、起動したレイアウト編集アプリケーション２０５が自動的に中間データを上記所定の場所から読み出しても良い。Ｓ１１０７においては、Ｓ１１０５とは異なり、出力サイズはレイアウト編集アプリケーション２０５に渡されない。尚、本実施例では、前述した出力ファイル名“ＷｏｒｄＰｌｕｇｉｎ.ｐｒｎ”を含む印刷ジョブを受け取った場合、Ｓ１１０２でＮＯと判定され、Ｓ１１０６に進むこととなる。
【００７２】
上述のＳ１１０５またはＳ１１０７における処理によりレイアウト編集アプリケーション２０５に渡された中間データが、レイアウト編集アプリケーション２０５による印刷レイアウトの編集に用いられる。具体的には、レイアウト編集アプリケーション２０５は、印刷レイアウトに関するユーザ指示に応じて、Ｓ１１０５またはＳ１１０７において渡された中間データが加工可能となる。また、Ｓ１１０５においてレイアウト編集アプリケーション２０５が出力サイズを取得すると、印刷設定の用紙サイズとして自動的に該出力サイズを設定する。
【００７３】
そして、レイアウト編集アプリケーション２０５は、印刷設定、中間データをプリンタドライバ２０６に送信することで、プリンタドライバ２０６に印刷を指示する。プリンタドライバ２０６は、印刷設定に従って中間データをプリンタ１４０が解釈可能な印刷データに変換し、該印刷データと印刷設定を含む印刷ジョブをプリンタ１４０に送出する。そして、プリンタ１４０は、該印刷ジョブに含まれている該印刷データを、該印刷設定に従って印刷する。例えば、印刷設定の用紙サイズとして出力サイズが設定されている場合、プリンタ１４０において、出力サイズに応じた大きさの画像が印刷される。
【００７４】
上述のように、Ｓ６０８においてアプリケーション２０１に用紙サイズが設定された後、ユーザが用紙サイズの変更を行わずに原稿３０５に対する編集を行い、編集／印刷ボタンを押下した場合、Ｓ９０２でＹｅｓと判定される。そして、Ｓ９０３の処理により、出力サイズを含むファイル名が生成されるため、Ｓ１１０２でＹｅｓと判定され、Ｓ１１０３〜Ｓ１１０５の処理が実行される。即ち、図４に示す画面で出力サイズを指定したユーザが、該出力サイズに応じた印刷を希望して編集／印刷ボタンを押下した場合、該出力サイズに応じた中間データが自動的に生成され、該出力サイズが自動的に印刷設定の用紙サイズとなる。そのため、レイアウト編集アプリケーション２０５により拡大処理を行ったり、印刷設定として出力サイズを指定したりしなくても、ユーザがアプリケーション２０５に対して印刷指示を行う事で、該出力サイズに応じた大きさの画像を容易に印刷させる事ができる。また、レイアウト編集アプリケーション２０５は、Ｓ１１０５における処理により出力サイズを取得した場合、ユーザによる印刷指示を受けずに、プリンタドライバ２０６に出力サイズに応じた印刷を指示しても良い。即ち、ユーザは、編集／印刷ボタン３０７を押下した後、改めて印刷指示を行わなくても、出力サイズに応じた大きさの画像をプリンタ１４０に印刷させることができる。
【００７５】
一方、Ｓ６０８においてアプリケーション２０１に用紙サイズが設定された後、ユーザが用紙サイズの変更を行い、且つ編集／印刷ボタンを押下した場合、Ｓ９０２でＮｏと判定される。また仮想プリンタドライバ２０４によりＳ１１０６、Ｓ１１０７の処理が実行される。このとき、レイアウト編集アプリケーション２０５では、Ｓ１１０３〜Ｓ１１０５の処理が実行された場合とは異なり、出力サイズに応じた拡大が行われていない中間データが加工対象となる。また、印刷設定の用紙サイズとして出力サイズに自動的に設定されることはない。例えばユーザが図４に示す画面で出力サイズを指定したものの、図５に示す表示において確認した原稿３０５のアスペクト比が所望のものでなく、アプリケーション２０５の用紙サイズを変更したとする。この場合、Ｓ１１０６、Ｓ１１０７の処理により、所望のものでなかった出力サイズに応じて自動的に拡大処理が行われしまうことや、所望のものでなかった出力サイズが自動的に印刷設定として設定されてしまうことを防ぐことができる。
【００７６】
以上が、本実施形態における、編集／印刷ボタン押下時、仮想プリンタドライバ側で実行される処理の内容である。
【００７７】
＜本実施形態の効果について＞
以上説明したように、プラグイン２０２は、アプリケーション２０１を介して仮想プリンタドライバ２０４に、所定の書式の出力ファイル名を有する印刷ファイルを用いてファイル出力印刷を実行するよう指示する。印刷ジョブを受け取った仮想プリンタドライバ２０４は、出力ファイル名が所定の書式で記述されている場合に、出力サイズに関する情報を出力ファイル名から取得する。このとき、アプリケーション２０１は、プリンタドライバ２０６のような通常のプリンタドライバに対するファイル出力印刷の指示と同様の処理で、仮想プリンタドライバ２０４にファイル出力印刷を指示している。また、プリンタドライバ２０６は、アプリケーション２０１のような通常のアプリケーションからの印刷ジョブの取得、印刷制御と同様の処理で、レイアウト編集アプリケーション２０５からの印刷ジョブの取得、印刷制御を行う。
【００７８】
そのため、アプリケーションの改変やプリンタドライバに拡張ＡＰＩを追加しなくても、アプリケーションからプリンタドライバに、印刷設定情報として、アプリケーションでサポートしていない出力サイズの情報を伝達することができる。
【００７９】
［第２の実施形態］
本実施形態では、第１の実施形態で説明した、プラグイン２０２と仮想プリンタドライバ２０４とを有する印刷システムにおいて、第１の実施形態とは別の印刷設定情報を伝達するケースを説明する。ここで、本実施形態では、アプリケーション２０１上で、ユーザが編集/印刷ボタン３０７を押下したときに、プラグイン２０２のモジュールは、編集／印刷設定ダイアログを表示するものとする（図１２参照）。そして、ユーザが編集／印刷設定ダイアログ１２０１で設定した内容を、アプリケーション２０１から仮想プリンタドライバ２０４に対して伝達するものとする。尚、以下では既述の実施形態との差分について主に説明し、既述の実施形態と同様の内容については説明を適宜省略する。
【００８０】
＜編集／印刷設定ダイアログについて＞
図１２は、編集／印刷設定ダイアログ１２０１を示す図である。本実施形態では前述したように、図３に示す画面がディスプレイ１３０に表示された状態で、ユーザが編集／印刷ボタン３０７を押下すると、編集／印刷設定ダイアログ１２０１が表示される。また、このとき、ユーザからの入力を受け付ける画面が、図３に示す画面から編集／印刷設定ダイアログ１２０１に遷移する。
【００８１】
ロール紙幅指定コントロール１２０２は、ユーザが作成した原稿３０５をプリンタ１４０が備えるロール紙の幅一杯に変倍して印刷するために、プリンタ１４０に装着されたロール紙の幅を指定するコントロールである。チェックボックス１２０３は、ユーザが作成した原稿３０５をフチなしで印刷することを指定するコントロールである。
【００８２】
実行ボタン１２０４は、編集／印刷設定ダイアログ１２０１で設定した内容に基づき、印刷実行を仮想プリンタドライバ２０４に指示するためのコントロールである。キャンセルボタン１２０５は、編集／印刷設定ダイアログ１２０１で設定した内容を破棄して、ユーザからの入力を受け付ける画面を、編集／印刷設定ダイアログ１２０１からアプリケーション２０１の画面に遷移させるためのコントロールである。
【００８３】
＜編集/印刷ボタン押下時の処理について＞
以下、編集／印刷ボタン３０７押下時の一連の処理について、図１３を用いて説明する。図１３に示す各処理は、ＣＰＵ１０１がプラグイン２０２を実行することで実現されるモジュールによって実行される。ユーザが編集／印刷ボタン３０７を押下すると、一連の処理が開始して、ステップＳ１３０１に進む。
【００８４】
まず、Ｓ１３０１において、ＣＰＵ１０１は、編集／印刷設定ダイアログ１２０１を表示する。本ステップ後、編集／印刷設定ダイアログ１２０１に対するユーザの入力待ち状態となる。
【００８５】
編集／印刷設定ダイアログ１２０１上でユーザが実行ボタン１２０４又はキャンセルボタン１２０５を押下した場合、Ｓ１３０２において、ＣＰＵ１０１は、押下されたボタンが実行ボタン１２０４か、又は、キャンセルボタン１２０５か判定する。実行ボタン１２０４が押下された場合、Ｓ１３０３に進む一方、キャンセルボタン１２０５が押下された場合、一連の処理は終了する。
【００８６】
Ｓ１３０３において、ＣＰＵ１０１は、仮想プリンタドライバ２０４に対して印刷実行を指示する際に出力ファイル名として指定するファイル名称を生成する。本実施形態では、編集／印刷設定ダイアログ１２０１で設定された出力サイズとしてのロール紙幅と、フチなし印刷を行うか否かを示すフチ設定が入力される。そして、その入力の内容に応じて、次の式（２）に示すような、ロール紙幅とフチ有無パラメータとを含む書式で、出力ファイル名を生成する。
【００８７】
【数２】
2019204322.tif 000004
【００８８】
尚、式（２）において、フチ有無パラメータは、フチあり印刷を示す“０”と、フチなし印刷を示す“１”との何れかの値を取る。
【００８９】
Ｓ１３０４において、ＣＰＵ１０１は、Ｓ１３０３で生成した出力ファイル名を用いて、仮想プリンタドライバ２０４を介して印刷するよう、アプリケーション２０１に指示する。印刷指示の方法については、第１の実施形態（図９のＳ９０５）と同様の方法を採用するものとする。具体的には、引数「ＯｕｔｐｕｔＦｉｌｅＮａｍｅ」として、Ｓ１３０３で生成した出力ファイル名を含むファイルパスを指定し、引数「ＰｒｉｎｔＴｏＦｉｌｅ」に「Ｔｒｕｅ」を指定する。以上が、本実施形態における編集/印刷ボタン押下時の処理の内容である。
【００９０】
＜仮想プリンタドライバ側で実行される処理について＞
以下、印刷ジョブを受け取った仮想プリンタドライバ２０４側で実行される処理について、図１４を用いて説明する。
【００９１】
Ｓ１４０１において、ＣＰＵ１０１は、印刷ジョブに含まれる出力ファイル名を取得する。この出力ファイル名は、Ｓ１３０４でプラグイン２０２のモジュールが指定したものである。また、仮想プリンタドライバ２０４に対して印刷実行を指示した不特定のアプリケーションによって指定された出力ファイル名の場合もある。
【００９２】
Ｓ１４０２において、ＣＰＵ１０１は、Ｓ１４０１で取得した出力ファイル名が特定の書式で記述されているか判定する。本ステップの判定結果が真の場合、Ｓ１４０３に進む一方、該判定結果が偽の場合、Ｓ１４０５に進む。尚、本実施例では、前述した式（２）に示す書式で出力ファイル名が記述されているか判定するものとする。
【００９３】
まず、Ｓ１４０２でＹＥＳの場合を説明する。この場合、Ｓ１４０３において、ＣＰＵ１０１は、出力ファイル名から「ロール紙幅」および「フチ有無パラメータ」を取り出す。
【００９４】
Ｓ１４０４において、ＣＰＵ１０１は、アプリケーション２０１からＯＳを介して受け取った画像データに対して、Ｓ１４０３で取得した情報に基づく加工を伴う画像処理を実行することで、中間データを生成する。具体的には、画像の幅を「ロール紙幅」と一致するサイズとなるよう変倍したり、「フチなし印刷」指定時には、プリンタ１４０にてフチなしで印刷できるよう「ロール紙幅」より若干大きなサイズまで幅を拡大したりする。Ｓ１４０５において、ＣＰＵ１０１は、Ｓ１４０４において生成された中間データと、Ｓ１４０３で取得した印刷設定をレイアウト編集アプリケーション２０５に渡す。印刷設定には、Ｓ１４０３において取得されたロール紙幅と、フチ有無パラメータが含まれる。レイアウト編集アプリケーション２０５に対する情報の渡し方は、Ｓ１１０５と同様である。レイアウト編集アプリケーション２０５は、Ｓ１４０５における処理により取得したロール紙幅、フチ有無パラメータを印刷設定の用紙サイズとして自動的に設定する。
【００９５】
続けて、Ｓ１４０２でＮＯの場合を説明する。この場合、Ｓ１４０６において、ＣＰＵ１０１は、アプリケーション２０１からＯＳを介して受け取った画像データに対して、等倍サイズで（つまり、変倍加工を伴わない）画像処理を実行することで、中間データを生成する。そして、ＣＰＵ１０１は、Ｓ１４０７において、Ｓ１４０６において生成された中間データをレイアウト編集アプリケーション２０５に渡す。レイアウト編集アプリケーション２０５に対する情報の渡し方は、Ｓ１１０７と同様である。以上が、本実施形態における仮想プリンタドライバ側で実行される処理の内容である。
【００９６】
尚、本実施形態では、出力サイズとしてロール紙の幅のみが指定される例を示したが、これに限らず、第１の実施形態と同様に用紙の幅と長さが指定され、且つフチなし印刷を行うか否かが指定されても良い。
【００９７】
＜本実施形態の効果について＞
本実施形態により、アプリケーションの改変やプリンタドライバに拡張ＡＰＩを追加することなく、アプリケーションからプリンタドライバに、印刷設定情報として、アプリケーションでサポートしていないフチなし印刷に関する設定情報を伝達することができる。
【００９８】
［その他の実施形態］
尚、前述の実施形態では、プリンタドライバに伝達する印刷設定情報として、アプリケーションでサポートしない出力サイズの情報や、フチなし印刷に関する設定情報を取り上げた。しかし、プリンタドライバに伝達する情報はこれらに限られず、本発明により、任意の印刷設定情報をプリンタドライバに伝達することができる。
【００９９】
また、前述の実施形態を適宜組み合わせて構成しても良い。
【０１００】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０１】
１００・・・情報処理装置（ＰＣ）
１４０・・・プリンタ
２０１・・・アプリケーション
２０２・・・プラグインソフトウェア
２０４・・・仮想プリンタドライバ
２０６・・・プリンタドライバ
【図１】
2019204322.tif 000005
【図２】
2019204322.tif 000006
【図３】
2019204322.tif 000007
【図４】
2019204322.tif 000008
【図５】
2019204322.tif 000009
【図６】
2019204322.tif 000010
【図７】
2019204322.tif 000011
【図８】
2019204322.tif 000012
【図９】
2019204322.tif 000013
【図１０】
2019204322.tif 000014
【図１１】
2019204322.tif 000015
【図１２】
2019204322.tif 000016
【図１３】
2019204322.tif 000017
【図１４】
2019204322.tif 000018
【図１５】
2019204322.tif 000019