JP2012226582A - プリンタドライバ、プログラムおよび記録媒体 - Google Patents
プリンタドライバ、プログラムおよび記録媒体 Download PDFInfo
- Publication number
- JP2012226582A JP2012226582A JP2011094066A JP2011094066A JP2012226582A JP 2012226582 A JP2012226582 A JP 2012226582A JP 2011094066 A JP2011094066 A JP 2011094066A JP 2011094066 A JP2011094066 A JP 2011094066A JP 2012226582 A JP2012226582 A JP 2012226582A
- Authority
- JP
- Japan
- Prior art keywords
- filter
- printer driver
- extended filter
- extended
- print setting
- 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.)
- Withdrawn
Links
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】本発明は、フィルタ・パイプライン方式を採用するプリンタドライバに追加されたサードパーティ・ベンダ提供のフィルタ・モジュールの制御を可能にする新規なプリンタドライバを提供することを目的とする。
【解決手段】本発明によれば、フィルタ・パイプラインを構築するための標準フィルタおよび拡張フィルタと、印刷設定に関する処理を行うUIモジュールとを含むプリンタドライバであって、前記UIモジュールは、アプリケーションからの命令を受け付ける命令処理部と前記拡張フィルタとの間を仲介する拡張フィルタ制御部を含み、前記拡張フィルタ制御部は、前記拡張フィルタからPrintCapabilitiesを取得するとともに、該PrintCapabilitiesに基づいて作成したDevmodeの値およびその保存位置と、PrintTicketのキーワードとを対応付けた変換テーブルを作成するための拡張フィルタ情報管理部を含むプリンタドライバが提供される。
【選択図】図1
【解決手段】本発明によれば、フィルタ・パイプラインを構築するための標準フィルタおよび拡張フィルタと、印刷設定に関する処理を行うUIモジュールとを含むプリンタドライバであって、前記UIモジュールは、アプリケーションからの命令を受け付ける命令処理部と前記拡張フィルタとの間を仲介する拡張フィルタ制御部を含み、前記拡張フィルタ制御部は、前記拡張フィルタからPrintCapabilitiesを取得するとともに、該PrintCapabilitiesに基づいて作成したDevmodeの値およびその保存位置と、PrintTicketのキーワードとを対応付けた変換テーブルを作成するための拡張フィルタ情報管理部を含むプリンタドライバが提供される。
【選択図】図1
Description
本発明は、プリンタドライバに関し、より詳細には、拡張機能を追加可能なプリンタドライバに関する。
マイクロソフト社のWindows(登録商標)Vista以降のOSでは、汎用性の高いXMLをベースにしたXML Paper Specification (XPS)をドキュメントファイル形式として標準サポートしている。この環境では、ドキュメント表示言語、印刷スプーラー形式、およびページ記述言語の全てをXPSに置き換えることができるため、アプリケーションからプリンタに至るまでの印刷パス全体にわたってXPSドキュメント形式が変更されないXPS印刷パスが構築される。その結果、元のドキュメントの品質および忠実性が維持され、ドキュメントをより正確に紙に印刷することが可能になる。
このようなXPS印刷スキーマを構築するためのXPSプリンタドライバは、フィルタ・パイプライン方式を採用しており、サードパーティ・ベンダが独自の機能(フィルタ・モジュール)を追加するための拡張性を備えている(たとえば、特許文献1)。以下、この点について、図5を参照して説明する。
図5(a)は、プリンタメーカが提供するXPSプリンタドライバの標準パッケージ600を示す。標準パッケージ600は、印刷に関する各種処理を実行する機能モジュールである複数のフィルタ602と、ドライバUIの生成など、印刷設定に関する処理を実行するUIモジュール604と、フィルタが適用される順序や各フィルタの入出力形式などを定義するフィルタ設定ファイル606と、インストール設定情報などを記述するシステム定義ファイルであるINFファイル608とを含んで構成される。
一方、図5(b)は、サードパーティ・ベンダが提供するXPSプリンタドライバの拡張版パッケージ700を示す。図5(b)に例示する拡張版パッケージ700においては、標準パッケージ600の構成に対して、機能Aを実現するための拡張フィルタ702が加えられている。この場合、サードパーティ・ベンダは、拡張フィルタ702に関する新しい定義項目をフィルタ設定ファイル606およびINFファイル608に追記することが許容されている。このようにして修正されたフィルタ設定ファイル606およびINFファイル608に基づいて拡張版パッケージ700がコンピュータ上に展開されると、標準フィルタ602と拡張フィルタ702を含むフィルタ・パイプラインが構築される。
しかしながら、図5(b)のような従来の構成においては、サードパーティ・ベンダによって追加された拡張フィルタ702がフィルタ・パイプライン上で常に作動することになり、ユーザは、拡張フィルタ702が提供する機能Aを必要に応じて無効にするといったことができなかった。
本発明は、上記従来技術における課題に鑑みてなされたものであり、本発明は、フィルタ・パイプライン方式を採用するプリンタドライバに追加されたサードパーティ・ベンダ提供のフィルタ・モジュールの制御を可能にする新規なプリンタドライバを提供することを目的とする。
本発明者は、フィルタ・パイプライン方式を採用するプリンタドライバに追加されたサードパーティ・ベンダ提供のフィルタ・モジュールの制御を可能にする新規なプリンタドライバにつき鋭意検討した結果、以下の構成に想到し、本発明に至ったのである。
すなわち、本発明によれば、フィルタ・パイプラインを構築するための標準フィルタおよび拡張フィルタと、印刷設定に関する処理を行うUIモジュールとを含むプリンタドライバであって、前記UIモジュールは、アプリケーションからの命令を受け付ける命令処理部と前記拡張フィルタとの間を仲介する拡張フィルタ制御部を含み、前記拡張フィルタ制御部は、前記拡張フィルタからPrintCapabilitiesを取得するとともに、該PrintCapabilitiesに基づいて作成したDevmodeの値およびその保存位置と、PrintTicketのキーワードとを対応付けた変換テーブルを作成するための拡張フィルタ情報管理部を含むプリンタドライバが提供される。
上述したように、本発明によれば、フィルタ・パイプライン方式を採用するプリンタドライバに追加されたサードパーティ・ベンダ提供のフィルタ・モジュールの制御を可能にする新規なプリンタドライバが提供される。
以下、本発明を、フィルタ・パイプライン方式を採用するプリンタドライバとして代表的なXPSプリンタドライバの実施形態をもって説明するが、本発明は後述する実施形態に限定されるものではない。なお、以下に参照する各図においては、共通する要素について同じ符号を用い、適宜、その説明を省略するものとする。
図1は、情報処理装置1000に搭載された本発明の実施形態であるXPSプリンタドライバ100の機能ブロックを示す。XPSプリンタドライバ100は、フィルタ・パイプライン方式を採用しており、ドライバUIの生成など、印刷設定に関する処理を実行するUIモジュール300と、複数の標準フィルタ602と、サードパーティ・ベンダによって追加された拡張フィルタ400とを含んで構成されている。
UIモジュール300は、アプリケーション200からの命令を受け付けるIFである命令処理部320を含んで構成されており、アプリケーション200から受領した各種命令をフィルタ・パイプラインを構築する各フィルタ602,400に対して発行する。
各フィルタ602,400は、UIモジュール300から発行される命令を受け付けるIFである命令処理部420と、XPSデータ処理部440とを含んで構成されている。命令処理部420がXPS処理命令を受領すると、XPSデータ処理部440は、処理対象となるXPSデータに含まれるPrintTicketをPrintTicket解析部442に渡す。PrintTicket解析部442は、PrintTicketを読み込んでフィルタがサポートしている機能に対応するキーワードを解析し、フィルタの動作パラメータを決定する。XPSデータ処理部440は、決定された動作パラメータに従ってXPSデータを処理する。たとえば、フィルタが集約処理を実行するモジュールであった場合、当該集約フィルタが2ページで構成されたXPSデータを受信すると、XPSデータ処理部440がPrintTicketに記載されているNUp設定の値に従って、ページデータを編集し、集約されたXPSドキュメントを生成する。
ここまでは、既存のXPSプリンタドライバに共通する構成について説明してきたが、続いて、本実施形態の特徴的な構成について、以下説明する。
本実施形態のXPSプリンタドライバ100におけるUIモジュール300は、さらに、拡張フィルタ制御部340を含んで構成されている。拡張フィルタ制御部340は、UIモジュール300の既存の命令処理部320とサードパーティ・ベンダが拡張した拡張フィルタ400の命令処理部420の間を仲介するAPIとして参照することができ、拡張フィルタ情報管理部342と、排他制御依頼部344とを含んで構成されている。プリンタメーカがこのAPI(拡張フィルタ制御部340)の仕様をサードパーティ・ベンダに公開することによって、サードパーティ・ベンダは当該APIに対応する拡張フィルタ400を設計することができる。具体的には、サードパーティ・ベンダは、公開された仕様に基づき、PrintCapabilities作成部460と排他制御部480とを拡張フィルタ400に搭載することによって、ユーザによる制御が可能な態様で拡張機能を提供することができる。以下、上述した各機能部が果たす機能について具体的に説明する。
以下、図2を参照しながら、UIモジュール300の拡張フィルタ制御部340が実行する処理を説明する。拡張フィルタ制御部340の拡張フィルタ情報管理部342は、適切なタイミング(たとえば、XPSプリンタドライバ100がOSからインストール完了通知を受信したタイミングなど)において、拡張フィルタ400に対しPrintCapabilities取得要求を発行する。拡張フィルタ400の命令処理部420は、これに応答して、PrintCapabilities作成部460に拡張フィルタ400がサポートしている機能Aに関するPrintCapabilitiesを作成させる。ここでPrintCapabilitiesとは、XPSプリンタドライバ100が制御するプリンタの能力を表したXMLドキュメント(印刷能力情報)であり、プリンタの機能およびその選択肢、UI表示文字列、排他情報などを記述したものである。図3(a)は、機能Aに関するPrintCapabilitiesを例示する。命令処理部420は、PrintCapabilities作成部460が作成したPrintCapabilitiesを拡張フィルタ情報管理部342に返す。
拡張フィルタ情報管理部342は、拡張フィルタ400から取得したPrintCapabilitiesを追加ファイル情報用フォルダ500に保存する。併せて、拡張フィルタ情報管理部342は、当該PrintCapabilitiesに基づいてDevmode(印刷設定構造体)の値とその保存位置を作成し、このDevmodeの値およびその保存位置と、PrintTicketのキーワードとを対応付けた変換テーブルを作成する。図3(b)は、変換テーブルを例示する。拡張フィルタ情報管理部342は、生成した変換テーブルを同じく追加ファイル情報用フォルダ500に保存する。
さらに、好ましい実施形態においては、拡張フィルタ情報管理部342は、拡張フィルタ400からデフォルトPrintTicketを取得する。この場合、拡張フィルタ情報管理部342は、拡張フィルタ400に対しデフォルトPrintTicket取得要求を発行し、拡張フィルタ400側は、これに対してデフォルトPrintTicket作成部462を搭載する。デフォルトPrintTicket作成部462は、拡張フィルタ情報管理部342からのデフォルトPrintTicket取得要求に応答して、デフォルトPrintTicketを作成する。デフォルトPrintTicketは、XPSプリンタドライバ100を初期化する際に参照される印刷条件の初期設定(デフォルト値)を記述したXMLドキュメント(印刷設定情報)である。命令処理部420は、デフォルトPrintTicket作成部462が作成したデフォルトPrintTicketを拡張フィルタ情報管理部342に返す。拡張フィルタ情報管理部342は、拡張フィルタ400から取得したデフォルトPrintTicketに記述された設定内容に対応する変換テーブル内の値にデフォルトフラグを記載する。
なお、他の実施形態においては、拡張フィルタ400に対してデフォルトPrintTicketの作成を求めるのではなく、PrintCapabilities作成部460から取得したPrintCapabilitiesの最初に出現する選択値をデフォルト値として定義し、これに対応する変換テーブル内の値にデフォルトフラグを記載する。
次に、図4に基づいて、本実施形態におけるUIモジュール300の拡張フィルタ制御部340の果たす機能について、具体的な処理に基づいてより詳細に説明する。図4は、アプリケーション200とXPSプリンタドライバ100の間でなされる既存の処理(1)〜(6)を列挙したものである。以下、各ステージにおいて拡張フィルタ制御部340が実行する処理を説明する。
(1)PrintCapabilities取得
アプリケーション200がユーザインタフェース(印刷ダイアログ)を提供するために、XPSプリンタドライバ100からPrintCapabilitiesを取得する場合について説明する。アプリケーション200は、XPSプリンタドライバ100に対してPrintCapabilities取得要求を発行する。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でPrintCapabilitiesを作成する一方で、拡張フィルタ情報管理部342に対してPrintCapabilities取得要求を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された機能AのPrintCapabilitiesを取得して命令処理部320に渡す。命令処理部320は、従来の手順で作成したPrintCapabilitiesと機能AのPrintCapabilitiesをマージしてアプリケーション200に返す。アプリケーション200は、マージされたPrintCapabilitiesに基づいて印刷ダイアログを生成する。この印刷ダイアログには機能Aが選択可能に表示されるので、ユーザは、その他の標準機能と同様に、サードパーティ・ベンダによって提供された機能AについてON/OFFを制御したり、その設定値を選択したりすることが可能になる。
アプリケーション200がユーザインタフェース(印刷ダイアログ)を提供するために、XPSプリンタドライバ100からPrintCapabilitiesを取得する場合について説明する。アプリケーション200は、XPSプリンタドライバ100に対してPrintCapabilities取得要求を発行する。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でPrintCapabilitiesを作成する一方で、拡張フィルタ情報管理部342に対してPrintCapabilities取得要求を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された機能AのPrintCapabilitiesを取得して命令処理部320に渡す。命令処理部320は、従来の手順で作成したPrintCapabilitiesと機能AのPrintCapabilitiesをマージしてアプリケーション200に返す。アプリケーション200は、マージされたPrintCapabilitiesに基づいて印刷ダイアログを生成する。この印刷ダイアログには機能Aが選択可能に表示されるので、ユーザは、その他の標準機能と同様に、サードパーティ・ベンダによって提供された機能AについてON/OFFを制御したり、その設定値を選択したりすることが可能になる。
(2)Devmode取得
アプリケーション200がユーザインタフェース(印刷ダイアログ)を生成するために、XPSプリンタドライバ100からDevmodeを取得する場合、アプリケーション200は、XPSプリンタドライバ100に対してDevmode取得要求を発行する。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でDevmode構造体を作成する一方で、拡張フィルタ情報管理部342に対してDevmode取得要求を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された変換テーブルを参照して機能AのDevmodeの値とその保存位置を取得し、これを命令処理部320に渡す。命令処理部320は、機能AのDevmode値を、従来の手順で作成したDevmode構造体の取得した保存位置にセットしてアプリケーション200に返す。
アプリケーション200がユーザインタフェース(印刷ダイアログ)を生成するために、XPSプリンタドライバ100からDevmodeを取得する場合、アプリケーション200は、XPSプリンタドライバ100に対してDevmode取得要求を発行する。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でDevmode構造体を作成する一方で、拡張フィルタ情報管理部342に対してDevmode取得要求を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された変換テーブルを参照して機能AのDevmodeの値とその保存位置を取得し、これを命令処理部320に渡す。命令処理部320は、機能AのDevmode値を、従来の手順で作成したDevmode構造体の取得した保存位置にセットしてアプリケーション200に返す。
(3)Devmode→PrintTicket
アプリケーション200が印刷設定を変更する場合、Devmode構造体を、一旦、編集可能なPrintTicket(XML形式)に変換する必要がある。この場合、アプリケーション200は、まず、XPSプリンタドライバ100にDevmodeを渡す。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でDevmodeをPrintTicketに変換するとともに、拡張フィルタ情報管理部342に当該Devmodeを渡す。これに応答して、拡張フィルタ情報管理部342は、当該Devmodeに保存されている機能Aの設定値を取得し、当該設定値をキーとして変換テーブルを検索して、これに対応するPrintTicketキーワードを命令処理部320に返す。これに応答して、命令処理部320は、従来の手順で変換したPrintTicketに対して拡張フィルタ情報管理部342から受領したPrintTicketキーワードを追記し、これをアプリケーション200に返す。
アプリケーション200が印刷設定を変更する場合、Devmode構造体を、一旦、編集可能なPrintTicket(XML形式)に変換する必要がある。この場合、アプリケーション200は、まず、XPSプリンタドライバ100にDevmodeを渡す。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でDevmodeをPrintTicketに変換するとともに、拡張フィルタ情報管理部342に当該Devmodeを渡す。これに応答して、拡張フィルタ情報管理部342は、当該Devmodeに保存されている機能Aの設定値を取得し、当該設定値をキーとして変換テーブルを検索して、これに対応するPrintTicketキーワードを命令処理部320に返す。これに応答して、命令処理部320は、従来の手順で変換したPrintTicketに対して拡張フィルタ情報管理部342から受領したPrintTicketキーワードを追記し、これをアプリケーション200に返す。
(4)PrintTicket→Devmode
アプリケーション200は、印刷設定を変更するために(3)で取得したPrintTicketのXMLを編集し、編集後のPrintTicketをXPSプリンタドライバ100に渡す。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順で当該編集後のPrintTicketをDevmodeに変換するとともに、当該編集後のPrintTicketを拡張フィルタ情報管理部342に渡す。これに応答して、拡張フィルタ情報管理部342は、編集後のPrintTicketに記述されている機能AのPrintTicketキーワードを取得し、当該PrintTicketキーワードをキーとして変換テーブルを検索して、これに対応するDevmodeの値とその保存位置を命令処理部320に返す。これに応答して、命令処理部320は、機能AのDevmode値を、従来の手順で作成したDevmodeの取得した保存位置にセットしてアプリケーション200に返す。ただし、アプリケーション200がWPFアプリケーションである場合は、PrintTicketをそのまま印刷設定として使用することができるので、上述したPrintTicket→Devmodeの再変換は不要となる。
アプリケーション200は、印刷設定を変更するために(3)で取得したPrintTicketのXMLを編集し、編集後のPrintTicketをXPSプリンタドライバ100に渡す。これに応答して、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順で当該編集後のPrintTicketをDevmodeに変換するとともに、当該編集後のPrintTicketを拡張フィルタ情報管理部342に渡す。これに応答して、拡張フィルタ情報管理部342は、編集後のPrintTicketに記述されている機能AのPrintTicketキーワードを取得し、当該PrintTicketキーワードをキーとして変換テーブルを検索して、これに対応するDevmodeの値とその保存位置を命令処理部320に返す。これに応答して、命令処理部320は、機能AのDevmode値を、従来の手順で作成したDevmodeの取得した保存位置にセットしてアプリケーション200に返す。ただし、アプリケーション200がWPFアプリケーションである場合は、PrintTicketをそのまま印刷設定として使用することができるので、上述したPrintTicket→Devmodeの再変換は不要となる。
(5)ドライバUI表示
ユーザは、XPSプリンタドライバ100が提供するユーザインタフェース(以下、ドライバUIとして参照する)を呼び出す場合がある。たとえば、ユーザがアプリケーション200が提供する印刷ダイアログの詳細設定アイコン(あるいは、プロパティアイコン)をクリックすると、当該イベントに応答してアプリケーション200は、XPSプリンタドライバ100に対してドライバUI表示命令を発行する。これを受けて、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でPrintCapabilitiesを作成する一方で、拡張フィルタ情報管理部342に対してPrintCapabilities取得命令を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された機能AのPrintCapabilitiesを取得して命令処理部320に渡す。命令処理部320は、標準フィルタ602について作成したPrintCapabilitiesと機能AのPrintCapabilitiesをマージしてなるPrintCapabilitiesに基づいてドライバUIを生成して表示する。このドライバUIには機能Aが選択可能に表示され、ユーザは、サードパーティ・ベンダによって提供された機能AのON/OFFをドライバUIを介して制御することが可能になる。ユーザがドライバUI上で印刷条件を選択した後、当該ドライバUIが閉じられると、これに応答して、命令処理部320は、選択された各フィルタ(拡張フィルタ400を含む)の機能の設定値に該当するDevmodeの値をDevmode構造体に保存してアプリケーション200に返す。
ユーザは、XPSプリンタドライバ100が提供するユーザインタフェース(以下、ドライバUIとして参照する)を呼び出す場合がある。たとえば、ユーザがアプリケーション200が提供する印刷ダイアログの詳細設定アイコン(あるいは、プロパティアイコン)をクリックすると、当該イベントに応答してアプリケーション200は、XPSプリンタドライバ100に対してドライバUI表示命令を発行する。これを受けて、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順でPrintCapabilitiesを作成する一方で、拡張フィルタ情報管理部342に対してPrintCapabilities取得命令を発行する。これに応答して、拡張フィルタ情報管理部342は、追加ファイル情報用フォルダ500に格納された機能AのPrintCapabilitiesを取得して命令処理部320に渡す。命令処理部320は、標準フィルタ602について作成したPrintCapabilitiesと機能AのPrintCapabilitiesをマージしてなるPrintCapabilitiesに基づいてドライバUIを生成して表示する。このドライバUIには機能Aが選択可能に表示され、ユーザは、サードパーティ・ベンダによって提供された機能AのON/OFFをドライバUIを介して制御することが可能になる。ユーザがドライバUI上で印刷条件を選択した後、当該ドライバUIが閉じられると、これに応答して、命令処理部320は、選択された各フィルタ(拡張フィルタ400を含む)の機能の設定値に該当するDevmodeの値をDevmode構造体に保存してアプリケーション200に返す。
(6)排他制御処理
アプリケーション200が提供する印刷ダイアログを介して印刷条件が設定され、これに対応するPrintTicketがXPSプリンタドライバ100に送信されると、これを受けて、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順で排他制御処理を行う一方で、排他制御依頼部344に対して排他制御処理命令を発行する。これを受けて排他制御依頼部344は、拡張フィルタ400の排他制御部480にアプリケーション200から受領したPrintTicketを渡して排他制御処理を依頼する。排他制御部480は、PrintTicketの中から拡張フィルタがサポートしている機能Aに関する設定値を読み取り、他の設定等との排他をチェックする。排他制御部480は、必要に応じてPrintTicketを書き換えた後、これを排他制御依頼部344に返す。排他制御依頼部344は、戻ってきたPrintTicketを命令処理部320に返し、命令処理部320は、これをアプリケーション200に返す。
アプリケーション200が提供する印刷ダイアログを介して印刷条件が設定され、これに対応するPrintTicketがXPSプリンタドライバ100に送信されると、これを受けて、UIモジュール300の命令処理部320は、標準フィルタ602については従来の手順で排他制御処理を行う一方で、排他制御依頼部344に対して排他制御処理命令を発行する。これを受けて排他制御依頼部344は、拡張フィルタ400の排他制御部480にアプリケーション200から受領したPrintTicketを渡して排他制御処理を依頼する。排他制御部480は、PrintTicketの中から拡張フィルタがサポートしている機能Aに関する設定値を読み取り、他の設定等との排他をチェックする。排他制御部480は、必要に応じてPrintTicketを書き換えた後、これを排他制御依頼部344に返す。排他制御依頼部344は、戻ってきたPrintTicketを命令処理部320に返し、命令処理部320は、これをアプリケーション200に返す。
その他、好ましい実施形態においては、UIモジュール300の拡張フィルタ制御部340は、拡張フィルタ400に対して、制御の可否を問い合わせるように構成することもできる。この場合、サードパーティ・ベンダは、当該問い合わせに対して「可」または「否」を返すように拡張フィルタ400を設計する。拡張フィルタ制御部340は、拡張フィルタ400からの応答が「可」であった場合にのみ、図1〜4に基づいて説明した処理を実行し、「否」であった場合には、上述した処理を実行しないように構成する。この場合、自身が提供する拡張機能についてユーザの操作を望まないサードパーティ・ベンダは、当該問い合わせに対して「否」を返すように拡張フィルタ400を設計することでユーザから拡張機能を隠すことができる。
なお、拡張フィルタ400に対して制御の可否を問い合わせる上記構成に代えて、制御の可否をフィルタ設定ファイルに予め記述しておくこともできる。この場合、拡張フィルタ制御部340がフィルタ設定ファイルから制御の可否についての値を読み込み、当該値が「可」であった場合にのみ、拡張フィルタ400に対して、図1〜4に基づいて説明した処理を実行し、「否」であった場合には、上述した処理を実行しないように構成することもできる。この場合、自身が提供する拡張機能についてユーザの操作を望まないサードパーティ・ベンダは、フィルタ設定ファイルの制御可否に関する設定値を「否」とすることでユーザから拡張機能を隠すことができる。
以上、説明したように、本発明のXPSプリンタドライバは、標準パッケージに追加された拡張フィルタからPrintCapabilities等を取得するためのインターフェースを備えるため、サードパーティ・ベンダが提供する拡張機能をUI(アプリケーションUIあるいはドライバUI)に選択可能に表示することができる。その結果、ユーザは、サードパーティ・ベンダが提供する拡張機能について、その他の標準機能と同様に、ON/OFFを制御したり、その設定値を選択したりすることが可能になる。
以上、本発明について実施形態をもって説明してきたが、本発明は上述した実施形態に限定されるものではない。その他、当業者が推考しうる実施態様の範囲内において、本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
上述した実施形態の各機能は、C、C++、C#、Java(登録商標)などのオブジェクト指向プログラミング言語などで記述された装置実行可能なプログラムにより実現でき、本実施形態のプログラムは、ハードディスク装置、CD−ROM、MO、DVD、フレキシブルディスク、EEPROM、EPROMなどの装置可読な記録媒体に格納して頒布することができ、また他装置が可能な形式でネットワークを介して伝送することができる。
100…プリンタドライバ
200…アプリケーション
300…UIモジュール
320…命令処理部
340…拡張フィルタ制御部
342…拡張フィルタ情報管理部
344…排他制御依頼部
400…拡張フィルタ
420…命令処理部
440…XPSデータ処理部
442…PrintTicket解析部
460…PrintCapabilities作成部
462…デフォルトPrintTicket作成部
480…排他制御部
500…追加ファイル情報用フォルダ
600…標準パッケージ
602…標準フィルタ
604…UIモジュール
606…フィルタ設定ファイル
608…INFファイル
700…拡張版パッケージ
702…拡張フィルタ
1000…情報処理装置
200…アプリケーション
300…UIモジュール
320…命令処理部
340…拡張フィルタ制御部
342…拡張フィルタ情報管理部
344…排他制御依頼部
400…拡張フィルタ
420…命令処理部
440…XPSデータ処理部
442…PrintTicket解析部
460…PrintCapabilities作成部
462…デフォルトPrintTicket作成部
480…排他制御部
500…追加ファイル情報用フォルダ
600…標準パッケージ
602…標準フィルタ
604…UIモジュール
606…フィルタ設定ファイル
608…INFファイル
700…拡張版パッケージ
702…拡張フィルタ
1000…情報処理装置
Claims (13)
- フィルタ・パイプラインを構築するための標準フィルタおよび拡張フィルタと、印刷設定に関する処理を行うUIモジュールとを含むプリンタドライバであって、
前記UIモジュールは、
アプリケーションからの命令を受け付ける命令処理部と前記拡張フィルタとの間を仲介する拡張フィルタ制御部を含み、
前記拡張フィルタ制御部は、
前記拡張フィルタから印刷能力情報を取得するとともに、該印刷能力情報に基づいて作成した印刷設定構造体の値およびその保存位置と、印刷設定情報のキーワードとを対応付けた変換テーブルを作成するための拡張フィルタ情報管理部を含む、
プリンタドライバ。 - 前記拡張フィルタ情報管理部は、
前記命令処理部がアプリケーションから印刷能力情報取得要求を受領したことに応答して、前記標準フィルタの印刷能力情報に前記拡張フィルタから取得した印刷能力情報をマージしてなる印刷能力情報を該命令処理部に返す、
請求項1に記載のプリンタドライバ。 - 前記拡張フィルタ情報管理部は、
前記命令処理部がアプリケーションから印刷設定構造体取得要求を受領したことに応答して、前記変換テーブルを参照し、前記標準フィルタの印刷設定構造体の値に前記拡張フィルタの印刷設定構造体の値を追記して該命令処理部に返す、
請求項1または2に記載のプリンタドライバ。 - 前記拡張フィルタ情報管理部は、
前記命令処理部がアプリケーションから印刷設定構造体→印刷設定情報変換要求を受領したことに応答して、受領した印刷設定構造体に保存されている前記拡張フィルタの機能の設定値をキーとして前記変換テーブルを検索し、該機能に対応する印刷設定情報を取得して前記命令処理部に返す、
請求項1〜3のいずれか一項に記載のプリンタドライバ。 - 前記拡張フィルタ情報管理部は、
前記命令処理部がアプリケーションから印刷設定情報→印刷設定構造体変換要求を受領したことに応答して、受領した印刷設定情報に記述されている前記拡張フィルタの機能の印刷設定情報キーワードをキーとして前記変換テーブルを検索し、該機能に対応する印刷設定構造体の値とその保存位置を取得して前記命令処理部に返す、
請求項1〜4のいずれか一項に記載のプリンタドライバ。 - 前記拡張フィルタ情報管理部は、
前記命令処理部がアプリケーションからUI表示要求を受領したことに応答して、前記拡張フィルタから取得した印刷能力情報に基づいて該拡張フィルタの機能を選択可能に表示するドライバUIを生成する、
請求項1〜5のいずれか一項に記載のプリンタドライバ。 - 前記拡張フィルタ制御部は、さらに、排他制御依頼部を含み、
前記排他制御依頼部は、前記命令処理部がアプリケーションから印刷設定情報の排他処理要求を受領したことに応答して、前記拡張フィルタに対して該印刷設定情報の排他処理要求を発行する、
請求項1〜6のいずれか一項記載のプリンタドライバ。 - 前記拡張フィルタ情報管理部は、
前記拡張フィルタから該拡張フィルタのデフォルト印刷設定情報を取得し、該デフォルト印刷設定情報の設定内容に対応する前記変換テーブル内の値にデフォルトフラグを記載する、
請求項1〜7のいずれか一項に記載のプリンタドライバ。 - 前記拡張フィルタ情報管理部は、
前記変換テーブル内の印刷能力情報の最初に出現する選択値をデフォルト値として定義し、該デフォルト値に対応する変換テーブル内の値にデフォルトフラグを記載する、
請求項1〜7のいずれか一項に記載のプリンタドライバ。 - 前記命令処理部は、
前記拡張フィルタに対して制御の可否を問い合わせ、その応答が否であった場合には、前記拡張フィルタ制御部による制御を実行しない、
請求項1〜9のいずれか一項に記載のプリンタドライバ。 - 前記拡張フィルタに対する制御の可否をフィルタ設定ファイルから読み込み、その値が否であった場合には、前記拡張フィルタ制御部による制御を実行しない、
請求項1〜9のいずれか一項に記載のプリンタドライバ。 - コンピュータを、請求項1〜11のいずれか一項に記載のプリンタドライバとして機能させるためのコンピュータ実行可能なプログラム。
- 請求項12に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011094066A JP2012226582A (ja) | 2011-04-20 | 2011-04-20 | プリンタドライバ、プログラムおよび記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011094066A JP2012226582A (ja) | 2011-04-20 | 2011-04-20 | プリンタドライバ、プログラムおよび記録媒体 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012226582A true JP2012226582A (ja) | 2012-11-15 |
Family
ID=47276671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011094066A Withdrawn JP2012226582A (ja) | 2011-04-20 | 2011-04-20 | プリンタドライバ、プログラムおよび記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012226582A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014215880A (ja) * | 2013-04-26 | 2014-11-17 | キヤノン株式会社 | データ処理装置、制御方法およびプログラム |
JP2015230711A (ja) * | 2014-06-06 | 2015-12-21 | キヤノン株式会社 | 情報処理装置およびプログラム、制御方法 |
JP2017068304A (ja) * | 2015-09-28 | 2017-04-06 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
US10338857B2 (en) | 2016-11-24 | 2019-07-02 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and information processing method |
US10353646B2 (en) | 2016-11-24 | 2019-07-16 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and information processing method |
US10540129B2 (en) | 2016-09-15 | 2020-01-21 | Ricoh Company, Ltd. | Information processing device, information processing system, and information processing method for executing script included in print information |
JP2021096869A (ja) * | 2017-01-31 | 2021-06-24 | キヤノン株式会社 | 情報処理装置及びプログラム及び方法 |
-
2011
- 2011-04-20 JP JP2011094066A patent/JP2012226582A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014215880A (ja) * | 2013-04-26 | 2014-11-17 | キヤノン株式会社 | データ処理装置、制御方法およびプログラム |
JP2015230711A (ja) * | 2014-06-06 | 2015-12-21 | キヤノン株式会社 | 情報処理装置およびプログラム、制御方法 |
JP2017068304A (ja) * | 2015-09-28 | 2017-04-06 | 富士ゼロックス株式会社 | 情報処理装置およびプログラム |
US10540129B2 (en) | 2016-09-15 | 2020-01-21 | Ricoh Company, Ltd. | Information processing device, information processing system, and information processing method for executing script included in print information |
US10338857B2 (en) | 2016-11-24 | 2019-07-02 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and information processing method |
US10353646B2 (en) | 2016-11-24 | 2019-07-16 | Ricoh Company, Ltd. | Information processing apparatus, information processing system, and information processing method |
JP2021096869A (ja) * | 2017-01-31 | 2021-06-24 | キヤノン株式会社 | 情報処理装置及びプログラム及び方法 |
JP7186815B2 (ja) | 2017-01-31 | 2022-12-09 | キヤノン株式会社 | 情報処理装置及びプログラム及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2012226582A (ja) | プリンタドライバ、プログラムおよび記録媒体 | |
JP6225822B2 (ja) | 出力システム、端末装置、プログラム及び出力方法 | |
JP6225586B2 (ja) | 出力システム、端末装置、プログラム及び出力方法 | |
KR101763018B1 (ko) | 시스템, 인쇄 장치, 제어 방법 및 컴퓨터 판독가능한 기록 매체 | |
US20160092281A1 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
US20080250430A1 (en) | Method and corresponding apparatus for creation of print drivers in a network | |
JP2011233092A (ja) | 情報処理装置、プログラムおよび記憶媒体 | |
US20150178020A1 (en) | Information processing apparatus, information processing method, and storage medium | |
JP2011180681A (ja) | インストーラ及びプリンタドライバのインストール方法 | |
JP5424134B2 (ja) | 情報処理装置、プリンタドライバ及び印刷設定方法並びにデータ構造体 | |
JP2008165291A (ja) | 情報処理装置及びプログラム | |
JP2015026215A (ja) | 印刷システムおよびその制御方法、情報処理装置およびその制御方法、印刷装置およびその制御方法、並びにプログラム | |
JP2010211667A (ja) | 印刷条件設定装置、プリンタードライバープログラム | |
JP2017033052A (ja) | 画像形成装置における制御装置およびプログラム | |
JP2020009055A (ja) | 情報処理装置及びプログラム | |
US10338857B2 (en) | Information processing apparatus, information processing system, and information processing method | |
JP2017117235A (ja) | 管理プログラム、管理システム、情報処理装置 | |
JP2007241877A (ja) | 印刷制御装置、印刷制御方法、印刷制御プログラム及び記録媒体 | |
JP6273756B2 (ja) | デバイスドライバ、情報処理装置および出力設定変換方法 | |
JP4903064B2 (ja) | 印刷制御装置、印刷制御方法、及び印刷制御プログラム | |
JP2013235314A (ja) | カスタマイズプログラム、情報処理装置および記録媒体 | |
JP2020030697A (ja) | 情報処理装置、端末装置、設定画面表示システム、設定画面表示方法 | |
JP6418304B2 (ja) | 出力システム、端末装置、プログラム及び出力方法 | |
US11385848B2 (en) | Information processing apparatus and control method | |
US10552100B2 (en) | Information processing apparatus that executes a printer driver for merging address books, information processing method, and non-transitory recording medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20140701 |