JP2019128606A - 情報処理装置およびその制御方法、並びにプログラム - Google Patents

情報処理装置およびその制御方法、並びにプログラム Download PDF

Info

Publication number
JP2019128606A
JP2019128606A JP2018007589A JP2018007589A JP2019128606A JP 2019128606 A JP2019128606 A JP 2019128606A JP 2018007589 A JP2018007589 A JP 2018007589A JP 2018007589 A JP2018007589 A JP 2018007589A JP 2019128606 A JP2019128606 A JP 2019128606A
Authority
JP
Japan
Prior art keywords
function
setting
information
printcapabilities
value
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
Application number
JP2018007589A
Other languages
English (en)
Inventor
徹矢 塩原
Tetsuya Shiobara
徹矢 塩原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2018007589A priority Critical patent/JP2019128606A/ja
Publication of JP2019128606A publication Critical patent/JP2019128606A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】アプリケーションから基準となる印刷設定が渡されずにPrintCapabilitiesが要求された場合も、印刷設定に基づく処理を行うことができる仕組みを提供する。【解決手段】印刷設定定義ファイルに記述した設定取得用の機能と禁則の定義に基づいて生成されるPrintCapabilitiesを基に、取得したい機能の設定値を決定する。【選択図】 図9

Description

本発明は、情報処理装置およびその制御方法、並びにプログラムに関する。
近年、オペレーティングシステム(OS)の1つであるMicrosoft(登録商標)のWindows(登録商標)において、V4プリンタドライバと呼ばれる新しいアーキテクチャで動作するプリンタドライバが導入されている。V4プリンタドライバは、XPS(XML Paper Specification)文書を利用した印刷パスを利用している。このXPS印刷パスにおいて、印刷物の体裁を決定するために、PrintCapabilitiesと、PrintTicketが利用される。PrintCapabilitiesは、XML形式で記述された印刷機能情報であり、PrintTicketは、XML形式で記述された印刷設定情報である。V4プリンタドライバは、GPD(Generic Printer Description)と呼ばれる、プリンタドライバの印刷設定の機能を定義する印刷設定定義ファイルを同梱している。このGPDを含んだプリンタドライバをOSにインストールすることで、ユーザに対してPrintCapabilitiesやPrintTicketを用いた印刷設定変更機能を提供することができる。
PrintCapabilitiesは特定の設定下における印刷機能情報であるため、PrintCapabilitiesの生成には基準となる印刷設定が必要となる。基準となる印刷設定は、アプリケーションがPrintCapabilitiesをプリンタドライバに要求する際にPrintTicketを渡すことで指定することができる。その一方、アプリケーションはPrintCapabilitiesをプリンタドライバに要求する際に、PrintTicketを指定しないことも可能である。指定されない場合、基準となる印刷設定として、ユーザによって変更可能なユーザデフォルト設定が使用される。アプリケーションから印刷する際にはユーザデフォルト設定がプリンタドライバの初期設定として使用される。
V4プリンタドライバでは、PrintCapabilitiesやPrintTicketの生成はOS提供のコンフィグレーションモジュールで行われる。加えて、コンフィグレーションモジュールで生成されたPrintCapabilitiesやPrintTicketに対して、プリンタドライバ開発ベンダ独自の編集を行うための印刷設定編集モジュールを設けることも可能である。プリンタドライバ開発ベンダは印刷設定編集モジュールを実装することで数値や文字列等のパラメータに関する定義の追加など、コンフィグレーションモジュールが行うことのできない編集をPrintCapabilitiesに施すことができる(特許文献1等)。
特開2015−225481号公報
印刷設定編集モジュールは、コンフィグレーションモジュールが生成したPrintCapabilitiesの編集を行う。その際に、コンフィグレーションモジュールが生成したPrintCapabilitiesと、アプリケーションが指定したPrintTicketが渡されてくる。印刷設定編集モジュールは、PrintTicketを参照して、PrintCapabilitiesの編集を行う。しかし、アプリケーションがPrintCapabilitiesをプリンタドライバに要求する際にPrintTicketを指定しなかった場合、印刷設定編集モジュールにはPrintTicketが渡されてこない。印刷設定編集モジュールは、PrintTicketが渡されてこないことで、適切にPrintCapabilitiesを編集できなくなるおそれがあった。
上記課題を解決するために本願発明は以下の構成を有する。すなわち、印刷ソフトウェアを備える情報処理装置であって、設定定義情報に基づき、前記印刷ソフトウェアの機能情報を生成する生成部により生成される機能情報に対して編集を行う編集手段を備え、前記設定定義情報は、複数の設定値のいずれかを設定可能に定義された第1の機能と、前記第1の機能に対応し、前記複数の設定値それぞれと禁則関係にある設定値が定義された第2の機能とを含み、前記編集手段は、前記生成された機能情報において、前記第1の機能の現在の設定により禁則関係となっていると示されている設定値を前記第2の機能に定義されている設定値から特定し、前記特定した設定値に基づいて、前記機能情報を編集する。
本発明により、印刷設定編集モジュールにおいてPrintCapabilitesを適切に編集することが可能となる。
印刷システムのハードウェア構成の例を示すブロック図。 印刷システムのソフトウェア構成を説明するための図。 PrintCapabilitiesの生成におけるデータの流れを説明するための図。 印刷設定定義ファイル(GPD)の一部を示す図。 PrintCapabilitiesの記述例を示す図。 PrintTicketの記述例を示す図。 PrintCapabilitiesの記述例を示す図。 PrintCapabilitiesの生成処理を示すフローチャート。 用紙サイズ設定の決定処理を示すフローチャート。
以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
<第1実施形態>
[ハードウェア構成]
図1は、印刷システムのハードウェア構成の例を示すブロック図である。図1において、ホストコンピュータ101は、情報処理装置の一例であり、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、及び出力インタフェース116を有する。情報処理装置としては、例えば、PC(Personal Computer)などが該当する。入力インタフェース110には、キーボード118、ポインティングデバイス117などの入力デバイスが接続される。出力インタフェース115には、表示部119などの表示デバイスが接続される。なお、入力インタフェース、出力インタフェースそれぞれの数は、図1に示した構成に特に限定するものではない。
ROM112は、不揮発性の記憶領域であり、初期化プログラムが格納される。外部記憶装置114は、不揮発性の記憶領域であり、アプリケーションプログラム群、OS、プリンタドライバ203、その他の各種のデータが格納される。RAM113は、例えば、外部記憶装置114にストアされる各種のプログラムの実行の際のワークメモリとして使用される。なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び後述するフローチャートに係る処理が実現される。印刷装置102は、出力インタフェース116を介して、ホストコンピュータ101と接続されている。ここでは、ホストコンピュータ101と印刷装置102が分かれて構成されているが、これらが一つの情報処理装置として構成されていても良い。なお、本実施形態では、プリンタドライバを単に印刷ソフトウェアと呼ぶこともある。なお、本実施形態ではプリンタドライバを用いて説明するが、印刷データを生成する印刷ソフトウェア(例えば、印刷アプリケーション)に本実施形態が適用されても良い。
[ソフトウェア構成]
図2は、本実施形態に係る印刷システムのソフトウェア構成を説明するための図である。印刷システムは、XPSファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。プリンタドライバ203は、印刷装置102に対して印刷指示を行うことができる。コンフィグレーションモジュール219、フィルタパイプラインマネージャ221は、プリンタドライバ203に含まれている。しかし、これらは、ホストコンピュータ101のOSから提供されている、プリンタドライバ203のモジュールという位置づけである。
コンフィグレーションモジュール219は、印刷設定定義ファイル213に基づき、PrintTicketやPrintCapabilitiesの生成を行う。PrintTicketは、印刷装置102の印刷処理におけるXML形式で記述された設定情報である。PrintCapabilitiesは、印刷装置102の印刷機能に関する機能情報である。具体的な記述例については後述する。印刷設定定義ファイル213は、GPDと呼ばれるテキストベースで記載されている設定定義情報を含むファイルである。さらに、印刷設定定義ファイル213には「禁則」の定義を記載することができる。例えば、Microsoft(登録商標)社が定義した記述法に基づき、InvalidCombinationの項目に、同時に設定できない印刷設定の設定値を記載することで、ユーザに対して禁則機能を提供することができる。ここで、同時に設定できない印刷設定とは、デバイスの機能として提供できないものの他に、意図的にユーザに使用してほしくない項目なども含まれる。以下の説明においては、このように印刷設定定義ファイル213において、設定できない設定値に関する定義を「禁則」もしくは「禁則関係」と称する。なお、コンフィグレーションモジュール219は、PrintTicketやPrintCapabilitiesの生成を行うため、生成部と呼ばれることもある。
また、コンフィグレーションモジュール219は、プリンタドライバ203が提供する印刷設定編集モジュール211を用いて印刷設定情報を編集することができる。印刷設定編集モジュール211は、ConstraintScriptと呼ばれる、JavaScript(登録商標)言語で記載されたモジュールである。印刷設定編集モジュール211は、プリンタドライバ203によって格納されるデータが提供されるプロパティバッグ217を用いて印刷設定情報を編集する。
プロパティバッグ217とは、プリンタの機種依存情報として用いるためのDriverPropertyBagと呼ばれるデータ群と、プリントキューに関連づけられたQueuePropertyBagと呼ばれるデータ群が保持された領域を指す。DriverPropertyBagは、以降、DPBと称し、QueuePropertyBagは、以降、QPBと称する。DPBとQPBは、ともにOSによって提供されている保存領域である。DPBは、ドライバパッケージ内に存在するプリンタ(印刷装置)の機種依存データであり、プリンタドライバ203のインストール後にOS内の特定の領域に読取専用としてデータ群が保持される。QPBは、Key−ValueペアのXML定義ファイルをOSに登録することで使用することが可能であり、Valueに関して一定の権限上で編集が可能である。また、印刷設定定義ファイル213であるGPDにもQPBの定義を記載することができる。
プリンタエクステンション215は、V4プリンタドライバにおいて、ユーザが印刷設定を行うためのベンダ独自のユーザインタフェースを提供するモジュールである。プリンタエクステンション215は、印刷に用いる用紙サイズや印刷方向、その他の属性を設定する機能を提供する。
図2における印刷システムにおいて、アプリケーション201が印刷を行う場合、まず印刷設定情報の作成を行う。ここでのアプリケーション201は、特に限定するものではなく、例えば、文書編集アプリケーションなどが挙げられる。アプリケーション201は、プリンタドライバ203のコンフィグレーションモジュール219を呼び出して、印刷設定情報を作成して格納する。また、アプリケーション201は、印刷設定情報の作成にプリンタエクステンション215を用いることができる。アプリケーション201は、DEVMODE構造体、もしくはPrintTicketの形式で印刷設定情報を保持している。
次に、アプリケーション201は、印刷データの生成を行う。作成した文書の各ページの印刷データは、OSの印刷サポート機能を通じてXPSスプールファイル205に一時的に蓄えられる。XPSスプールファイル205が生成されると、フィルタパイプラインマネージャ221に処理が渡される。フィルタパイプラインマネージャ221は、複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィグレーションファイル227の内容に従ってフィルタの数や順番が制御される。本実施形態におけるフィルタ群は、レイアウト処理部であるレイアウトフィルタ223と、印刷コマンド変換部である印刷コマンドフィルタ225とを含んで構成される。
レイアウトフィルタ223は、XPSスプールファイル205に格納されたXPSドキュメントを入力とし、印刷設定情報に基づきページのレイアウト処理を行い、レイアウト済みのXPSデータを出力する機能を有する。レイアウト処理とは、例えば複数のページを一つの用紙面に印刷する割り付け印刷や、一つのページを複数の用紙面に印刷するポスター印刷を含む。
印刷コマンドフィルタ225は、レイアウトフィルタ223の出力を入力とし、印刷設定情報に従い、XPSドキュメントを印刷装置102が解釈可能な印刷コマンドに変換し出力する機能を有する。印刷コマンドフィルタ225が入力のXPSドキュメントを一度イメージデータに変換する場合、印刷コマンドフィルタ225は一般的にレンダフィルタと呼ばれる。レンダフィルタは、インクジェットプリンタに代表される廉価なラスタプリンタ用のプリンタドライバにおいて多く見られる。印刷コマンドフィルタ225がレンダフィルタとして動作する場合は、入力のXPSドキュメントを一度イメージデータに変換する。その後、色空間の変換や二値化等の画像処理の過程を経て、ラスタプリンタが解釈可能な印刷コマンドに変換される。
ページプリンタに代表される高機能なプリンタにおいて、プリンタが解釈できる印刷コマンドの種類にXPSが含まれる場合、印刷コマンドフィルタ225は、入力のXPSドキュメントを編集してXPSドキュメントを出力する。印刷コマンドフィルタ225にて処理する必要がなければ、入力のXPSドキュメントをそのまま出力しても良いし、若しくは、印刷コマンドフィルタ225はプリンタドライバ203に含められなくても良い。
[PrintCapabilitiesの生成におけるデータの流れ]
図3は、アプリケーション201がPrintCapabilitiesを要求した際に、コンフィグレーションモジュール219がPrintCapabilitiesを返却するまでのデータの流れを示す図である。図3(a)では、アプリケーション201は、コンフィグレーションモジュール219にPrintCapabilitiesを要求する際に、基準となるPrintTicketを送信している。
PrintCapabilitiesは特定の設定下において設定可能な機能を示す情報である。例えば、用紙の種類にメディアA、メディアBが存在し、メディアAはフチなし印刷が可能であり、メディアBはフチなし印刷が不可能であったとする。この場合、アプリケーション201が印刷設定UI(不図示)を提供する際に、メディアBが選択された状態ではフチなし印刷を設定できないようにすることが望ましい。これをPrintCapabilitiesで表現する場合、メディアBが選択されていることを認識した上で、フチなし印刷が設定できないことを示す必要がある。そのためには用紙の種類に何が設定されているかなど、基準となる設定を示す情報が必要になる。アプリケーション201がPrintCapabilitiesを要求する際に渡すPrintTicketは基準となる設定を通知するために使用される。
まず、コンフィグレーションモジュール219は、印刷設定定義ファイル213に基づき、渡されたPrintTicketの設定を基準としてPrintCapabilitiesを生成する。前述の例では、印刷設定定義ファイル213に、用紙の種類にメディアA、メディアBが存在することや、メディアBでフチなし印刷ができないことが記載される。また、アプリケーション201から渡されたPrintTicketには、PrintCapabilities生成の基準となる設定、例えば、用紙の種類としてメディアBが選択されている等、が記載されている。
次に、コンフィグレーションモジュール219は、印刷設定編集モジュール211を呼び出す。印刷設定編集モジュール211は、コンフィグレーションモジュール219が生成したPrintCapabilitiesに対して編集処理を行う。コンフィグレーションモジュール219は印刷設定定義ファイル213に基づいてPrintCapabilitiesを生成するので、印刷設定定義ファイル213に表現できない情報の追加は印刷設定編集モジュール211によって行われる。また、コンフィグレーションモジュール219は、印刷設定編集モジュール211にPrintCapabilitiesの編集を要求するにあたり、コンフィグレーションモジュール219の作成したPrintCapabilitiesと、アプリケーション201が渡してきたPrintTicketを印刷設定編集モジュール211に渡す。
印刷設定編集モジュール211は、コンフィグレーションモジュール219から渡されたPrintTicketと、DPBに格納された機種依存情報などを基に、PrintCapabilitiesの編集を行う。印刷設定編集モジュール211によって編集されたPrintCapabilitiesは、コンフィグレーションモジュール219を介して要求元のアプリケーション201に返却される。アプリケーション201は取得したPrintCapabilitiesを用いて印刷設定を行うUIの構築を行う。
図3(b)では、アプリケーション201は、基準となるPrintTicketを渡さずにPrintCapabilitiesを要求する。この場合、コンフィグレーションモジュール219はユーザデフォルト設定301を基にPrintCapabilitiesを生成する。ユーザデフォルト設定301は、ユーザによってデフォルト値として指定された設定値であり、外部記憶装置114等に保持されている。PrintCapabilitiesを生成したコンフィグレーションモジュール219は、印刷設定編集モジュール211を呼び出す。
印刷設定編集モジュール211は、PrintCapabilitiesの編集を行う。アプリケーション201からコンフィグレーションモジュール219にPrintTicketが渡されていない場合、印刷設定編集モジュール211にもPrintTicketは渡されない。また、印刷設定編集モジュール211は、ユーザデフォルト設定301も取得することができないため、PrintCapabilitiesの編集に必要な基準となる印刷設定を取得することができない。そのため、印刷設定編集モジュール211は、PrintTicketの情報が必要となる編集を行わないか、予め定義した固定の設定を基に編集処理を行うことになる。コンフィグレーションモジュール219がユーザデフォルト設定301に従いPrintCapabilitiesを生成できる。しかし、印刷設定編集モジュール211はユーザデフォルト設定301を用いずにPrintCapabilitiesの編集を行うことになる。その結果、PrintCapabilitiesの内容に不整合が生じる可能性がある。そのため、アプリケーション201からPrintTicketが渡されてこないケースにおいても、編集に使用する機能についてユーザデフォルト設定301における設定値を印刷設定編集モジュール211が取得できるようにする必要がある。
[ファイル構成]
(印刷設定定義ファイル)
図4は、印刷設定定義ファイル(GPD)の一部を示す図である。尚、ここでは本実施形態の説明に必要な情報のみが記載されているが、プリンタドライバ203でサポートする機能についても同様に記載される。GPDには、機能(Feature)と、その機能で選択可能な項目(Option)が記載される。1の機能(Feature)に対し、1または複数の項目(Option)が記載される。例えば、図4に示す例においては、機能の一例が用紙サイズ(PaperSize)であり、項目の一例がA4(A4)、ユーザ定義サイズ(CUSTOMSIZE)の設定値である。
FeatureとOptionには、それぞれ表示名称を記載することができる。記載された表示名称は、PrintCapabilitiesにおいてDisplayNameとして使用される。表示名称の記載方法には、名称を直接指定する方法(Name)と、文字列データを格納したリソースファイルを用いて、対象の文字列と対応づけるためのIDを指定する方法(rcNameID)とがある。図4に示す例においては、機能(Feature)が用紙サイズ(PaperSize)では、その機能と項目の表示名称はIDにて指定されている。また、印刷設定編集モジュール211が用紙サイズのユーザデフォルト設定を取得するために用いられる用紙サイズと対応した機能(PaperSizeDummy)では、その機能と項目の表示名称は直接指定されている。
GPDでは、前述のように禁則の定義を記載することができる。前述のInvalidCombinationの項目に、同時に設定できない印刷設定情報の設定値を記載することで、プリンタドライバ203は、ユーザに対して禁則機能を提供することができる。また、各OptionにConstraintsの項目を設け、同時に設定できない設定値を記載することでも、プリンタドライバ203は、ユーザに対して禁則機能を提供することができる。
図4のGPDには、印刷設定に用いる用紙サイズ(PaperSize)と、印刷設定編集モジュール211が用紙サイズのユーザデフォルト設定を取得するために用いられる用紙サイズと対応した機能(PaperSizeDummy)が存在する。本実施形態において、PaperSize機能に対応して、PaperSizeDummy機能が定義されている。PaperSizeには、A4とCUSTOMSIZEの2つのOptionが存在する。定型サイズであるA4には、印刷可能領域の原点(PrintableOrigin)と幅/高さ(PrintableArea)が記載されている。また、用紙外形を後から設定可能なユーザ定義サイズ(CUSTOMSIZE)には、設定可能なサイズの上限/下限(MaxSize/MinSize)や、印刷可能領域を決定するための情報が記載されている。PaperSizeにおいては、デフォルト設定(DefaultOption)としてA4が指定されている。
PaperSizeDummyには、PaperSizeが有するOptionと対応したOptionが設けられる。PaperSizeのA4とPaperSizeDummyのISOA4、PaperSizeのCUSTOMSIZEとPaperSizeDummyのCustomMediaSizeがそれぞれ対応したOptionである。対応したOptionは同時に設定できないように禁則の定義を記載する。図4の場合、PaperSizeDummyのOptionにおいて、Constraintsを記載し、設定できない対象を示している。禁則を定義しておくことでGPDを基に生成されるPrintCapabilitiesにはPaperSizeで設定されたOptionに応じて、PaperSizeDummyの対応したOptionが設定できないことを示す情報が付加されるようになる。
加えて、PaperSizeDummyには、PaperSizeの持つOptionと対応していないOptionを1つ記載する。図4のGPDではNoneと定義したOptionがこれに該当する。このOptionは、PaperSizeDummyのデフォルト設定(DefaultOption)とする。デフォルトとなるOptionには禁則の定義を記載しない。GPDに記載した禁則の定義は双方向で適用される。つまり、PaperSizeのCUSTOMSIZEが設定された場合は、PaperSizeDummyのCustomMediaSizeが設定できないようになる。一方、PaperSizeDummyのCustomMediaSizeが設定されている場合は、PaperSizeのCUSTOMSIZEできないようになる。PaperSizeDummyについても、GPDに記載したことで設定可能な機能として判断され、いずれか1つのOptionが設定されることになる。PaperSizeDummyに禁則の定義のないOptionを設けないと、PaperSizeDummyで設定されたOptionに対応した用紙サイズが選択できないようになってしまうため、禁則の定義を記載しないOptionが必要になる。
印刷設定編集モジュール211は、PrintCapabilitiesにおけるPaperSizeDummyの状態を参照することでPaperSizeの設定を決定する。つまり、印刷設定編集モジュール211は、ユーザデフォルト設定301の情報を取得できないが、PaperSizeDummyの状態を参照することでユーザデフォルト設定における設定情報を取得することが可能となる。なお、図4のGPDを基にコンフィグレーションモジュール219により生成されるPrintCapabilitiesについては図5を用いて説明する。また、印刷設定編集モジュール211が、図4のGPDを基に生成されたPrintCapabilitiesからPaperSizeの設定を決定する処理については、図9を用いて後述する。
(PrintCapabilities)
図5は、図4のGPDに基づきコンフィグレーションモジュール219により生成されるPrintCapabilitiesの一部の記述例を示す。PrintCapabilitiesは、XML(eXtensible Markup Language)で記述される。印刷設定定義ファイルで定義されたFeature及びOptionに対応して、PrintCapabilitiesでも、FeatureとOptionが階層構造で表現される。また、それぞれOptionの子要素として表示名称を表すDisplayNameがPropertyとして定義される。さらに、各Optionには、constrained属性が記述される。constrained属性は、対象のOptionが設定可能な状態であるかを示す。設定可能な場合、constrained属性には“None”が設定される。印刷設定定義ファイルに記述された禁則に従い、指定されたPrintTicketに基づく設定下で設定できない場合、constrained属性には他の設定と競合して設定できない旨を示す“PrintTicketSettings”が設定される。図5では、これらの設定値が記述された例を示している。その他にも、現在のデバイスの状態によって設定できない旨を示す“DeviceSettings”などの設定値がある。
GPDでPaperSizeと記載した機能は、PrintCapabilitiesではPageMediaSizeとして記載される。同様にA4、CUSTOMSIZEと記載したOptionは、それぞれISOA4、CustomMediaSizeとして記載される。前記のようにGPDとPrintCapabilitiesとの間で、FeatureやOptionが異なる場合がある。このマッピングは定められたルールに従いコンフィグレーションモジュール219で行われるもので、一部の一般的な機能、及び設定項目についてのみ行われる。それ以外の機能や項目については、GPDで定義した名称がそのままPrintCapabilitiesでも使用される。PageMediaSizeの各Optionには付加情報として用紙サイズの幅/高さ(MediaSizeWidth/MediaSizeHeight)が記載される。CustomMediaSizeについてはユーザによって任意のサイズを指定することが可能であるため、用紙サイズの幅/高さは別項目で設定される。そのため、MediaSizeWidth/MediaSizeHeightには、用紙サイズの幅/高さを設定する設定項目(PageMediaSizeMediaSizeWidth/PageMediaSizeMediaSizeHeight)が参照先として記載される。
GPDでPaperSizeDummyと記載した機能とOptionはそのままの名称でPrintCapabilitiesに記載される。図4に示すように、PaperSizeDummyOptionには、GPDで記載したNone、ISOA4、CustomMediaSizeが存在する。図5において、PaperSizeDummyのCustomMediaSizeは、constrained属性値が“PrintTicketSettings”となっている。これはPrintCapabilitiesの生成の基準となる印刷設定において、PaperSizeにCustomMediaSizeが設定されていた場合、図4のGPDに記載した禁則の定義に従いこのように表現される。例えば、ユーザデフォルト設定301においてPaperSizeにCustomMedeiaSizeが設定されていた場合、PaperSizeDummyのCustomMediaSizeは、constrained属性値が“PrintTicketSettings”となる。なお、アプリケーションから渡されたPrintTicketのPaperSizeにCustomMedeiaSizeが設定されていた場合も同様である。
(PrintTicket)
図6は、PrintTicketの記述例を示す図である。PrintTicketは、XMLで記述される。PrintTicketには、機能(Feature)毎に、設定項目(Option)が記載される。また、選択形式ではない機能については、ParameterInitやPropertyの形式で、任意の数値や文字列を設定することが可能である。
図6のPrintTicketでは、PageMediaSizeの設定としてCustomMediaSizeが設定されている。CustomMediaSizeはユーザが任意の用紙サイズを指定することを示す設定である。ここでは、ユーザが指定したサイズをPageMediaSizeMediaSizeWidthとPageMediaSizeMediaSizeHeightで設定している。図6のPrintTicketを基準としてPrintCapabilitiesを生成すると、図5のようにPaperSizeDummyのCustomMediaSizeは、constrained属性の値が“PrintTicketSettings”となる。
(サイズ情報の例)
図7は、図6のPrintTicketを基に生成されたPrintCapabilitiesに記載されるサイズ情報の記述例を示す図である。PrintCapabilitiesに記載されるサイズ情報(PageImageableSize)は、用紙サイズの幅/高さ(ImageableSizeWidth/ImageableSizeHeight)、印刷可能領域の幅/高さ(ImageableAreaのExtentWidth/ExtentHeight)、及び、印刷可能領域の原点(ImageableAreaのOriginWidth/OriginHeight)で構成される。PrintCapabilitiesのPageImageableSizeは、PrintCapabilitiesの生成の基となった印刷設定におけるPageMediaSizeの設定値と、GPDに記載された印刷可能領域の情報に基づいて決定する。アプリケーション201は、PrintCapabilitiesに含まれるPageImageableSizeの情報に基づいて印刷データを生成することで、設定した用紙サイズに納まるレイアウトで印刷を行うことができる。
前述のように、PrintCapabilitiesのPageImageableSizeは、GPDに記載された印刷可能領域の情報に基づいてコンフィグレーションモジュール219で生成される。しかし、PageImageableSizeをGPDの記載で表現できない規則に基づいて決定したい場合、印刷設定編集モジュール211がPrintCapabilitiesを編集する必要がある。
例えば、図4のGPDに記載されたユーザ定義用紙サイズの印刷可能領域の幅(CustPrintableSizeX)は、設定された用紙の幅(PhysPaperWidth)から両端のマージンを引くことで決定するように記載されている。ここでは、左右のマージンがどちらも120と置いた場合、左右あわせて240のマージンを引くように記述されている。この場合、マージンの値は一定であるため、指定した用紙の幅に比例して印刷可能領域の幅が大きくなる。しかし、プリンタの印刷可能領域の幅に制限がある場合、用紙の幅を大きくしていくと印刷可能領域の幅がプリンタの印刷可能な範囲を超えてしまうことが考えられる。印刷可能領域の幅がプリンタの印刷可能領域を超過するサイズまで用紙の幅をサポートしたい場合、用紙サイズの幅が一定の値を超えている場合に印刷領域を固定する処理を行う必要がある。つまり、マージンの値を変動させる必要がある。
[処理フロー]
印刷設定編集モジュール211がPrintCapabilitiesの印刷可能領域情報を編集する処理について、図8を用いて説明する。図8の処理では、印刷設定編集モジュール211はPrintCapabilities生成の基準となる印刷設定でユーザ定義サイズが指定されている場合に処理を行うため、印刷設定編集モジュール211が用紙サイズの設定を取得する必要がある。
図8は、印刷設定編集モジュール211における、PrintCapabilitiesの生成処理を示すフローチャートである。この処理は、コンフィグレーションモジュール219が印刷設定定義ファイル213に基づき生成したPrintCapabilitiesに対して、例えば、プリンタドライバ203を提供するベンダ独自の処理を行うものである。図8の処理は、例えば、CPU111がROM112に記憶されたプログラムをRAM113に読み出して実行することにより実現される。なお、図8は、例えば、アプリケーション201がPrintCapabilitiesの取得をコンフィグレーションモジュール219に依頼した際に開始される。
S801にて、印刷設定編集モジュール211は、編集対象のPrintCapabilitiesを取得する。取得されるPrintCapabilitiesは、コンフィグレーションモジュール219が印刷設定定義ファイル213に基づき生成したものである。
S802にて、印刷設定編集モジュール211は、PageMediaSizeの設定値を取得する。本工程におけるPageMediaSizeの設定値の決定処理について、図9を用いて説明する。
図9は、PageMediaSizeの設定値の決定処理を示すフローチャートである。
S901にて、印刷設定編集モジュール211は、編集対象のPrintTicketを取得する。取得されるPrintTicketは、アプリケーション201が、PrintCapabilitiesの要求時に渡してくるものである。なお、アプリケーション201が要求時にPrintTicketを渡さない場合、ここでは取得されないこととなる。
S902にて、印刷設定編集モジュール211は、PrintTicketが存在するかを判定する。図3を用いて説明したように、アプリケーション201は、コンフィグレーションモジュール219に対して、PrintTicketを渡さずにPrintCapabilitiesを要求することも可能である。アプリケーション201がPrintCapabilitiesを要求する際にPrintTicketを指定しない場合、印刷設定編集モジュール211は、PrintTicketを取得することができない。PrintTicketが存在すると判定された場合は(S902にてYES)S903へ進む。PrintTicketが存在しないと判定された場合は(S902にてNO)S904へ進む。
S903は、アプリケーション201がPrintCapabilitiesを要求する際に基準となるPrintTicketを渡してきた場合の処理である(図3(a)の場合)。S903にて、印刷設定編集モジュール211は、PrintTicketからPageMediaSizeの設定値を取得する。例えば、図6のPrintTicketが取得された場合、PageMediaSizeの設定値はCustomMediaSizeとなる。また、各設定値は、幅(MediaSizeWidth)が“177800”となり、高さ(MediaSizeHeight)が“203200”となる。そして、本処理フローを終了し、図8のS803の処理へ進む。
S904からS907は、アプリケーション201がPrintCapabilitiesを要求する際に基準となるPrintTicketを渡してこなかった場合の処理である(図3(b)の場合)。この場合、印刷設定編集モジュール211は、PrintTicketから設定を取得することができないため、図4のGPDに基づいて生成されたPrintCapabilitiesを用いて、PageMediaSizeの設定値を決定する。
S904からS906は、印刷設定編集モジュール211が、図5のPrintCapabilitiesのPaperSizeDummyに存在するOption群から、Constrained属性の値が“PrintTicketSettings”であるOptionを探す処理である。
S904にて、印刷設定編集モジュール211は、PrintCapabilitiesのPaperSizeDummyから未処理のOptionを取得する。図5の例の場合、PaperSizeDummyにおいて3つのOptionが記述されており、上から順に処理が行われることとなる。
S905にて、印刷設定編集モジュール211は、S904で取得したOptionのConstrained属性の値を確認する。
S906にて、印刷設定編集モジュール211は、S905にて確認したConstrained属性の値が“PrintTicketSettings”であるか判定する。処理中のOptionのConstrained属性の値が“PrintTicketSettings”である場合は(S906にてYES)S907に進む。処理中のOptionのConstrained属性の値が“PrintTicketSettings”でない場合は(S906にてNO)S904に戻る。そして、印刷設定編集モジュール211は、S904からS906を繰り返すことでConstrained属性の値が“PrintTicketSettings”のOptionを特定する。
S907にて、印刷設定編集モジュール211は、取得したOptionに対応したPageMediaSizeの設定値を、ユーザデフォルト設定で設定されているPageMediaSizeの設定値として決定する。そして、本処理フローを終了し、図8のS803の処理へ進む。
図3(b)を用いて上述したように、コンフィグレーションモジュール219は、アプリケーション201からPrintTicketが渡されない場合、ユーザデフォルト設定に基づきPrintCapabilitiesの生成を行う。従って、GPDに記載された禁則の定義に基づく情報はコンフィグレーションモジュール219が生成したPrintCapabilitiesに反映されることとなる。そのため、PageMediaSizeのユーザデフォルト設定に従ってPaperSizeDummyの各OptionのConstrained属性が設定される。これにより、印刷設定編集モジュール211は、PaperSizeDummyを参照することでPageMediaSizeの設定値を決定することができる。従って、印刷設定編集モジュール211は、PrintTicketが渡されてこない場合においても、該当設定項目のユーザデフォルト設定を決定することが可能となる。
S802(図9)の処理により、印刷設定編集モジュール211は、PageMediaSizeの設定値を決定する。その後、S803にて、印刷設定編集モジュール211は、PageMediaSizeの設定値がCustomMediaSizeかを判定する。PageMediaSizeにCustomMediaSizeが設定されている場合は(S803にてYES)S804に進む。PageMediaSizeにCustomMediaSize以外が設定されている場合は(S803にてNO)本処理フローを終了する。
S804にて、印刷設定編集モジュール211は、図7に示すPrintCapabilitiesのPageImageableSizeから印刷可能領域の幅を示すExtentWidthを取得する。
S805にて、印刷設定編集モジュール211は、プロパティバッグ217に含まれるDPBから印刷装置における印刷領域の最大幅を取得する。
S806にて、印刷設定編集モジュール211は、S804で取得したExtentWidthと、S805で取得した印刷領域の最大幅を比較する。ExtentWidthの方が大きい場合は(S806にてYES)S807へ進む。印刷領域の最大幅がExtentWidth以上である場合(S806にてNO)、編集の必要がないため、本処理フローを終了する。
S807にて、印刷設定編集モジュール211は、PrintCapabilitiesのExtentWidthの値をS804にて取得した印刷領域の最大幅に変更する。
S808にて、印刷設定編集モジュール211は、ExtentWidthが小さくなったのに伴い、印刷可能領域の原点を示すOriginWidthを併せて修正する。そして、本処理フローを終了する。尚、印刷可能領域を中央合わせした場合などはS807の処理が必要になる。一方、原点は固定したまま右マージンを広げたい場合はS807の処理は不要となる。
図8の処理により、印刷設定編集モジュール211は、PrintTicketが渡されてくるか否かに依らず、PrintCapabilitesにおける印刷可能領域の情報を適切に編集することが可能となる。本実施形態では、このとき、PrintCapabilitiesの生成の基準となる印刷設定で、用紙サイズにユーザ定義用紙サイズが設定されているかを判断している。これによって、アプリケーション201は印刷可能領域外にデータを配置するようなことがなくなり、失敗印刷を防止することができる。
尚、PaperSizeDummyについてはGPDに記載されていることから設定可能な機能の一つとしてPrintCapabilitiesに記載される。しかし、PaperSizeDummyは印刷設定編集モジュール211で参照した後は不要となる機能なので、印刷設定編集モジュール211によって、編集後のPrintCapabilitiesから削除してしまってもよい。PrintCapabilitiesからPaperSizeDummyを削除することで、PrintCapabilitiesを要求したアプリケーションがPaperSizeDummyの設定UIを提供して設定値を変更することを防ぐことができる。また、GPDには各機能に対して設定UIで表示すべきか否かの情報を記述することができる。PaperSizeDummyはユーザが設定すべきでない機能なので、印刷設定編集モジュール211は、この機能に関し表示すべきでない項目としてGPDに登録してもよい。
また、本実施形態では、設定を取得したい機能(PaperSize)の全てのOptionに対して、設定取得用の機能(PaperSizeDummy)に対となるOptionを設けている。しかし、設定取得用の機能には、取得したいOptionと対となるOptionだけあれば、所望の設定値を取得することは可能である。例えば、図8の処理を行う場合、PaperSizeがCustomMediaSizeか否かだけが判断できればよい。そのため、PaperSizeDummyのOptionには、デフォルト設定のNoneとCustomMediaSizeだけを設けてもよい。この場合、PaperSizeに何が設定されているかは判断できなくなるが、CustomMediaSizeが設定されているか否かについては判断可能であるため、図8の処理を行う上では十分である。このように、設定取得用の機能に設けるOptionには、取得したい情報に応じて適切なものを設定すればよい。
本実施形態では用紙サイズに基づいた処理を例に説明したが、それ以外の設定に基づいた処理を印刷設定編集モジュール211で行うことも考えられる。その場合、図4に示した形で、取得したい設定に対応したFeatureとOptionをGPDに定義しておくことで、GPD記載の任意の設定項目について本実施形態の手法が適用できることは言うまでもない。
<その他の実施形態>
本発明は上述の実施形態の1以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
102・・・印刷装置、201・・・アプリケーション、203・・・プリンタドライバ、211・・・印刷設定編集モジュール、213・・・印刷設定定義ファイル、215・・・プリンタエクステンション、217・・・プロパティバッグ、219・・・コンフィグレーションモジュール、301・・・ユーザデフォルト設定

