[go: up one dir, main page]

JP2017033050A - 情報処理装置および制御方法およびプログラム。 - Google Patents

情報処理装置および制御方法およびプログラム。 Download PDF

Info

Publication number
JP2017033050A
JP2017033050A JP2015149076A JP2015149076A JP2017033050A JP 2017033050 A JP2017033050 A JP 2017033050A JP 2015149076 A JP2015149076 A JP 2015149076A JP 2015149076 A JP2015149076 A JP 2015149076A JP 2017033050 A JP2017033050 A JP 2017033050A
Authority
JP
Japan
Prior art keywords
print
invalid
user
printer
paper
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
JP2015149076A
Other languages
English (en)
Inventor
章弘 三井
Akihiro Mitsui
章弘 三井
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 JP2015149076A priority Critical patent/JP2017033050A/ja
Publication of JP2017033050A publication Critical patent/JP2017033050A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Accessory Devices And Overall Control Thereof (AREA)

Abstract

【課題】印刷設定で動的に機能を追加するときに、他の機能の無効な組み合わせを複製する情報処理装置を提供する。
【解決手段】情報処理装置は、印刷を行うプリンタードライバーが持つ機種依存データを読み込む手段と、動的に機能を追加する手段と、1つの機能に関する無効な組み合わせをすべて選び出す手段とS701、選びだしたすべての無効な組み合わせを複製する手段S702と、複製した無効な組み合わせの中の機能を動的に追加した機能に置き換える手段S703と、動的に追加した機能に置き換えたすべての無効な組み合わせを元の機種依存データと組み合わせて処理を行う手段S704と、を有する。
【選択図】図7

Description

