(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-23
(45)【発行日】2024-09-02
(54)【発明の名称】プログラム及び制御方法
(51)【国際特許分類】
G06F 3/12 20060101AFI20240826BHJP
【FI】
G06F3/12 328
G06F3/12 350
G06F3/12 353
G06F3/12 303
(21)【出願番号】P 2019239037
(22)【出願日】2019-12-27
【審査請求日】2022-12-15
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】川嵜 敬二
【審査官】征矢 崇
(56)【参考文献】
【文献】特開2019-197277(JP,A)
【文献】特開2019-160050(JP,A)
【文献】特開2019-175330(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F3/12
B41J29/00-29/70
B41J5/00-5/52;21/00-21/18
(57)【特許請求の範囲】
【請求項1】
印刷データを生成する印刷データ生成ソフトウェアのサポートしていない機能を拡張するための拡張アプリケーションのプログラムであって、
コンピュータに、
前記印刷データ生成ソフトウェアがサポートしていない機能であり、1枚の用紙の同じ面に複数のページが印刷されるよう前記複数のページを割り付ける割り付け印刷機能の設定をユーザから受け付ける画面を表示部に表示させるステップと、
前記割り付け印刷機能が設定された場合に、前記印刷データ生成ソフトウェアがサポートしている機能である印刷データ生成機能に関連する解像度を指定するステップと、
前記指定された解像度に
応じたサイズの印刷データを前記印刷データ生成ソフトウェアに生成させ
、前記印刷データ生成ソフトウェアにより生成された印刷データに含まれる複数のページを1ページに割り付けるステップと、
を実行させることを特徴とするプログラム。
【請求項2】
前記印刷データ生成ソフトウェアは、オペレーティングシステムのパッケージに同梱されていることを特徴とする請求項1
に記載のプログラム。
【請求項3】
前記印刷データ生成ソフトウェアは、クラスドライバであることを特徴とする請求項1
または2に記載のプログラム。
【請求項4】
前記印刷データ生成ソフトウェアは、IPP Class Driverであることを特徴とする請求項1から
3のいずれか1項に記載のプログラム。
【請求項5】
前記印刷データ生成ソフトウェアは、前記割り付け印刷機能が指定されても、前記印刷データ生成ソフトウェアにより生成された印刷データに含まれる複数のページを1ページに割り付ける処理を実行しないことを特徴とする請求項1から
4のいずれか1項に記載のプログラム。
【請求項6】
前記解像度は、前記複数のページに含まれるページの数に基づいて決まることを特徴とする請求項1から
5のいずれか1項に記載のプログラム。
【請求項7】
印刷データを生成する印刷データ生成ソフトウェアのサポートしていない機能を拡張するための拡張アプリケーションが動作可能な情報処理装置の制御方法であって、
前記印刷データ生成ソフトウェアがサポートしていない機能であり、1枚の用紙の同じ面に複数のページが印刷されるよう前記複数のページを割り付ける割り付け印刷機能の設定をユーザから受け付ける画面を表示部に表示させるステップと、
前記割り付け印刷機能が設定された場合に、前記印刷データ生成ソフトウェアがサポートしている機能である印刷データ生成機能に関連する解像度情報を指定するステップと、
前記指定された解像度に
応じたサイズの印刷データを前記印刷データ生成ソフトウェアに生成させ
、前記印刷データ生成ソフトウェアにより生成された印刷データに含まれる複数のページを1ページに割り付けるステップと、
を備えることを特徴とする制御方法。
【請求項8】
前記印刷データ生成ソフトウェアは、オペレーティングシステムのパッケージに同梱されていることを特徴とする請求項
7に記載の制御方法。
【請求項9】
前記印刷データ生成ソフトウェアは、クラスドライバであることを特徴とする請求項
7または8に記載の制御方法。
【請求項10】
前記印刷データ生成ソフトウェアは、IPP Class Driverであることを特徴とする請求項
7から
9のいずれか1項に記載の制御方法。
【請求項11】
前記印刷データ生成ソフトウェアは、前記割り付け印刷機能が指定されても、前記印刷データ生成ソフトウェアにより生成された印刷データに含まれる複数のページを1ページに割り付ける処理を実行しないことを特徴とする請求項
7から
10のいずれか1項に記載の制御方法。
【請求項12】
前記解像度は、前記複数のページに含まれるページの数に基づいて決まることを特徴とする請求項
7から
11のいずれか1項に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム及び制御方法に関する。特に、拡張アプリケーションの技術に関する。
【背景技術】
【0002】
印刷装置の制御用ソフトウェアとしてホストコンピュータにインストールされたプリンタドライバを利用し、ホストコンピュータに接続された印刷装置に対して印刷指示を行う構成が知られている。ホストコンピュータには、基本ソフトウェアであるオペレーティングシステム(OS)がインストールされており、プリンタドライバはそのOSの規定する仕様に従って構成され、OSから呼び出されて動作する。印刷装置を提供するベンダは、OSの仕様に適合するプリンタドライバを提供することにより、そのOSを用いて印刷装置に印刷を指示する手段を提供することができる。
【0003】
近年、Windows(登録商標)において、複数のベンダの提供する印刷装置で共通して利用可能な標準的なクラスドライバ(以下、「標準ドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、OSのパッケージの中に同梱されており、ホストコンピュータに任意の印刷装置を接続することにより簡易に利用可能となる。よって、印刷装置に適した機種固有のプリンタドライバを別途インストールする必要が無く、利便性が高い。また、標準ドライバは、接続した印刷装置から取得した情報に基づき生成されたPrintCapabilitiesに応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、1つの標準ドライバを利用しているにも関わらず、接続した印刷装置の能力に応じた印刷機能を指定することができる。
【0004】
標準ドライバには機能拡張用のアプリケーション(以下、「拡張アプリケーション」とも呼ぶ)を関連付けることができる。拡張アプリケーションは、印刷装置を提供するベンダが提供することができる。ベンダはこの拡張アプリケーションを提供することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。特許文献1には、拡張アプリケーションにより、スタンプ機能等の機能を拡張する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1の拡張アプリケーションは、スプールファイルを編集することができる。拡張アプリケーションは、スプールファイルを編集することで、割り付け印刷機能を実現することができる。しかしながら、標準ドライバの機能を拡張する拡張アプリケーションがより良い機能を提供するためには、さらなる工夫が必要となる。
【課題を解決するための手段】
【0007】
上述のような課題を解決するため、本発明のプログラムの一態様は、印刷データを生成する印刷データ生成ソフトウェアのサポートしていない機能を拡張するための拡張アプリケーションのプログラムであって、コンピュータに、前記印刷データ生成ソフトウェアがサポートしていない機能であり、1枚の用紙の同じ面に複数のページが印刷されるよう前記複数のページを割り付ける割り付け印刷機能の設定をユーザから受け付ける画面を表示させるステップと、前記割り付け印刷機能が設定された場合に、前記印刷データ生成ソフトウェアがサポートしている機能である印刷データ生成機能に関連する解像度を指定するステップと、前記指定された解像度応じたサイズの印刷データを前記印刷データ生成ソフトウェアに生成させ、前記印刷データ生成ソフトウェアにより生成された印刷データに含まれる複数のページを1ページに割り付ける。
【発明の効果】
【0008】
本発明の一態様により、印刷データ生成ソフトウェアがサポートしていない機能であり、1枚の用紙の同じ面に複数のページが印刷されるよう前記複数のページを割り付ける割り付け印刷機能の設定をユーザから受け付ける画面を表示させ、割り付け印刷機能が設定された場合に、印刷データ生成ソフトウェアがサポートしている機能である印刷データ生成機能に関連する解像度を指定し、指定された解像度に応じたサイズの印刷データを印刷データ生成ソフトウェアに生成させ、印刷データ生成ソフトウェアにより生成された印刷データに含まれる複数のページを1ページに割り付けることができる。
【図面の簡単な説明】
【0009】
【
図1】印刷システムのハードウェア構成を示すブロック図。
【
図3】印刷機能拡張ユニットの印刷機能情報編集処理のフローチャート。
【
図8】印刷設定編集ユニットの印刷設定変更処理のフローチャート。
【
図10】印刷データ編集ユニットの印刷データ編集処理のフローチャート。
【
図13】印刷機能拡張ユニットの印刷機能情報編集処理のフローチャート。
【
図14】印刷設定編集ユニットの印刷設定変更処理のフローチャート。
【
図16】印刷設定編集ユニットの印刷設定変更処理のフローチャート。
【
図17】印刷データ編集ユニットの印刷データ編集処理のフローチャート。
【発明を実施するための形態】
【0010】
以下、添付図面を参照して本発明の実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【0011】
<<実施形態1>>
<印刷システムのハードウェア構成>
図1は、印刷システムのハードウェア構成を示すブロック図である。本図において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び入出力インタフェース116を有する。また、入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。
【0012】
ROM112には、初期化プログラムが格納されている。外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、その他の各種のデータが格納されている。RAM113は、外部記憶装置114にストアされる各種のプログラムの実行の際のワークメモリ等として使用され、各種プログラムがホストコンピュータ101内で動作可能となっている。
【0013】
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理を実行する。デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。なお、印刷装置は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明するが、他の方法(例えば電子写真方式)で印刷が実行されても良い。また、ホストコンピュータ101は、デスクトップパソコンでも、スマートフォンでも、ノートパソコンでも構わない。
【0014】
<印刷システムの構成>
図2は、印刷システムの構成を模式的に示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)10を搭載したホストコンピュータ101を用いた印刷システムを前提として説明する。
図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の一般的な構成を示す図である。
【0015】
描画アプリケーション201は印刷されるコンテンツ(描画データ)を作成するソフトウェアである。例えば、文書作成アプリケーションや表計算アプリケーションが相当する。描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報はPrintTicket(以下、「PT」)とも呼ばれる。
【0016】
描画アプリケーション201は、印刷設定情報を出力するために、印刷データ生成ソフトウェア202、OS、もしくは描画アプリケーション201、のうちいずれかが提供する印刷設定画面を表示させる事ができる。印刷設定画面は、印刷データ生成ソフトウェア202から取得する能力情報(印刷設定として設定可能な情報)に従い、設定可能な印刷機能を示す設定アイテム(以下、「コントロールアイテム」とも呼ぶ)と、その設定値を示すコントロールアイテムを含む。能力情報は、PrintCapabilities(以下、「PC」)とも呼ばれる。印刷データ生成ソフトウェア202は、印刷機能情報203に基づき、PCを決定する。印刷機能情報203は、設定可能なすべての印刷機能とその設定値、並びに、設定値同士の排他関係が記載されている印刷機能を示すデータである。印刷機能情報203は、PDC(Print Device Capabilities)とも呼ばれる。印刷機能情報203は、印刷データ生成ソフトウェア202の構成ファイルに含まれ、変更不可能なファイルとして外部記憶装置114に配置される。若しくは、印刷データ生成ソフトウェア202により、印刷機能情報203は動的に生成されることもできる。具体的には、印刷データ生成ソフトウェア202もしくはOSは、印刷装置102から印刷装置の属性データを取得し、取得した属性データ内の属性情報に応じて印刷機能情報203を生成するよう構成することができる。なお、動的に印刷機能情報203が生成される場合、生成された印刷機能情報203は編集可能である。なお、印刷装置102から取得される印刷装置の属性データとは、印刷装置に対してIPP(Internet Print Protocol)のGet-Printer-Attributesオペレーションを発行することにより取得するレスポンスである。レスポンスの中には、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報とその属性情報に関連する設定値を含む。このレスポンスはRAM113に保存される。
【0017】
このように構成することで、印刷データ生成ソフトウェア202は、接続された印刷装置102に応じて、それぞれの印刷装置102で利用可能な印刷機能をユーザが指定可能に構成する事ができる。すなわち、異なる機能を持つ印刷装置や、異なるベンダが開発した印刷装置を接続した場合であっても、印刷データ生成ソフトウェア202は、接続した印刷装置に応じて利用可能な印刷機能をユーザが指定可能に構成することができる。なお、ここでは、印刷データ生成ソフトウェア202として、Windows(登録商標)10に搭載されている、IPP Class Driverを利用した構成について説明する。IPP Class Driverは、IPP(Internet Print Protocol)と呼ばれる標準的な印刷プロトコルの仕様に従って印刷処理を実行するプリンタドライバであり、OSのパッケージの中に同梱されている。IPP Class Driverは、印刷装置102の機種に応じた固有のプリンタドライバではなく、複数の印刷装置で共通して利用可能な標準的なクラスドライバである。また、IPP Class Driverは、接続した印刷装置102でサポートする印刷機能をユーザが指定できるように、接続した印刷装置102の能力情報を取得し、その情報を元に印刷機能情報203を生成する。
【0018】
OSは、描画アプリケーション201から出力された印刷指示に基づき中間データ(入力データとも呼ぶ)を生成して、印刷データ生成ソフトウェア202に渡す。なお、描画アプリケーション201が印刷用に出力するデータは、Graphic Device Interface形式のデータ(GDI形式データ)またはXML Paper Specification形式のデータ(XPS形式のデータ)である。印刷データ生成ソフトウェア202として、IPP Class Driverを利用する場合、描画アプリケーション201が出力するデータがGDI形式のデータなら、OSは、描画アプリケーション201から出力されたGDI形式のデータをXPS形式のデータに変換する。そして、変換したXPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。描画アプリケーション201が出力するデータがXPS形式のデータなら、OSは、XPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。なお、中間データには、紙面上に形成する絵の情報である描画データと、ユーザにより設定された印刷設定情報と、が含まれる。
【0019】
印刷データ生成ソフトウェア202は、取得した中間データを印刷装置102が解釈可能な印刷データに変換し、印刷装置102に送信する。なお、印刷データには、紙面上に形成する絵の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報(印刷設定を指定する属性情報)とが含まれる。印刷設定属性情報は、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報とその属性情報に関連する設定値を含む。
【0020】
印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。この時、印刷装置102は、印刷データに含まれる印刷設定属性情報に従った動作で、印刷データに含まれる描画データを紙面上に形成する。印刷設定属性情報には、印刷品位(画質優先、速度優先、等)や、両面印刷等を指定するための属性情報とその設定値が含まれている。例えば、印刷設定属性情報に、両面印刷の指定する属性情報が含まれる場合、印刷装置102は、両面印刷を実行する。
【0021】
図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている場合の構成を示す図である。なお、以下において特に言及しない構成や処理については、
図2(a)と同等の構成となる。
【0022】
拡張アプリケーション204は、印刷データ生成ソフトウェア202の機能を拡張するためのソフトウェアであり、OSに予め含まれていない(同梱されていない)ソフトウェアである。そのためユーザがホストコンピュータ101を操作して拡張アプリケーション204を、インターネットを介してサーバからダウンロードして、インストールする必要がある。若しくは、ホストコンピュータ101に印刷装置102が接続されたことに基づき、自動的にインストールされてもよい。具体的には、ホストコンピュータ101に印刷装置102が接続された場合、OSは印刷装置102からデバイス識別情報を取得する。OSは、取得されたデバイス識別情報に対応する拡張アプリケーション204を、インターネットを介してサーバからダウンロードし、インストールしても良い。つまり、印刷データ生成ソフトウェア202と、拡張アプリケーション204は別ファイルとしてホストコンピュータ101に保持される。
【0023】
なお、印刷データ生成ソフトウェア202および拡張アプリケーション204は、更新されてバージョンアップされることもあるが、この更新処理も別々のタイミングで行われる。つまり、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるタイミングと、拡張アプリケーション204が取得されるタイミングは異なる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるトリガーと、拡張アプリケーション204が取得されるトリガーも異なる。なお、拡張アプリケーション204がインストールされた場合、OSが、拡張アプリケーション204を、印刷データ生成ソフトウェア202および印刷装置102に関連付ける。
【0024】
本実施形態で説明する拡張アプリケーション204は、印刷設定画面拡張ユニット205と印刷設定編集ユニット206と印刷機能拡張ユニット207と印刷データ編集ユニット208を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報209を備える。共有情報209の実態は、外部記憶装置114に保存されたファイル、もしくはRAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報209への情報の書き込みや読み出しを行う。
【0025】
なお、拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了しても良い。その場合、各ユニットを使う要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット205の処理が終了するとOSは拡張アプリケーション204の動作を終了させるが、印刷設定編集ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしても良い。
【0026】
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。本構成下でも、
図2(a)の構成と同様、描画アプリケーション201は、印刷設定画面を表示させることができる。本構成下では、拡張アプリケーション204が提供する印刷設定画面が表示される。具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面が表示される。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。印刷設定画面拡張ユニット205の詳細は、
図12を用いて後述する。
【0027】
OSは、描画アプリケーション201から出力された印刷指示に基づき中間データを生成して、印刷設定編集ユニット206に渡す。印刷設定編集ユニット206は、生成された中間データに含まれる印刷設定情報(PT)を編集し、編集した印刷設定情報をOSに渡す。なお、印刷設定編集ユニット206は、表示部119に画面を表示することもできるし、表示させないこともできる。印刷設定編集ユニット206は、ユーザの操作に関わらず、表示部119に印刷設定編集ユニット206自身が提供する画面を表示する、しないを決定することができる。したがって、印刷ジョブの度に必ずユーザに指定してもらう必要がある設定や機能は、印刷設定編集ユニット206が表示する画面で指定可能に構成するのが好ましい。このような機能には、例えば個人識別番号(PIN)を利用したセキュアプリントや、FAX送信のための宛先に関する情報(送信先、Fax番号等)等が挙げられる。この例では、印刷設定編集ユニット206は、ユーザによって指定されたPIN情報を印刷設定情報に格納し、OSに渡す。ユーザによって指定されたPIN情報は、各ユニットから共通してアクセス可能な共有情報209に格納しても良い。
【0028】
OSは、編集された印刷設定情報を含む中間データを、印刷データ生成ソフトウェア202に渡す。印刷データ生成ソフトウェア202は、中間データを印刷装置102が解釈可能な印刷データに変換する。OSは、変換された印刷データを印刷データ編集ユニット208に渡す。さらに、OSは中間データに含まれる印刷設定情報を印刷データ編集ユニット208に渡すように構成しても良い。
【0029】
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202が生成した印刷データを編集し、編集した印刷データをOSに渡す。例えば、セキュアプリントを例にとると、印刷データ編集ユニット208は、印刷設定編集ユニット206で指定されたPIN情報を、OSから受け取った印刷設定情報、若しくは共有情報209から読み出し、印刷データに含まれる印刷設定属性情報に追加する。
【0030】
OSは、印刷データ編集ユニット208が編集した印刷データを、印刷装置102に送る。印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。
【0031】
また、拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202もしくはOSが生成した印刷機能情報203(PDC)を編集することができる。これにより、印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、印刷機能の設定値同士の排他関係の追加、等を行うことができる。OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202に最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、それ以外のタイミングで印刷機能拡張ユニット207を起動してもよい。こうすることで、印刷装置102に対して後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、印刷機能情報203に追加することができる。
【0032】
なお、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを持つものや、他の機能を有するものでもよい。なお、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上のように、拡張アプリケーション204は、設定画面を表示する機能(印刷設定画面拡張ユニット205)、印刷データ生成ソフトウェア202に入力される中間データを編集する機能(印刷設定編集ユニット206)、印刷装置に入力される印刷データを編集する機能(印刷データ編集ユニット208)、印刷データ生成ソフトウェアで指定可能な機能を拡張する機能(印刷機能拡張ユニット207)、の少なくとも1つを備えると言える。
【0033】
<印刷機能拡張ユニットによる印刷機能情報の編集処理>
図3は、本印刷システムにおける印刷機能拡張ユニット207による印刷機能情報の編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0034】
まず、
図3のフローは、OSが、拡張アプリケーション204が初めて関連付けられたタイミング等で、印刷機能拡張ユニット207を起動することにより開始する。
【0035】
S301で、印刷機能拡張ユニット207は、PDC(Print Device Capabilities)にJobNUpAllDocumentsContiguouslyというFeatureが含まれるか否かを判定する。
【0036】
ここで、PDCの一例を
図4(a)を用いて説明する。PDC401には、印刷装置102がサポートしている機能(Feature)の情報や、ある機能における設定値(Option)の情報、また特定の機能同士が同時に選択できないことを示す排他情報が含まれる。例えば、情報402は、PageResolution(解像度)として600x600dpiが指定可能であることを示す。S301がYesの場合、印刷機能拡張ユニット207は本フローの処理を終了する。ここでは、PDC401には、JobNUpAllDocumentsContiguouslyが含まれないため、S301の判定はNoとなる。S301がNoの場合、S302へ進む。
【0037】
S302では、印刷機能拡張ユニット207は、PDCに割り付け機能を追加する。本フローチャートで編集した後のPDCの例を
図4(b)に示す。ここでは、PDC403において、割り付け機能は、情報406に示すとおり、JobNUpAllDocumentsContiguouslyというFeature名で追加されている。また、その設定可能値として、None、PagePerSheet_2等のOptionがサポートされる。このFeature名やOptionはあくまで一例であり、それ以外の名称(機能を示す情報)や設定可能値であっても良い。
【0038】
S303では、印刷機能拡張ユニット207は、追加機能リストに割り付け機能を追加し、共有情報209に格納する。追加機能リストの例を
図5に示す。追加機能リスト501には、S302の処理でPDCに追加した機能のFeature名と、指定可能なOptionの一覧が対応付けて格納される。また、Optionのうち、どれがデフォルトの指定値であるかの情報も含む。ここでは、NoneというOptionに*が付加されており、NoneというOptionがデフォルトの指定値であることを示す。なお、本フローチャートの印刷機能拡張ユニット207は割り付け印刷機能のみを追加するが、2つ以上の機能を追加するように構成しても良い。そのため、追加機能リストは2つ以上の機能情報を格納可能に構成される。
【0039】
S304では、印刷機能拡張ユニット207は、PDCに偽装解像度を追加する。偽装解像度とは、印刷装置102はサポートしていないが、印刷データ生成ソフトウェア202若しくは拡張アプリケーション204はサポートしている解像度であり、拡張アプリケーション204において使用される偽の解像度である。
【0040】
ここで、PDCに追加される偽装解像度情報の例を、再度
図4(b)のPDC403を用いて説明する。偽装解像度が追加される前のPDC401では、解像度として600x600dpiが指定されていたが、S304の追加処理により、100x100dpi、200x200dpi、300x300dpi、400x400dpi、500x500dpiのOption(情報405)がさらに追加される。
【0041】
つまり100dpi刻みで5つのOptionが新たに追加される。なお、さらに細かい刻みで多くのOptionを追加するように構成しても良いし、後述する計算により求められる必要となる偽装解像度を追加するように構成しても良い。なお、印刷機能拡張ユニット207は、さらに、追加したOptionの名前空間に関する情報404をPDCに付加する。
【0042】
最後にS305において、印刷機能拡張ユニット207は、PDCに、排他制御用の機能と排他情報を追加する。PDCに追加される情報を、再度
図4(b)のPDC403を用いて説明する。まず、PDC403には、排他制御用の機能として、情報407が追加される。情報407には、PreventInternalSettingsというFeatureと、その設定値として、On、Offの2つのOptionが追加される。次に、排他情報として、情報408が追加される。情報408は、PageResolution機能に追加した偽装解像度の各Option(405)と、PreventInternalSettings機能のOnというOptionが排他関係にあり、同時に設定できないことを示す。これにより、偽装解像度を利用するためには、PreventInternalSettings機能のOffというOptionを明示的に指定する必要があることになり、ユーザや上位のソフトウェアが誤って偽装解像度を指定することを防ぐことができる。つまり、この排他制御用の排他情報とは、偽装解像度が指定されないようにするための防止情報である。
【0043】
以上の処理により、印刷機能情報203であるPDCを元に生成される、能力情報であるPrintCapabilities(PC)に、割り付け機能に関連する情報として偽装解像度の各Option、排他制御用の機能が追加される。
【0044】
<印刷設定画面拡張ユニットの表示する画面例>
次に、生成されたPCに基づき表示される印刷設定画面について
図12を用いて説明する。
図12の印刷設定画面1201は、前述の処理により生成されたPCに基づき、印刷設定画面拡張ユニット205が表示する画面の例である。印刷設定画面拡張ユニット205は、描画アプリケーション201上でユーザが印刷設定画面の表示を指示した場合に、OSから呼び出される。印刷設定画面拡張ユニット205は、OSから取得できるPCに基づき、印刷データ生成ソフトウェア202で指定可能な印刷機能をユーザが指定可能な画面を表示する。
【0045】
印刷設定画面拡張ユニット205は、PC中に追加されたJobNUpAllDocumentsContiguouslyというFeatureに従い、割り付け機能の有効・無効を切り替え可能なコントロールアイテム1202を表示する。また、印刷設定画面拡張ユニット205は、PC中のJobNUpAllDocumentsContiguouslyの各Optionに基づき、割り付け数として選択可能なコントロールアイテム1203を表示する。これにより、印刷機能拡張ユニット207が追加した割り付け機能をユーザが指定可能に構成する事ができる。なお、印刷機能拡張ユニット207が追加した解像度機能の中の偽装解像度を示すOptionや、排他制御用の機能については、拡張アプリケーション204が内部的に利用するものである。よって、ユーザに指定されないよう印刷設定画面内には含めないことが好ましい。
【0046】
<印刷設定編集ユニットの処理フロー>
図8は、本印刷システムにおける印刷設定編集ユニット206の印刷設定変更処理のうち主要な処理フローを示した図である。以降、印刷設定編集ユニット206を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0047】
図8の処理は、OSにより、描画アプリケーション201から出力された印刷指示に基づき中間データが生成され、印刷設定編集ユニット206が起動することにより開始する。なお、本実施形態における印刷設定編集ユニット206は、表示部119への画面表示を行わないものとする。
【0048】
S801では、印刷設定編集ユニット206は、中間データに含まれる印刷設定情報であるPrintTicket(PT)を取得する。
【0049】
S802では、印刷設定編集ユニット206は、PT中に、追加機能リスト内の機能の指定が含まれるか否かを判定する。ここで、PTの例を
図6(a)を用いて説明する。PT601には、情報602に示すとおり、JobNupAllDocumentContiguouslyという機能のPagesPerSheet_2というOptionが指定されている。これは、追加機能リスト501に存在する機能であり、かつ、デフォルトであるNoneというOptionとは異なるOptionである。なお、ここでは、
図12の印刷設定画面1201において、ユーザにより2ページ分の描画データを1枚に印刷する割り付け数2(2up,2in1,もしくは2on1とも言う)の割り付け機能が指定されたものとする。よって、PTには、その割り付け機能の設定値に対応するPagesPerSheet_2というOptionが指定されている。このような場合に、印刷設定編集ユニット206は、S802でYesと判定し、S803へ進む。S802の判定がNoの場合、本フローチャートの処理は終了となる。
【0050】
S803では、印刷設定編集ユニット206は、PTに偽装解像度を指定する。印刷設定編集ユニット206によって変更されたPTの例を
図6(b)に示す。ここでは、PT603において、以下で説明する処理によって、情報604で示すとおり、PageResolutionという解像度を示す機能に、DPI400x400という偽装解像度が指定されている。
【0051】
偽装解像度の指定方法について、
図7を用いて説明する。
図7(a)は、中間データに含まれる描画データのうち1ページ分を示す模式図である。描画データに含まれる各ページ情報には、用紙サイズ701の中に印刷可能領域702が存在し、印刷可能領域702の中には描画アプリケーション201が印刷用に生成した描画データが含まれる。ここで、印刷可能領域702の幅をx、高さをyとする。
【0052】
図7(b)は、
図7(a)のような描画データの2ページ分を、割り付け数2の割り付け機能を指定して印刷したときの、印刷装置102の出力結果の例である。用紙サイズ703の中の印刷可能領域内に、描画データに基づく2ページ分の画像が並べて印刷される。ここで、Page1を配置可能な領域704の幅は(y-n)/2、高さはxである。nは、Page1とPage2の間に設ける空白領域の幅を示す。領域704の縦横比は、元の描画データの印刷可能領域702の縦横比と必ずしも一致するとは限らない。それぞれの縦横比が一致しなかった場合は、領域704に印刷可能領域702を内接するように配置することで、印刷可能領域702に含まれる描画情報が欠けることが無い。
【0053】
例えば、用紙サイズをA4とし、マージンを除いた印刷可能領域702の幅xが203.2(mm)、高さyが287(mm)だとする。nを5(mm)とすると、領域704の幅は(287-5)/2=141(mm)、高さはxなので、203.2(mm)となる。この領域704に、印刷可能領域702を配置するために必要な縮小率は、幅方向、高さ方向それぞれ以下のようになる。
幅方向:141/203.2=0.694
高さ方向:203.2/287=0.708
【0054】
PT601の指定を見ると、解像度の指定は600dpiとなっている。この時に、幅方向、高さ方向のそれぞれの偽装解像度の期待値は以下のようになる。
幅方向:0.694x600=416.4(dpi)
高さ方向:0.708x600=424.8(dpi)
【0055】
前述の通り、領域704に印刷可能領域702を内接させたような結果を得るために、ここでは2つの偽装解像度のうち、小さい値である416.4を採用する。印刷データ生成ソフトウェア202が、中間データを600dpiで変換した印刷データのサイズを
図7の印刷可能領域702のサイズとすると、同じ中間データを416.4dpiで変換すれば、印刷データのサイズが
図7のサイズ705となる。なお、本実施形態におけるPDC403には、100dpi刻みで5つの偽装解像度が指定可能に拡張されており、416.4dpiという偽装解像度を指定することはできない。そこで、印刷設定編集ユニット206は、S804の処理において、416.4に最も近く、できるだけ大きい偽装解像度を指定する。上記の例で言えば、印刷設定編集ユニット206は、400dpiを示す、DPI400x400というOptionをPT内に指定する。なお、前述のように、印刷機能拡張ユニット207のS305の処理で、必要となる偽装解像度、今回の例で言うと416dpiという解像度を事前に計算して登録するように構成しても良い。但し、追加する解像度の種類が多すぎると、処理が遅くなる可能性があるため、ある程度代表的な解像度に限定して追加するのが好ましい。
【0056】
次に、S804では、印刷設定編集ユニット206は、PTにPreventInternalSettingsというFeatureと、その設定値として、Offを指定する。PT603の情報605が本処理によって追加される情報の例である。つまり、情報408には、PreventInternalSettingsがOnの場合には、偽装解像度の各Optionを指定できないような排他関係が定義されている。この定義により、PreventInternalSettingsがOnの場合には、偽装解像度は不正な値として、印刷データ生成ソフトウェア202等によって別の解像度に変更されてしまう場合がある。よって、S804では、印刷設定編集ユニット206は、これを防ぐために、偽装解像度が指定できることを示す設定値に変更する処理を行う。
【0057】
最後に、S805では、印刷設定編集ユニット206は、設定変更リストを作成し、それを共有情報209に保存する。共有情報209に保存する設定変更リストの例を
図9に示す。設定変更リスト901には、印刷設定編集ユニット206がPTに対して施した変更内容に関する情報が含まれる。以下、前述の例に倣って、設定変更リストに格納される情報の例を説明する。1つ目の情報として、PageResolutionというFeatureのOptionを、DPI600x600からDPI400x400に変更したことを示す情報が格納されている。これは、印刷設定編集ユニット206の、S803の処理結果を受けた情報である。2つ目の情報として、PreventInternalSettingsというFeatureのOptionを、OnからOffに変更したことを示す情報が格納されている。これは、印刷設定編集ユニット206の、S804の処理結果を受けた情報である。
【0058】
以上のように、本実施形態の印刷設定編集ユニット206は、特定の機能が指定されている場合に、中間データに含まれるPTを編集する。印刷設定編集ユニット206の後に処理を行う印刷データ生成ソフトウェア202は、編集したPTを含む中間データに基づき印刷データを生成する。前述の例では、解像度が600dpiから400dpiに変更されているため、印刷データ生成ソフトウェアが生成する印刷データ中に含まれる描画データは、縦・横共に、本来のサイズから2/3のサイズに縮小された描画データとなる。これは、
図7(b)における領域704に収まるサイズである。後述する印刷データ編集ユニット208は、この描画データを拡大縮小(サイズ変更)すること無く、適切な場所に移動するだけで、期待される割り付け印刷のための描画データに変換することができる。
【0059】
<印刷データ編集ユニットの処理フロー>
図10は、本印刷システムにおける印刷データ編集ユニット208の印刷データ編集処理のうち主要な処理フローを示した図である。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0060】
図10の処理は、OSにより、印刷データ生成ソフトウェア202によって中間データから変換された印刷データが、印刷データ編集ユニット208に渡されることにより開始する。
【0061】
S1001では、印刷データ編集ユニット208は、PTを取得する。ここで取得するPTは、S803及びS804の処理において、印刷設定編集ユニット206により編集済みのPTである。なお、印刷データ編集ユニット208は、OSのAPIを利用してPTを取得しても良いし、印刷設定編集ユニット206が共有情報209に格納し、それを取得するように構成しても良い。
【0062】
次にS1002では、印刷データ編集ユニット208は、PT中に、追加機能リスト内の機能の指定が含まれるか否かを判定する。S1002の判定がNoの場合、本フローチャートの処理は終了となる。ここでは、追加機能リストが
図5の追加機能リスト501、PTが
図6(b)のPT603である場合を例に説明する。PT603には、JobNupAllDocumentContiguouslyという機能のPagesPerSheet_2というOptionが指定されているため、S1002の判定はYesとなり、S1003へ進む。
【0063】
S1003では、印刷データ編集ユニット208は、OSから受け取った印刷データに含まれる描画データを編集する。PT603に指定されているJobNupAllDocumentContiguouslyという機能のPagesPerSheet_2というOptionは、割り付け数2の割り付け印刷を意味する。この機能は、拡張アプリケーション204によって追加された機能であるため、印刷データ生成ソフトウェア202はこの機能が指定されても、この機能の実現に必要な処理は実行していない。但し、本実施形態では、S803の処理でPTに偽装解像度を示すOptionが指定されている。印刷データ生成ソフトウェア202は、PT中の解像度は正しく参照し、解像度に応じたサイズの印刷データを生成するように構成される。よって、印刷データ生成ソフトウェア202により生成された印刷データ中の描画データは、割り付け数2の割り付け印刷機能は反映されていないが、割り付け数2の割り付け印刷に必要となる各ページの縮小処理は反映されたデータとなる。
【0064】
そのため、S1003の処理では、印刷データ編集ユニット208は、縮小済みの2ページ分の描画データを1ページに配置することで、
図7(b)に示されるような、割り付け数2の割り付け印刷機能を反映した描画データを生成することが可能となる。各ページの描画データは既に適切なサイズに縮小されているので、印刷データ編集ユニット208は描画データの縮小処理は行わない。なお、領域704に対して各描画データが小さい場合、印刷データ編集ユニット208は、描画データを領域704の中央に配置する。若しくは、左上に詰める等しても良い。各ページ間の空白領域は、S803の計算処理で利用したnと同じ値を利用する。
【0065】
以上の処理によって、印刷データ編集ユニット208は、例えばA4サイズの400dpiで作成された描画データを横に2つ並べることにより、A4サイズで、かつ割り付け数2の割り付け印刷機能を反映した600dpiの描画データに変換する。なお、ここでは割り付け数は2として説明しているが、それ以外の割り付け数にも同等の処理を適用可能である。
【0066】
次にS1004では、印刷データ編集ユニット208は、設定変更リストに基づき、印刷データ中の印刷設定属性情報を変更する。IPPにおけるValidate-Jobオペレーションを概念的に示した例を
図11に示す。Validate-Jobオペレーション1101は、IPPにおける印刷データにおいて、印刷データの先頭で発行されるオペレーションを示すデータである。Validate-Jobオペレーションには、印刷設定属性情報1102を示すjob-attributes-tagが含まれる。印刷設定属性情報1102は、用紙サイズや、解像度情報等を示す属性情報が含まれ、印刷装置102はこの属性情報に従った印刷を行う。
【0067】
ここで、
図9の設定変更リスト901に依ると、解像度が600dpiから400dpiに変更されている。印刷データ生成ソフトウェア202は、S803の処理でPTに指定された400dpiという解像度に基づき、400dpiの描画データを生成すると共に、印刷設定属性情報に400dpiを指定している。しかしながら、400dpiという解像度は、拡張アプリケーション204が追加した偽装解像度であり、印刷装置102はこの解像度に基づいて印刷することはできない。従って、印刷データ編集ユニット208は、設定変更リスト901に従って、印刷設定属性情報1102に含まれる解像度を600x600dpiに変更する。変更した例を情報1103に示す。
【0068】
以上の処理によって、印刷データ生成ソフトウェア202によって生成された、割り付け設定のない400dpiの印刷データは、割り付け数2の割り付け印刷機能を設定した600dpiの印刷データに変換される。よって、印刷装置102がこの印刷データをすれば、割り付け数2の割り付け印刷の結果が得られる。
【0069】
以上のように、本実施形態における印刷システムでは、拡張アプリケーション204によって、印刷機能を拡張することができる。また、描画データの拡大・縮小を伴うような編集が必要な機能を追加可能である。中間データに含まれる描画データはベクターデータであるため、文字等は拡大・縮小しても劣化しない。しかし、中間データン基づき印刷データ生成ソフトウェア202が生成する印刷データに含まれる描画データは、ラスターデータであるため、拡大・縮小によって劣化が生じる。特に縮小の場合、特定のラインが間引かれてしまうことにより、小さな文字等の視認性は著しく悪化する。本実施形態における印刷システムでは、拡張機能で必要となる拡大・縮小を、偽装解像度を利用することで、印刷データ生成ソフトウェア202に実施させる。印刷データ生成ソフトウェア202は、ベクターデータである中間データからラスターデータである印刷データを生成する処理を行うため、生成時の解像度に応じた、劣化の無いラスターデータが生成される。そのようにして生成されたラスターデータを、印刷データ編集ユニット208は、再度拡大・縮小することなく編集し、拡張機能を実現する。この構成により、本実施形態における印刷システムは、拡大・縮小を伴う編集が必要な機能を、画質劣化を発生させることなく追加することができる。
【0070】
なお、本実施形態では、割り付け数2の割り付け印刷機能を例に説明したが、2以外の割り付け数にも適用可能であることは言うまでもない。また、割り付け数以外の機能、例えば縮小印刷等の機能にも同等の構成で適用可能であり、縮小ではなく拡大を伴う機能にも適用可能である。さらに、異なる2つ以上の機能を拡張するよう構成しても良い。この場合は、印刷設定編集ユニット206は、2つ以上の異なる機能を併用した際に必要となる拡大・縮小率を踏まえた偽装解像度をS803で指定するとよい。さらに、印刷データ編集ユニット208は、2つ以上の異なる機能で必要な編集をS1003で実施するとよい。
【0071】
<<実施形態2>>
次に実施形態2について説明する。本実施形態では、拡張アプリケーション204は、冊子印刷機能を追加する。冊子印刷機能とは、印刷装置102の印刷結果を中央で折り曲げることによって、冊子のように読める状態になるように並び替えて印刷する機能である。以下、説明において言及がない構成や処理については実施形態1と同等であるため、説明を省略する。
【0072】
図13は、本実施形態における印刷システムの印刷機能拡張ユニット207による印刷機能情報の編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0073】
図13のS1301からS1305の処理は、以下で言及する点を除き、
図3のS301からS305の処理と同等の趣旨の処理であるため、共通の処理については説明を省略する。
【0074】
一点目の違いとして、本実施形態では、S1302において印刷機能拡張ユニット207は、割り付け印刷機能の代わりに、冊子印刷機能を追加する。そのため、PDCに追加するFeature名は、JobNUpAllDocumentsCongiuouslyではなく、JobBookletとなる。
【0075】
二点目の違いとして、冊子印刷機能では、割り付け数2の割り付け印刷相当の縮小しか発生しないため、S1304では、100dpiや200dpiのような小さな偽装解像度は追加しない。なお、
図13のフローでは、印刷機能拡張ユニット207は冊子印刷機能のみを拡張する構成となっているが、割り付け印刷機能についても拡張するように構成しても良い。この場合、印刷機能拡張ユニット207は、
図3のS301からS305の処理も実行するものとする。つまり、OS及び印刷データ生成ソフトウェア202が割り付け印刷機能をサポートしていないと判断した場合は、印刷機能拡張ユニット207は追加機能リストに割り付け印刷機能を追加すると共に、PDCも適切に編集する。
【0076】
図14は、本印刷システムにおける印刷設定編集ユニット206の印刷設定変更処理のうち主要な処理フローを示した図である。以降、印刷設定編集ユニット206を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0077】
図14のS1403とS1406を除く処理は、
図8のS801からS805の処理と同等の趣旨の処理を、冊子印刷機能について実施する。よって、共通の処理については説明を省略する。
【0078】
S1402では、印刷設定編集ユニット206は、S1402の処理で、PTに冊子印刷もしくは割り付け印刷機能が指定されているかを判定する。
【0079】
S1403では、印刷設定編集ユニット206は、PTに冊子印刷が指定されており、かつ追加機能リストにJobNUpAllDocumentsContiguouslyが含まれないかを判定する。なお、ここでは、前述の通り、印刷機能拡張ユニット207は、
図3のS301からS305の処理も実行するものとする。S1403においてYESの場合、印刷設定画面拡張ユニット205において冊子印刷機能が指定され、かつ印刷機能拡張ユニット207により、追加機能リストに割り付け印刷機能は追加されていない(つまり、割り付け印刷機能は、OS及び印刷データ生成ソフトウェア202によりサポートされている)ことを意味する。一方、S1403においてNOの場合、2つのケースがある。1つ目は、印刷設定画面拡張ユニット205において冊子印刷ではない拡張機能(つまり割り付け印刷機能)が指定されているケースである。2つ目は、印刷設定画面拡張ユニット205において冊子印刷機能が指定され、かつ印刷機能拡張ユニット207により、追加機能リストに、割り付け印刷機能は追加されていない(つまり、割り付け印刷機能は、OS及び印刷データ生成ソフトウェア202によりサポートされている)ケースである。
【0080】
S1403の判定がYesの場合、印刷設定編集ユニット206は、PTに割り付け数2の割り付け印刷を指定する(S1406)。割り付け数2の割り付け印刷は、ページの順番は異なるが、ページの縮小については、冊子印刷と同等である。本実施形態では、このことを利用し、印刷設定編集ユニット206は、縮小を実現するために偽装解像度を利用するのではなく、割り付け印刷機能を利用する。
【0081】
印刷設定編集ユニット206がS1406の処理を実行した場合、印刷データ生成ソフトウェア202は、割り付け数2の割り付け印刷機能のための編集を行った印刷データを生成する。拡張アプリケーション204は解像度を変更していないため、解像度は印刷装置102の指定する解像度のままである。
【0082】
S1402の判定がNoの場合、冊子印刷若しくは割り付け印刷が指定されているが、OS及び印刷データ生成ソフトウェア202により割り付け印刷機能がサポートされていない。この場合、印刷設定編集ユニット206は、実施形態1の方法と同様に、冊子印刷若しくは割り付け印刷に必要な縮小を、偽装解像度を利用して実現する。
【0083】
その後、印刷データ編集ユニット208は、印刷データ生成ソフトウェア202が生成した印刷データを編集する処理を実行する。この処理フローは、実施形態1と同様、
図10に示される。
【0084】
S1001の処理とS1002の処理は実施形態1にて説明したとおりであるため詳細な説明は省略する。なお、S1002において、印刷データ編集ユニット208は、PTに冊子印刷機能もしくは割り付け印刷機能が指定されているかを判定する。
【0085】
S1003では、印刷データ編集ユニット208は、S1403の判定がYESだった場合、描画データを以下のように編集する。この編集について、
図15を用いて説明する。
図15(a)は、印刷データ生成ソフトウェア202が生成した印刷データの描画データを示す模式図である。
図15(a)に示されるように、Page1とPage2が1枚の用紙に配置され、以降も同様に、描画アプリケーション201の生成した連続する2ページが1枚の用紙に配置される。S1003の処理で編集した描画データの例を
図15(b)に示す。冊子印刷では、印刷結果である印刷物を中央で折り曲げたときに冊子の状態になるように、
図15(b)に示すように各ページが配置される。印刷データ編集ユニット208は、
図15(a)の各ページの描画データを拡大・縮小することなく並び替え(つまり移動)することにより、
図15(b)のようなデータに変換する。なお、S1003では、印刷データ編集ユニット208は、S1403の判定がNoだった場合、実施形態1と同等の編集を行う。さらに、冊子印刷が指定されている場合は、印刷データ編集ユニット208は、実施形態1と同等の編集に加えて、前述の並び替え(移動)処理も行う。
【0086】
最後にS1004では、印刷データ編集ユニット208は、印刷データに含まれる印刷設定属性情報を変更する。S1406の処理を実行した場合、前述の通り、解像度は印刷装置102の指定する解像度のままとなっているため、変更する必要は無い。ここでは、印刷データ編集ユニット208は、冊子印刷が指定されている場合であり、且つ、両面印刷設定が指定されていない場合は、印刷設定属性情報に両面印刷設定を指定する処理を行う。なお、印刷設定画面拡張ユニット205や印刷設定編集ユニット206で、冊子印刷が指定された場合に、強制的に両面印刷設定を有効化するように構成しても良い。
【0087】
本実施形態の拡張アプリケーション204は、拡張する機能として冊子印刷機能において必要となる拡大・縮小を実現するために、偽装解像度を利用するのではなく、割り付け印刷機能を利用する。偽装解像度を利用する場合、小さめに縮小されてしまうケースがあり得るが、割り付け印刷機能を利用する場合は、常に期待するサイズで縮小される。このように、印刷データ生成ソフトウェア202に拡大・縮小処理を実施させるためには、印刷データ生成ソフトウェア202がサポートし、かつ拡大・縮小を伴う機能を利用すれば良く、偽装解像度や割り付け印刷機能に限定されるものではない。
【0088】
<<実施形態3>>
次の実施形態3について説明する。本実施形態では、所定の条件を満たさない場合、印刷データ生成ソフトウェア202による処理をスキップさせるための処理を行う。以下、説明において言及がない構成や処理については実施形態1と同等であるため、説明を省略する。
【0089】
図16は、本実施形態における印刷システムの印刷設定編集ユニット206による印刷機能情報の編集処理のうち主要な処理フローを示した図である。以降、印刷設定編集ユニット206を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0090】
図16におけるS1603とS1607を除く処理は、
図8におけるS801からS805の処理と同等の趣旨の処理であるため、説明を省略する。
【0091】
S1603では、印刷設定編集ユニット206は、指定された機能を実現する上で適切な偽装解像度が指定可能であるかを判断する。例えば、実施形態1のS803の方法で、適切な偽装解像度を計算した結果、適切な偽装解像度として480dpiが算出されたとする。この場合、500dpiを指定すると、期待よりも大きい印刷データとなり、描画データが一部欠けてしまう。一方、400dpiを指定すると、描画データが小さすぎる結果となってしまう。S1603では、このような場合に、印刷設定編集ユニット206は、S1603をNoと判断する。
【0092】
S1607では、印刷設定編集ユニット206は、OSに対して中間データのスルーを指定する。なお、前提として、本実施形態においては、印刷設定編集ユニット206は、中間データを、印刷データ生成ソフトウェア202を経由することなく、印刷データ編集ユニット208に渡すように、OSに対して指定することができるものとする。印刷設定編集ユニット206は、S1607でこの指定を行い、本フローの処理を終了する。なお、S1603の判定を行わず、S1602で特定の機能が指定された場合は、常にS1607の処理を実行するように構成しても良い。
【0093】
図17は、本実施形態における印刷データ編集ユニット208の印刷データ編集処理のうち主要な処理フローを示した図である。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現されることになる。
【0094】
図17の処理は、S1702,S1706,S1707、S1708の処理を除き、
図10のS1001からS1004の処理と同等の趣旨であるため説明を省略する。
【0095】
S1702で、印刷データ編集ユニット208は、印刷設定編集ユニット206によって、印刷データ生成ソフトウェア202による中間データのスルーが指定されたか否かを判定する。印刷設定編集ユニット206がS1607の処理を実行した場合は、S1702の判定はYesとなる。
【0096】
S1706では、印刷データ編集ユニット208は、PTに指定された追加機能に従い中間データを編集する。中間データは、ベクターデータで構成されるため、この編集が拡大・縮小を含むものであったとしても、文字等の劣化は発生しない。
【0097】
次にS1707では、印刷データ編集ユニット208は、中間データに含まれるPTに指定された追加機能を無効にする。この処理は、後述する処理において、中間データを印刷データに変換する際に、追加機能のための編集処理が再度実行されることを防ぐために行う。
【0098】
最後にS1708では、印刷データ編集ユニット208は、中間データを印刷データに変換する。なお、印刷データへの変換処理は、印刷データ編集ユニット208が自身で変換しても良いし、編集した中間データを再度処理するよう、印刷データ生成ソフトウェア202に指示することで実現しても良い。つまり、印刷データ生成ソフトウェア202に中間データから印刷データへの変換処理を指示してもよい。後者は、OSがそのような機能をサポートしている必要があるが、中間データから印刷データへの変換処理が印刷データ生成ソフトウェア202に一元化されるため、設定によらず常に安定した変換結果を得ることができる。
【0099】
本実施形態における印刷システムでは、拡大・縮小を伴うような拡張機能が指定された場合に、中間データのスルーを行い、中間データを編集することで、拡大・縮小に伴う劣化を防止する。拡大・縮小が必要ない場合は、中間データはスルーしないため、印刷データ編集ユニット208は、特定の機能についてのみ特別な処理を実施すればよく、多くの処理は印刷データ生成ソフトウェア202に実施させることができる。
【0100】
<<実施形態4>>
上述した実施形態は、以下の処理を実行することによっても実行される。すなわち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUまたはMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。これによって、上述した目的を達成することができる。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【0101】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、磁気テープ、不揮発性のメモリカード、ROM、DVDなどを用いることができる。
【0102】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施例の機能が実現されるだけでない。そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。
【0103】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれてもよい。そして、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ってもよい。その処理によって前述した実施形態の機能が実現される。
【符号の説明】
【0104】
102 印刷装置
119 表示部
201 アプリケーション
202 印刷データ生成ソフトウェア
203 印刷機能情報
204 拡張アプリケーション
205 印刷設定画面拡張ユニット
206 印刷設定編集ユニット
207 印刷機能拡張ユニット
208 印刷データ編集ユニット
209 共有情報