Claims (8)

  1. 印刷ソフトウェアを備える情報処理装置であって、
    設定定義情報に基づき、前記印刷ソフトウェアの機能情報を生成する生成部により生成される機能情報に対して編集を行う編集手段
    を備え、
    前記設定定義情報は、複数の設定値のいずれかを設定可能に定義された第1の機能と、前記第1の機能に対応し、前記複数の設定値それぞれと禁則関係にある設定値が定義された第2の機能とを含み、
    前記編集手段は、
    前記生成された機能情報において、前記第1の機能の現在の設定により禁則関係となっていると示されている設定値を前記第2の機能に定義されている設定値から特定し、
    前記特定した設定値に基づいて、前記機能情報を編集することを特徴とする情報処理装置。
  2. 前記設定定義情報は、前記第2の機能において、前記第1の機能の前記複数の設定値のいずれとも禁則関係とならない設定値が更に定義され、
    当該禁則関係とならない設定値が前記第2の機能のデフォルト値として設定されることを特徴とする請求項1に記載の情報処理装置。
  3. 前記編集手段は、前記生成された機能情報から前記第2の機能に関する情報を削除することを特徴とする請求項1または2に記載の情報処理装置。
  4. アプリケーションが前記印刷ソフトウェアの機能情報を要求する際に設定情報を送信した場合は、前記設定情報にて指定された値を用いて前記機能情報が生成され、前記アプリケーションが前記印刷ソフトウェアの機能情報を要求する際に前記設定情報を送信しない場合は、ユーザが設定したデフォルト値に基づいて前記機能情報が生成されることを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
  5. 前記編集手段は、
    アプリケーションから送信された設定情報を取得したか否かを判定し、
    前記設定情報を取得したと判定した場合は、前記設定情報にて指定された値を用いて前記機能情報を編集し、
    前記設定情報を取得していないと判定した場合は、前記生成された機能情報において、前記第2の機能に定義されている設定値のうち、前記第1の機能の現在の設定により禁則関係となっていると示されている設定値を特定し、前記特定した設定値に基づいて、前記機能情報を編集することを特徴とする請求項1乃至4のいずれか一項に記載の情報処理装置。
  6. 前記印刷ソフトウェアは、V4プリンタドライバであることを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。
  7. 印刷ソフトウェアを備える情報処理装置の制御方法であって、
    設定定義情報に基づき、前記印刷ソフトウェアの機能情報を生成する生成部により生成される機能情報に対して編集を行う編集工程
    を有し、
    前記設定定義情報は、複数の設定値のいずれかを設定可能に定義された第1の機能と、前記第1の機能に対応し、前記複数の設定値それぞれと禁則関係にある設定値が定義された第2の機能とを含み、
    前記編集工程において、
    前記生成された機能情報において、前記第1の機能の現在の設定により禁則関係となっていると示されている設定値を前記第2の機能に定義されている設定値から特定し、
    前記特定した設定値に基づいて、前記機能情報を編集することを特徴とする情報処理装置の制御方法。
  8. コンピュータを、
    設定定義情報に基づき、前記コンピュータが備える印刷ソフトウェアの機能情報を生成する生成部により生成される機能情報に対して編集を行う編集手段
    として機能させ、
    前記設定定義情報は、複数の設定値のいずれかを設定可能に定義された第1の機能と、前記第1の機能に対応し、前記複数の設定値それぞれと禁則関係にある設定値が定義された第2の機能とを含み、
    前記編集手段は、
    前記生成された機能情報において、前記第1の機能の現在の設定により禁則関係となっていると示されている設定値を前記第2の機能に定義されている設定値から特定し、
    前記特定した設定値に基づいて、前記機能情報を編集することを特徴とするプログラム。