本発明は、プリンターに印刷するためのプリンタードライバーにおいて、印刷設定で動的に機能を追加するときに、他の機能の無効な組み合わせを複製するプログラムに関する。
Microsoft(登録商標)のWindows(登録商標)8では、新しいアーキテクチャーのV4プリンタードライバーが導入された。V4プリンタードライバーは、PPD(PostScript Printer Description)やGPD(Generic Printer Description)という機種依存ファイルで、各機種で使用できる印刷設定の機能を表現する。同時に設定することができない機能については、無効な組み合わせ(Invalid Combination)としてPPDやGPDに記載する。たとえば、A5用紙は小さくステイプルできないので、「用紙サイズのA5」と「ステイプルのオン」は同時に指定できない機能になり、機能同士をそれぞれ無効な組み合わせとして記載する。ユーザーが印刷設定を変更することによって、PPDやGPDに記載した無効な組み合わせになったときは、V4プリンタードライバーは、優先順位が最も低い機能を使用できないように強制的に設定を変更する。このように印刷設定の無効な組み合わせによって設定を変更することは、禁則による丸め処理と呼ばれることもある。
印刷設定の中には動的に機能を追加するものがある。たとえば、ユーザー定義用紙は、ユーザーが印刷設定をする際に、好きな幅と高さを指定したカスタムの用紙を作成する機能である。カスタムの用紙であることを利用して、事前にPPDやGPDにカスタム用紙用の無効な組み合わせを記載しているが、幅と高さによってはこの組み合わせが変わることがある。たとえば、定型用紙に近い用紙サイズであればステイプルや両面などのフィニッシング機能を使うことができるが、幅と高さが定型用紙から大きく離れている場合は片面印刷しかできないといったものである。このように、ユーザー定義用紙の幅と高さによって動的に変化する無効な組み合わせは、事前にPPDやGPDに記載しておけないので、カスタムの用紙のための無効な組み合わせは1つしか記載できない。
そこで、V4プリンタードライバーのUIを使って、PrintTicketとして機能を指示して、機能を動的に追加する方法(特許文献1)や、PPDやGPDとは別の拡張機能情報を用いて、機能を動的に追加する方法(特許文献2)が知られている。
特開2015−90634号公報 特開2014−209316号公報
しかしながら、PrintTicketを使って機能を指示する方法では、PrintTicketを2回変換しなければならないため、無効な組み合わせを処理するのに時間がかかり、プリンタードライバーの性能が落ちてしまう。また、新しい拡張機種情報を利用する方法では、PPDやGPDに記載された無効な組み合わせと連携することができないので、拡張機種情報にもすべての無効な組み合わせを記述しておく必要があり、2重管理となってしまう。
上記の課題を解決するために、本発明に係る情報処理装置は、
印刷を行うプリンタードライバーが持つ機種依存データを読み込む手段(S502)と、動的に機能を追加することができる手段(S602)と、1つの機能に関する無効な組み合わせをすべて選び出す手段と(S701)、選びだしたすべての無効な組み合わせを複製する手段(S702)と、複製した無効な組み合わせの中の機能を動的に追加した機能に置き換える手段(S703)と、動的に追加した機能に置き換えたすべての無効な組み合わせを元の機種依存データと組み合わせて処理を行う手段(S704)を持つことを特徴とする。
本発明に係る情報処理装置によれば、PPDやGPDをそのまま使用しながら、動的に無効な組み合わせを追加して無効な組み合わせを実現できるので、プリンタードライバーの性能の劣化はなく、機種情報もPPDやGPDのみに集中させることができる。
コンピューターシステムのハードウェアとソフトウェアのブロック構成図の一例を示す図である。 クライアントとサーバーとプリンターが接続されたネットワークの構成図の一例を示す図である。 V4プリンタードライバー印刷処理システムのブロック構成図の一例を示す図である。 V4プリンタードライバーの機種依存ファイルのGPDのサンプルである。 V4プリンタードライバーのデバイスアプリのコンフリクトエンジンのユーザーインターフェースを表示する前の初期化のフローチャートである。 V4プリンタードライバーのユーザー定義用紙を追加する際に、デバイスアプリが複製する無効な組み合わせを選択しているフローチャートである。 V4プリンタードライバーのデバイスアプリのコンフリクトエンジンにおいて、無効な組み合わせを複製するフローチャートである。 V4プリンタードライバーのユーザー設定用紙タイプを取得する際に、デバイスアプリが複製する無効な組み合わせを選択しているフローチャートである。 V4プリンタードライバーで、動的にユーザー定義用紙を追加して、無効な組み合わせを複製した機種依存ファイルのGPDのサンプルである。 V4プリンタードライバーで、デバイスアプリが表示するユーザーインターフェースである。 V4プリンタードライバーで、デバイスアプリが表示するユーザーインターフェースのうち、ユーザー定義用紙を登録するダイアログである。
以下、本発明を実施するための形態について図面を用いて説明する。
図1は本発明の実施形態を示す一般的な情報処理装置(コンピューター)を用いたシステムのブロック構成図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機能であっても、複数の機器からなるシステムであっても、ネットワークを介して接続がなされ処理が行われるシステムであっても、本発明を適用できることは言うまでもない。
CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って情報処理装置全体を制御する。RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。補助記憶装置105はアプリケーション1051、プリンタードライバー1052、オペレーティングシステム(OS)1053等を記録する。キーボード1031やマウス・タッチパネルなどに代表されるポインティングデバイス1032などの入力機器は、入力I/F103を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力I/F104は、データを外部に出力するためのインターフェースであり、モニタ1041やプリンター1042などの出力機器に対してデータを出力する。プリンター1042とは直接接続されるローカルI/Oのみならず、通信I/F106を通じて接続されるネットワーク1061を通して接続されていてもよい。また、107は共通データシステムバスで、I/Fやモジュール間でデータのやりとりを行う。
なお、本発明のフローチャートの各ステップは、CPUが、フローチャートに関するプログラムをメモリから読み出して実行することで実現される。また、プリンター1042は、印刷機能のみを持った印刷装置でも良いし、FAX機能のみを持ったFAX装置でも良いし、スキャン機能および印刷機能など複数の機能を持った複合機でも良い。なお、プリンター1042を画像処理装置と呼ぶこともある。
図2は本発明の実施の形態におけるネットワーク1061の環境を簡略した図である。
印刷される文書や画像を作成する単体もしくは複数のクライアントコンピュータ201/202がネットワークに接続されている。また、クライアントコンピュータのユーザーやプリンターを管理するサーバーコンピュータ203が接続されていることもある。単体もしくは複数のプリンター205および1042がネットワークに接続されている。
なお、プリンター205は、物理的にネットワークに接続されているが、実際には使用できないオフライン状態であることを示している。ネットワークにはPAN(Personal Area Network)、LAN(Local Area Network)、MAN(Metropolitan Area Network)、WAN(Wide Area Network)などの小規模から大規模までのネットワークがあり、これらの機器がすべてのネットワークに接続されている。クラウドなど、サーバーやプリンターがインターネットを越えて接続されていてもかまわない。つまり、情報処理装置とは、他の装置(例えば、プリンター等の画像処理装置)と接続可能な装置である。
図3はV4プリンタードライバー印刷システムのブロック構成図である。
V4プリンタードライバー印刷システムはXML Paper Specification(以下、XPSと略す)と呼ばれるファイルフォーマットをスプールデータとして使用し、印刷を行うシステムである。図3におけるソフトウェアコンポーネントである1051、1052、1053は、補助記憶装置105に記憶されており、実行時にRAM1022にロードされ、CPU101によって実行される。V4プリンタードライバー印刷システムは、オペレーティングシステム1053上で動作している。
プリントマネージャ318、GDItoXPS変換モジュール307、フィルターパイプラインマネージャ312はオペレーティングシステム1053に含まれるモジュールである。GDItoXPS変換モジュール307、フィルターパイプラインマネージャ312は、プリンタードライバー1052に含まれているが、オペレーティングシステム1053から提供されているプリンタードライバー1052専用のモジュールである。
プリンタードライバー1052とフィルターパイプラインマネージャ312の各フィルターである313から315と、デバイスアプリ310は、図1の補助記憶装置105にプリンタードライバー1052として格納されている。なお、デバイスアプリ310は、プリンタードライバーのインストールに連動して、ネットワークを介して自動的にインストールされる。
GDI印刷アプリケーション301(以下、GDIアプリと略す)とXPS印刷アプリケーション302(以下、XPSアプリと略す)は、図1の補助記憶装置105にアプリケーション1051として格納されている。GDIアプリ301は、オペレーティングシステム1053が用意するGDI(Graphics Device Interface)を使用して印刷を行うアプリである。XPSアプリ302は、XPSスプールファイル306を直接使用して印刷を行うアプリである。ユーザーはキーボード1031やタッチパネル/マウス1032などといった入力装置を使用して、出力装置のモニタ1041に映し出されたGDIアプリ301、もしくはXPSアプリ302から印刷処理を指示する。なお、印刷処理は「プリンターの選択」、「印刷設定データの作成」、「描画データの変換」と3つの処理を順番に行うことで実現される。以下、印刷処理の流れを説明する。
まず、ユーザーは、印刷したいプリンター1042を選択する。ユーザーから見るとプリンター1042の選択は、印刷を実行するプリンター1042に対応したプリンタードライバー1052を選択することと同じである。
次に印刷設定データが作成される。印刷設定データが作成される場合、アプリケーション1051が印刷設定データ用のメモリ領域をRAM1022に確保する。そして、アプリケーション1051は、プリンタードライバー1052のコンフィグモジュール308を呼び出して、印刷設定データを作成して格納する。GDIアプリ301では印刷設定データとしてバイナリのDEVMODE構造体303を用い、XPSアプリ302ではマークアップ言語のXML(eXtensive Markup Language)で記載されたプリントチケット304を用いる。DEVMODE構造体303は、オペレーティングシステムが定義する標準領域とプリンタードライバーが独自で定義する拡張領域を持つ。
プリントチケット304は、XML形式で記述された印刷設定データで、標準領域と拡張領域は名前空間によって記載が分かれている。印刷設定データには機種固有の情報も含まれているので、コンフィグモジュール308は、機種依存ファイル309を利用して、印刷設定データを作成する。アプリケーション1051は、DEVMODE構造体303もしくはプリントチケット304の内容を書き換えることで印刷設定を変更する。印刷設定データには、出力する用紙サイズの情報(例えば「A4」)、両面印刷の指定、カラーと白黒、給紙段の指定など、印刷に必要な設定値が含まれる。印刷設定データの標準領域は仕様が外部に公開されているので、アプリケーションが直接変更できる。プリンター1042に依存した拡張領域は、プリンタードライバー1052だけが詳細な仕様を把握しているので、通常はデバイスアプリ310が持つユーザーインターフェースを使ってユーザーが設定する。DEVMODE構造体303と異なり、プリントチケット304は設定値がXML形式で記述されているので、XPSアプリ302がすべての設定値を直接変更して書き換えることは可能ではある。しかし拡張領域は、プリンタードライバーごとの独自定義であるため詳細な仕様まではわからず、プリンター1042によって仕様が異なることから、デバイスアプリ310のユーザーインターフェースを使って設定値を変更するほうが容易である。
デバイスアプリ310は、プリンタードライバー1052の一種ではあるが、プリンタードライバーとは別のプログラムとしてインストールされる。デバイスアプリ310は、プリンタードライバーと、プリントチケット304を使用して印刷設定データをやりとりする。デバイスアプリ310は、印刷設定データの無効な組み合わせを解決して、正しい印刷設定データを作成するための、コンフリクトエンジン3101を保持する。印刷設定データの無効な組み合わせは、機種依存ファイル309に記載されているので、ユーザーインターフェースを表示する前に、コンフリクトエンジン3101は、機種依存ファイル309を読み込む。プリンタードライバー1052は、ユーザーインターフェースの設定に従い、DEVMODE構造体303もしくはプリントチケット304のプリンター1042に依存した設定を変更する。印刷設定データは文書を印刷するたびに必要となるので、印刷を実行するたびに作成される。プリンター1042のオプション機器や、ユーザーごとの環境設定などは、プリンタードライバーがオペレーティングシステムのレジストリデータベース305、もしくはプロパティバッグ317に保存される。印刷設定データのデフォルト値はオペレーティングシステムのプリントマネージャ318が、レジストリデータベース305に保存する。レジストリデータベース305や、プロパティバッグ317は、補助記憶装置105に保存される。
最後に描画データの変換を行う。印刷設定データが確定したら、ユーザーはアプリケーションから印刷処理を指示する。GDIアプリ301から印刷する場合は、GDItoXPS変換モジュール307に描画データが送られ、XPSスプールファイル306が作成される。このときGDItoXPS変換モジュール307はコンフィグモジュール308を呼び出し、印刷設定データをDEVMODE構造体303からプリントチケット304に変換する。変換する際には、DEVMODE−プリントチケット変換モジュール3081が使用される。DEVMODE−プリントチケット変換モジュール3081は、プロパティバッグ317の情報を読み書きできるので、デバイスアプリ310が保存したデータを参照して変換することもできる。XPSアプリ302から印刷する場合は、XPSスプールファイル306をXPSアプリ自身が生成するのと、オペレーティングシステムがXPSアプリからの描画命令に応じてXPSスプールファイル306を生成するのと2通りの方法がある。どちらの方法であっても、印刷の途中でXPSスプールファイル306が生成される。
このようにV4プリンタードライバー印刷システムは、印刷時に必ず描画データに基づくXPSスプールファイル306を生成する点が特徴である。XPSスプールファイル306が生成されたら、プリントフィルタパイプライン311に処理が渡される。プリントフィルタパイプライン311は複数のフィルターを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル316がフィルターの数や順番を制御する。プリントフィルタパイプライン311で動作するフィルターパイプラインマネージャ312はフィルタコンフィギュレーションファイル316に従って、この実施例では通信フィルター313、レイアウトフィルター314、レンダラーフィルター315の順に処理を行う。フィルターはプリンタードライバー1052の構成によって、数や種類が異なる。例えば、図3の3つのフィルターに加えて、更に、印刷ジョブを暗号化するための暗号化フィルターが含まれていても良い。
印刷処理はXPSスプールファイル306をフィルターに受け渡すことで行われ、フィルターがそれぞれXPSスプールファイル306を加工し次のフィルターに渡していくことで処理が進む。最終的にはXPSスプールファイル306が印刷ジョブに変換されて、プリンターに送信される。
なお、プリンターは、印刷ジョブを解釈可能であり、送信された印刷ジョブを解釈することで印刷ジョブに基づく印刷処理を実行する。それぞれのフィルターは独自のデータをプロパティバッグ317に保存することができる。
また、それぞれのフィルターは、プロパティバッグ317から、オペレーティングシステム1053の情報や、他のフィルターのデータを取得することもできる。通信フィルター313では、印刷時に必要な情報をプリンターから取得し、プロパティバッグ317に保存しておく。レイアウトフィルター314では倍率の変更や製本の面付けレイアウトやスタンプなどレイアウトに関する処理を行う。レイアウトフィルター314では、XPSスプールファイル306に含まれるプリントチケット304に従って動作する。そのため、たとえば面付けの設定がプリントチケット304に存在しないときは、レイアウトフィルター314は何も動作せずスルーして、次のフィルターにXPSスプールファイル306をそのまま渡す。
レンダラーフィルター315は、入力されたXPSスプールファイル306をレンダリングしてページ記述言語(以下、PDL(Page Description Language)と略す)に変換する。また、レンダラーフィルター315は、プリントチケット304の印刷設定データのうち標準領域の設定を、プリンタジョブ言語(以下、PJL(Printer Job Language)と略する)に変換する。レンダラーフィルター315は、PDLとPJLをまとめて印刷ジョブとして、次のフィルターにストリームデータとして渡す。レンダラーフィルター315は、変換したPJLと渡されたPDLとPJLをまとめて印刷ジョブとして、フィルターパイプラインマネージャ312に渡す。印刷ジョブは、印刷処理のスケジュール管理を行うプリントマネージャ318に送られ、キュー(待ち行列)に印刷ジョブが次々と登録される。プリントマネージャ318は、プリンター1042と通信してプリンター1042が印刷できる状態になり次第、キューに登録した順にポートモニター319を通して印刷ジョブを送信する。
このようにして、描画データをおよび印刷設定データを印刷ジョブに変換することがプリンタードライバーの主な役目であり、情報処理装置での印刷が実施される。
なお、本実施例では、印刷処理を用いて説明しているためプリンタードライバーと記載しているが、FAX送信処理の際にも本発明を適用できる。この場合は、レンダラーフィルター315の代わりにFAXデータを作成するFAXフィルターを搭載して、FAX機器に送信するFAXドライバーとなる。
図4は機種依存ファイル309の1つであるGPDの例を示したものである。
機種依存ファイル309は、印刷設定データを構成する機能(Feature)の定義と、選択された印刷設定の無効な組み合わせ(InvalidCombination)を記載する。機能にはそれぞれ名称をつけることができ、図4では用紙サイズのPaperSize、印刷の向きのOrientation、ステイプルのStaplingがそれぞれ定義されている。機能には設定としての選択肢(Option)が定義されており、選択肢の中からどれか1つを選択することで、印刷設定データが確定する。初期状態の印刷設定データ(DefaultOption)を定義することも可能で、機種依存ファイル309を読み込んで何もしていない状態の印刷設定データを明示的に決めることも可能である。
機能には優先順位(ConflictPriority)を設けることができる。機能の優先順位は、数値の小さいものほど高く、数値が大きくなるにつれて優先順位が低くなる。印刷設定データの無効な組み合わせが発生したときは、優先順位が低い機能の選択肢が他の選択肢に丸められることで、正しい印刷設定データが作成される。無効な組み合わせ(InvalidCombination)は、機能と設定である選択肢の複数の組からなるリストとして定義する。一対一の組み合わせだけでなく、複数の組み合わせも定義することができ、その場合は記載されたすべての設定が一致するときに無効であることを意味する。図4では、用紙サイズ(PaperSize)と印刷の向き(Orientation)とステイプル(Stapling)の3つのFeatureを使用して、用紙サイズA3との無効な組み合わせ、カスタム用紙との無効な組み合わせがそれぞれ記載されている。
以下、デバイスアプリ310がコンフリクトエンジン3101と機種依存ファイル309のGPDファイル(図4)を使って、動的に機能を追加する方法を、フローチャートを使用して説明する。
ユーザーは印刷に必要な印刷設定を作成するために、アプリケーション1051からデバイスアプリ310を起動してユーザーインターフェースを開く。図5のフローチャートは、デバイスアプリ310がユーザーインターフェースを起動するためのシーケンスである。まず、デバイスアプリ310は、コンフリクトエンジン3101を初期化する(S501)。次にデバイスアプリ310は、コンフリクトエンジン3101に、機種依存ファイル309のGPDファイルを渡す(S502)。コンフリクトエンジン3101は、渡されたGPDファイルを読み込んで解釈し、印刷設定を作成する。コンフリクトエンジン3101による印刷設定が作成されたら、デバイスアプリ310は、ユーザーインターフェースを構築し(S503)、印刷設定を適用する。このようにして、デバイスアプリ310において、ユーザーが印刷設定を作成するためのユーザーインターフェースが表示される(図10)。
次に、動的に機能を追加する例として、ユーザー定義用紙の追加の方法を、図6のフローチャートを使用して説明する。
デバイスアプリ310は、ユーザーがユーザー定義用紙ダイアログ(図11)の登録ボタンを押して、ユーザー定義用紙の作成処理に入ることを知ると、ユーザーによって入力された幅と高さの値を元に、レジストリデータベース305に値を保存する(S601)。次にデバイスアプリ310は、コンフリクトエンジン3101に対して、PaperSizeのFeatureにユーザー定義用紙のOptionを追加するように指示する(S602)。ここでは、ユーザー定義用紙のOptionの名称として“UserForm119”を指定する。オペレーティングシステム1053のレジストリデータベース305では、用紙サイズのリストが用紙IDとともに管理されており、標準では定型用紙として118まで登録されている。そこで、新しいユーザー定義用紙を作成する際に、現在の用紙IDの最大値に1つ足した値の119を利用して名称をつけている。このように用紙サイズの用紙IDを利用して名称を決定している理由は、複数のユーザー定義用紙が登録された際に、区別したいからである。コンフリクトエンジン3101は、指定された名称を元に、内部でFeatureにOptionを追加する。
次にデバイスアプリ310は、ユーザーによって入力されたユーザー定義用紙の幅と高さが、プリンタードライバーが持っている定型用紙の幅と高さの値と一致しているか、もしくは0.25mm以内にあるかどうかを調査する(S603)。これは、プリンター1042の仕様として、定型用紙サイズに近い幅と高さを持ったユーザー定義用紙は、該当する定型用紙の無効な組み合わせと同じ無効な組み合わせを持つためである。もし、ユーザー定義用紙の幅と高さが近い値の定型用紙サイズがあれば、デバイスアプリ310は、コンフリクトエンジン3101に対して、最も近い値を持つ定型用紙サイズのInvalidCombinationを複製するように依頼する(S605)。コンフリクトエンジン3101に対してこの依頼処理は、LinkOptionRules()というコンフリクトエンジンの関数を通じて行われる。もし、定型用紙サイズに近い値がなければ、デバイスアプリ310は、コンフリクトエンジン3101に対して、カスタム用紙のInvalidCombinationを複製するように依頼する(S604)。このようにして、動的に追加するユーザー定義用紙の無効な組み合わせを、幅と高さに応じて最適な無効な組み合わせを設定できる。
図7のフローチャートは、コンフリクトエンジン3101のLinkOptionRules()の関数の動作を記載したものである。
デバイスアプリ310は、前述のフローチャートのS604やS605で、コンフリクトエンジン3101の関数であるLinkOptionRules()を呼び出す。デバイスアプリ310は、LinkOptionRules()を呼び出す際に、複製元のFeature、Optionと、動的に追加した機能のFeatureとOptionもあわせて引数として提供する。ここでは、追加したユーザー定義用紙のUserForm119は、A3の定型用紙サイズに近い幅と高さを持った用紙だとする。
まず、コンフリクトエンジン3101は、複製元として指定されたFeature.Optionを含むInvalidCombinationを、GPDの中から列挙する(S701)。ここでは、PaperSize.A3を含むすべてのInvalidCombinationを列挙する。すべて列挙したら、コンフリクトエンジン3101は、列挙したInvalidCombinationを複製する(S702)。
次に、コンフリクトエンジン3101は、複製元として指定されたFeature.Optionを、動的に追加したFeature.Optionで置き換える。ここでは、コンフリクトエンジン3101は、PaperSize.A3を、PaperSize.UserForm119で置き換える(S703)。
すべてのInvalidCombinationの置き換えが完了したら、コンフリクトエンジン3101は、複製したInvalidCombinationを新しいInvalidCombinationとして登録する(S704)。
このようにして出来上がったGPDが、図9になる。動的に追加されたUserForm119が、A3と同じ無効な組み合わせを持つことが確認できる。
以上のように、動的に追加した機能について、無効な組み合わせを他の機能から複製して置き換えることで、機能の設定値に応じた無効な組み合わせを作りだすことができる。
実施例1では、ユーザー定義用紙を追加する際に、デバイスアプリ310とコンフリクトエンジン3101が、無効な組み合わせを複製していた。プリンター1042のパネル上で登録して作成するユーザー設定用紙タイプについても、同じように適用することができる。
図8のフローチャートが、ユーザー設定用紙タイプで無効な組み合わせを複製する際の動作フローである。
まず、デバイスアプリ310は、ユーザーがユーザーインターフェース上にある用紙情報取得のボタンを押すと、プリンター1042と通信してユーザー設定用紙タイプの情報を取得する(S801)。
次にデバイスアプリ310は、コンフリクトエンジン3101に対して、MediaTypeのFeatureにOptionを追加する(S802)。ここでは、プリンター1042から取得したユーザー設定用紙タイプのOptionの名称として、UserPaper001を使用する。他に複数のユーザー設定用紙タイプがあれば、002、003と数字が繰り上がっていく。定型の用紙タイプは以下の表Aのように、坪量・特徴・表面性・色といった属性データを持っている。
ユーザー設定用紙タイプも定型の用紙タイプと同じ属性データを持っている。
そこで、デバイスアプリ310は、ユーザー設定用紙タイプの坪量・特徴・表面性・色が、表Aにある定型の用紙タイプと一致するかどうかを調査する(S803)。
合致する定型の用紙タイプがあれば、デバイスアプリ310はコンフリクトエンジン3101に対して、定型の用紙タイプの無効な組み合わせを複製するように、依頼する(S805)。合致するものがなければ、デバイスアプリ310はコンフリクトエンジン3101に対して、普通紙の無効な組み合わせを複製するように、依頼する(S804)。
このようにして、動的に追加するユーザー設定用紙タイプも、属性データに応じてそれぞれ適した無効な組み合わせを適用することができる。
309 機種依存ファイル、310 デバイスアプリ、3101 コンフリクトエンジン