JP2018007589A 2018-01-19 2018-01-19 情報処理装置およびその制御方法、並びにプログラム Pending JP2019128606A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018007589A JP2019128606A (ja) 2018-01-19 2018-01-19 情報処理装置およびその制御方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018007589A JP2019128606A (ja) 2018-01-19 2018-01-19 情報処理装置およびその制御方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2019128606A true JP2019128606A (ja) 2019-08-01

Family

ID=67472316

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018007589A Pending JP2019128606A (ja) 2018-01-19 2018-01-19 情報処理装置およびその制御方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP2019128606A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102076209B1 (ko) 2019-08-19 2020-03-02 유용호 시트 사이즈별 개별 재고 인식을 통한, 프린팅 시트 자동 트리거링 시스템

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102076209B1 (ko) 2019-08-19 2020-03-02 유용호 시트 사이즈별 개별 재고 인식을 통한, 프린팅 시트 자동 트리거링 시스템

Similar Documents

Publication Publication Date Title
US20230115514A1 (en) Print processing system and control method
US8300238B2 (en) Print control device and method
JP5675047B2 (ja) 文書処理装置およびコンピュータプログラム
US9304727B2 (en) Non-transitory computer-readable storage medium and method of adding print feature to output of printer driver
JP5072676B2 (ja) 情報処理装置、情報処理方法及び印刷システム
US10402139B2 (en) Information processing apparatus that generates print function information, and related control method and storage medium storing program
JP7158871B2 (ja) プログラム及び情報処理装置
US8605316B2 (en) Information processing apparatus and control method thereof, and storage medium
JP5031514B2 (ja) データ処理装置およびデータ処理方法
JP2017151820A (ja) 情報処理装置、プログラム及び制御方法
JP2019128606A (ja) 情報処理装置およびその制御方法、並びにプログラム
US10592180B2 (en) Information processing device, information processing method, and recording medium
US10002314B2 (en) Information processing apparatus for efficiently issuing a print instruction to image forming apparatus and method for controlling the same
US10606528B2 (en) Information processing apparatus, information processing system, information processing method, and non-transitory computer-readable storage medium
JP6827738B2 (ja) 制御方法、プログラム及び情報処理装置
JP6234417B2 (ja) 情報処理装置及びその制御方法とプログラム
KR20120130068A (ko) 정보 처리 장치, 제어 방법 및 저장 매체
JP5729652B2 (ja) プリンタドライバ及びプリンタドライバのローカライズ方法
JP6437076B2 (ja) 情報処理装置及びその制御方法とプログラム
JP7307577B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2006190311A (ja) 文書印刷処理方法
US20100142001A1 (en) Information processing apparatus, method for controlling the information processing apparatus, and storage medium
JP2019074884A (ja) プログラム、データ通信方法、および情報処理装置
JP2011154728A (ja) 印刷制御装置及び方法
JP7271208B2 (ja) プログラム、および情報処理装置

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113