Claims (2)

  1. 印刷を行うプリンタードライバーが持つ機種依存データを読み込む手段(S502)と、動的に機能を追加することができる手段(S602)と、1つの機能に関する無効な組み合わせをすべて選び出す手段と(S701)、選びだしたすべての無効な組み合わせを複製する手段(S702)と、複製した無効な組み合わせの中の機能を動的に追加した機能に置き換える手段(S703)と、動的に追加した機能に置き換えたすべての無効な組み合わせを元の機種依存データと組み合わせて処理を行う手段(S704)を持つことを特徴とする情報処理装置。
  2. 動的に機能を追加する際に、機能の属性情報もあわせて保存することができる手段(S603)を持つことを特徴とする請求項1に記載の情報処理装置。
JP2015149076A 2015-07-29 2015-07-29 情報処理装置および制御方法およびプログラム。 Pending JP2017033050A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015149076A JP2017033050A (ja) 2015-07-29 2015-07-29 情報処理装置および制御方法およびプログラム。

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015149076A JP2017033050A (ja) 2015-07-29 2015-07-29 情報処理装置および制御方法およびプログラム。

Publications (1)

Publication Number Publication Date
JP2017033050A true JP2017033050A (ja) 2017-02-09

Family

ID=57989403

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015149076A Pending JP2017033050A (ja) 2015-07-29 2015-07-29 情報処理装置および制御方法およびプログラム。

Country Status (1)

Country Link
JP (1) JP2017033050A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021117805A (ja) * 2020-01-28 2021-08-10 ブラザー工業株式会社 プログラムおよび情報処理装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021117805A (ja) * 2020-01-28 2021-08-10 ブラザー工業株式会社 プログラムおよび情報処理装置
JP7459524B2 (ja) 2020-01-28 2024-04-02 ブラザー工業株式会社 プログラムおよび情報処理装置

Similar Documents

Publication Publication Date Title
US8115954B2 (en) Pull print supporting image forming system, image forming method and information processing apparatus directed thereto
JP7341647B2 (ja) 情報処理装置、制御方法及びプログラム
JP6486153B2 (ja) 情報処理装置、情報処理方法及びプログラム
US10261737B1 (en) Print management method, apparatus, and computer-readable medium
JP6315965B2 (ja) 情報処理装置、プログラム及び制御方法
JP6289276B2 (ja) 情報処理装置およびプログラム、制御方法
JP7278772B2 (ja) 情報処理装置、制御方法及びアプリケーションプログラム
US9135528B2 (en) Information processing apparatus, job processing method in information processing apparatus, and storage medium
EP2388685B1 (en) Information processing apparatus and control method thereof, and storage medium
US20070229883A1 (en) Print shop management method and apparatus for printing documents using a plurality of devices
JP2005271264A (ja) 印刷管理装置、方法、プログラム、記憶媒体、及び印刷システム
US11520536B2 (en) Information processing apparatus, control method and program therefor, and server system capable of communicating with the information processing apparatus
JP6827738B2 (ja) 制御方法、プログラム及び情報処理装置
JP7362475B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2010250373A (ja) 情報処理装置、制御方法及びプログラム
US20250355604A1 (en) Information processing apparatus, method, and non-transitory computer-readable storage medium storing program
JP2017033050A (ja) 情報処理装置および制御方法およびプログラム。
JP2005271371A (ja) 印刷管理装置、印刷管理方法、印刷管理プログラム、及び印刷システム
JP6149600B2 (ja) 情報処理装置、情報処理方法、プログラムおよび情報処理システム
JP6466010B2 (ja) 情報処理装置、プログラム
JP2005271370A (ja) 印刷管理装置、印刷管理方法、印刷管理プログラム、及び印刷管理システム
US20250053355A1 (en) Storage medium, application program, control method for information processing apparatus, and information processing apparatus
JP2011118628A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2011022782A (ja) 印刷システムおよびプログラム
JP2020192788A (ja) 印刷装置、その制御方法、及びプログラム