図面 (/)

技術 情報処理装置、方法およびプログラム

出願人 キヤノン株式会社
発明者 鈴木慎也
出願日 2016年9月16日 (4年8ヶ月経過) 出願番号 2016-181573
公開日 2018年3月22日 (3年2ヶ月経過) 公開番号 2018-045577
状態 特許登録済
技術分野 タイプライター等へのデジタル出力
主要キーワード 通信フィルタ 標準領域 プリントフィルタ 機種依存データ コンフィギュレーションモジュール レジストリデータベース 削減対象 面付けレイアウト
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年3月22日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (14)

課題

V4プリンタードライバーを利用する印刷ステムにおいてPrintTicketに対してユーザー設定に応じて動作しない機能などが記載されていることによって、印刷設定処理負荷が大きくかかっている。その負荷の影響で印刷設定処理時間がかかってしまい、最終的に印刷開始時間の遅れが生じる懸念がある。

解決手段

本発明は、例えば、XMLで記述された印刷設定情報で定義される複数の機能の中に、互いに関連する複数の機能が存在する場合に、互いに関連する複数の機能のいずれかが削減されるように、前記印刷設定情報の編集を行う編集手段を有することを特徴とする。

概要

背景

Microsoft(登録商標)のWindows8(登録商標)では、V4プリンタードライバーと呼ばれる新しいアーキテクチャで動作するプリンタードライバーが導入されている。V4プリンタードライバーは、従来のプリンタードライバーのアーキテクチャ(V3アーキテクチャ)として提供されていたXPS(XML Paper Specification)プリンタードライバーの後継となるアーキテクチャに従うプリンタードライバーである。また、V4プリンタードライバーは、XPS文書での印刷パス(XPS印刷パス)を利用している。

このXPS印刷パスにおいて、印刷物体裁を決定するために利用されるものがPrintCapabilitiesと呼ばれるXML(eXtensible Markup Language)形式記述された印刷能力情報と、PrintTicketと呼ばれるXML形式で記述された印刷設定情報である。V4プリンタードライバーでは、GPD(Generic Printer Description)と呼ばれる印刷設定定義ファイルに印刷能力情報を記載し、このGPDを含んだプリンタードライバーをOS(Operationg System)にインストールすることで、アプリケーションに対してPrintCapabilitiesやPrintTicketを利用した印刷設定の変更機能を提供することができる。

また、V4プリンタードライバーにはPrintCapabilitiesやPrintTicketをOS以外が編集するための機構も用意されている。この機能にて駆動されるモジュールを印刷設定編集モジュールと呼ぶこととする。プリンター開発ベンダーは、従来のV3アーキテクチャとは異なり、JavaScript(商標登録)で実装される印刷設定編集モジュールを利用してPrintCapabilitiesやPrintTicketを編集できる。また、印刷設定編集モジュールは、印刷設定間矛盾を解決する禁則処理や、機能追加処理などを行うことができる。

また、この印刷設定編集モジュールに関して、印刷開始遅れないようにするための従来技術(例えば、特許文献1)が存在する。V4プリンタードライバー及びOSによる印刷処理中に行われる印刷設定の編集処理に時間がかかると、印刷開始が遅れる問題が発生する。この問題に対して、特許文献1では、印刷設定編集モジュールの処理において、PrintTicketのチェック用データキャッシュ)を生成し、次回以降の印刷設定編集モジュールの検証処理に関してはチェック用データを利用して行う。本処理によって印刷設定モジュールにおけるPrintTicketの読み込み処理の必要性が軽減されることにより、印刷設定の編集処理の高速化を図っている。

概要

V4プリンタードライバーを利用する印刷ステムにおいてPrintTicketに対してユーザー設定に応じて動作しない機能などが記載されていることによって、印刷設定処理負荷が大きくかかっている。その負荷の影響で印刷設定処理時間がかかってしまい、最終的に印刷開始時間の遅れが生じる懸念がある。 本発明は、例えば、XMLで記述された印刷設定情報で定義される複数の機能の中に、互いに関連する複数の機能が存在する場合に、互いに関連する複数の機能のいずれかが削減されるように、前記印刷設定情報の編集を行う編集手段を有することを特徴とする。

目的

V4プリンタードライバーでは、GPD(Generic Printer Description)と呼ばれる印刷設定定義ファイルに印刷能力情報を記載し、このGPDを含んだプリンタードライバーをOS(Operationg System)にインストールすることで、アプリケーションに対してPrintCapabilitiesやPrintTicketを利用した印刷設定の変更機能を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

XML(eXtensibleMarkupLanguage)で記述された印刷設定情報を処理するOS(オペレーティングシステム)が動作する情報処理装置であって、前記印刷設定情報で定義される複数の機能の中で、互いに関連する複数の機能を探索する探索手段と、前記印刷設定情報の中に互いに関連する複数の機能が存在する場合に、互いに関連する複数の機能のいずれかが削減されるように、前記印刷設定情報の編集を行う編集手段と、を有することを特徴とする情報処理装置。

請求項2

前記編集手段は、前記印刷設定情報から、互いに関連する複数の機能のいずれかの機能を定義する記述を削除することで前記編集を行うことを特徴とする請求項1に記載の情報処理装置。

請求項3

前記編集手段は、互いに関連する複数の機能の一方の機能に対応する値が有効ではないことを示す場合に、前記印刷設定情報から、互いに関連する複数の機能の他方の機能を定義する記述を削除することで前記編集を行うことを特徴とする請求項2に記載の情報処理装置。

請求項4

前記編集手段は、プリンタードライバーにより管理されるデフォルト設定と、前記印刷設定情報とにそれぞれ含まれる同じ機能に対する値が一致する場合には、前記印刷設定情報から一致する値をもつ機能を定義する記述を削除することを特徴とする請求項2または3に記載の情報処理装置。

請求項5

前記編集手段は、前記印刷設定情報において、互いに関連する複数の機能の一方の機能を定義する記述を他方の機能を定義する記述の中に含めることで前記編集を行うことを特徴とする請求項1に記載の情報処理装置。

請求項6

前記編集手段は、JavaScriptにより実現されることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。

請求項7

XML(eXtensibleMarkupLanguage)で記述された印刷設定情報を処理するOS(オペレーティングシステム)が動作する情報処理装置における方法であって、前記印刷設定情報で定義される複数の機能の中で、互いに関連する複数の機能を探索する探索工程と、前記印刷設定情報の中に互いに関連する複数の機能が存在する場合に、互いに関連する複数の機能のいずれかが削減されるように、前記印刷設定情報の編集を行う編集工程と、を有することを特徴とする方法。

請求項8

請求項1乃至5のいずれか1項に記載の手段としてコンピューターを機能させるためのプログラム

技術分野

0001

本発明は、新しいアーキテクチャプリンタードライバーが動作する情報処理装置における印刷設定に係る処理負荷を軽減することで印刷パフォーマンスを向上する技術に関する。

背景技術

0002

Microsoft(登録商標)のWindows8(登録商標)では、V4プリンタードライバーと呼ばれる新しいアーキテクチャで動作するプリンタードライバーが導入されている。V4プリンタードライバーは、従来のプリンタードライバーのアーキテクチャ(V3アーキテクチャ)として提供されていたXPS(XML Paper Specification)プリンタードライバーの後継となるアーキテクチャに従うプリンタードライバーである。また、V4プリンタードライバーは、XPS文書での印刷パス(XPS印刷パス)を利用している。

0003

このXPS印刷パスにおいて、印刷物体裁を決定するために利用されるものがPrintCapabilitiesと呼ばれるXML(eXtensible Markup Language)形式記述された印刷能力情報と、PrintTicketと呼ばれるXML形式で記述された印刷設定情報である。V4プリンタードライバーでは、GPD(Generic Printer Description)と呼ばれる印刷設定定義ファイルに印刷能力情報を記載し、このGPDを含んだプリンタードライバーをOS(Operationg System)にインストールすることで、アプリケーションに対してPrintCapabilitiesやPrintTicketを利用した印刷設定の変更機能を提供することができる。

0004

また、V4プリンタードライバーにはPrintCapabilitiesやPrintTicketをOS以外が編集するための機構も用意されている。この機能にて駆動されるモジュールを印刷設定編集モジュールと呼ぶこととする。プリンター開発ベンダーは、従来のV3アーキテクチャとは異なり、JavaScript(商標登録)で実装される印刷設定編集モジュールを利用してPrintCapabilitiesやPrintTicketを編集できる。また、印刷設定編集モジュールは、印刷設定間矛盾を解決する禁則処理や、機能追加処理などを行うことができる。

0005

また、この印刷設定編集モジュールに関して、印刷開始遅れないようにするための従来技術(例えば、特許文献1)が存在する。V4プリンタードライバー及びOSによる印刷処理中に行われる印刷設定の編集処理に時間がかかると、印刷開始が遅れる問題が発生する。この問題に対して、特許文献1では、印刷設定編集モジュールの処理において、PrintTicketのチェック用データキャッシュ)を生成し、次回以降の印刷設定編集モジュールの検証処理に関してはチェック用データを利用して行う。本処理によって印刷設定モジュールにおけるPrintTicketの読み込み処理の必要性が軽減されることにより、印刷設定の編集処理の高速化を図っている。

先行技術

0006

特開2015−215654号公報

発明が解決しようとする課題

0007

ここで、V4プリンタードライバーを利用する新しい印刷ステムでは、一度の印刷処理の中の随所で、OSによって、PrintCapabilitiesやPrintTicketに対しては、印刷設定間に矛盾がないか、XML形式の記述として問題ないか等、様々な検証処理が行われている。PrintCapabilities及びPrintTicketはXML形式で記載されているため可読性が高いという特徴があるものの、文字列探索や編集処理に時間がかかる。

0008

V3アーキテクチャでのXPSプリンタードライバーの場合、CやC++といった言語で処理できること、さらにはプリンター開発ベンダーが検証を含めたPrintTicketの生成を担うことができたため、それらのOSの処理などに起因して印刷設定の編集処理に時間がかかることがなかった。

0009

一方、V4プリンタードライバーでは、ベンダーが利用できる編集モジュールがJavaScriptで実装された印刷設定編集モジュールだけである点、さらに、OSによって上述の様々な検証処理が動作してしまうことに起因して、印刷設定の編集処理に大きく時間がかかってしまうことがわかった。

0010

よって、印刷開始について更に改善するためには、上述の特許文献1のように印刷設定編集モジュールの処理を高速化するだけではなく、OSが行う検証処理などによる処理時間を軽減する必要性があることがわかった。

0011

ここで、OSが行う検証の処理時間に影響する要因として、「機能数」が考えられる。ここでいう機能数とは、ユーザーに提供できる機能のことを指し、具体的にはXML形式で記載されたPrintTicketのRootである<PrintTicket>の直下に存在する<Feature>の数のことを指す。この機能数が多くなるにつれOSによるPrintTicketの検証に大きく時間がかかることが判明し、印刷設定編集モジュールの処理を最適化するだけでは印刷設定の全体的な処理時間の軽減を行うことができないことがわかった。

0012

なお、プリンタードライバーとしては対応するプリンターがサポートする機能を最大限にユーザーに対して提供することが望まれるため、プリンタードライバーを提供する開発ベンダーは、これら多くの機能を提供しつつも、印刷設定情報の処理時間の軽減を行われることが求められる。

課題を解決するための手段

0013

そこで、本発明は、XML(eXtensible Markup Language)で記述された印刷設定情報を処理するOS(オペレーティングシステム)が動作する情報処理装置であって、前記印刷設定情報で定義される複数の機能の中で、互いに関連する複数の機能を探索する探索手段と、前記印刷設定情報の中に互いに関連する複数の機能が存在する場合に、互いに関連する複数の機能のいずれかが削減されるように、前記印刷設定情報の編集を行う編集手段と、を有することを特徴とする。

発明の効果

0014

本発明により、V4プリンタードライバーを利用する印刷システムにおいて、ユーザーに最大限の機能を提供しつつ、印刷開始までの時間を改善し得る仕組みを提供することができる。

図面の簡単な説明

0015

情報処理装置のハードウェアの構成例を示すブロック図である
本発明の印刷処理システムにおけるモジュール構成例を示すブロック図である
実施例1における印刷設定定義ファイル(GPD)の一部の例
実施例1における印刷能力情報であるPrintCapabilitiesの一部の例
実施例1における印刷設定情報であるPrintTicketの一部の例
実施例1における印刷設定編集モジュールの処理を説明するためのフローチャートを示す
実施例1で、関連するFeatureを削除したPrintTicketの例を示す
実施例1で、関連するFeatureを一つにまとめたPrintTicketの例を示す
実施例1の応用例で挙げるPrintTicketの例を示す
実施例2における印刷設定編集モジュールの処理を説明するためのフローチャートを示す
実施例2でDriverPropertyBagに保存する情報の例を示す
実施例2デフォルト設定から「印刷の向き」を「Landscape」に変更した場合のPrintTicketの例を示す
実施例2デフォルト設定の差分のみ表現したPrintTicketの例を示す

実施例

0016

以下、本発明を実施するための最良の形態について図面を用いて説明する。

0017

(実施例1)
図1は、情報処理装置のハードウェアの構成例を示すブロック図である。情報処理装置の一例としては、オペレーティングシステムやプリンタードライバーなど様々なソフトウェアプログラムが実行されるパーソナルコンピューターなどが挙げられる。

0018

CPU101は主記憶装置102のROM1021あるいはRAM1022あるいは補助記憶装置105に格納されたプログラムに従って装置全体の制御を行う。RAM1022はCPU101が各種処理を行う際のワークエリアとしても使用される。本実施形態における各コンポーネントの処理はすべてRAM102に読み込んで動作する。補助記憶装置105はアプリケーション1051やプリンタードライバー1052、オペレーティングシステム(OS)1053等を記録する。プリンタードライバー1052は、印刷機能を持つデバイスに対して、印刷指示を行うことができる。キーボード1031やマウスタッチパネルなどに代表されるポインティングデバイス1032などの入力機器は、入力I/F103を通じて、ユーザーがコンピューターに対して各種指示を与えるためのデバイスである。出力I/F104は、データを外部に出力するためのインターフェースであり、モニタ1041やプリンター1042などの出力機器に対してデータを出力する。プリンター1042とは直接接続されるローカルI/Oのみならず、通信I/F106を通じて接続されるネットワーク1061を通して接続されていてもよい。また、107は共通データシステムバスで、I/Fやモジュール間でデータのやりとりを行う。

0019

図2は、アプリケーション1051、プリンタードライバー1052、OS1053により実現される印刷処理印刷システムにおけるモジュール構成例を示すブロック図である。

0020

本印刷処理システムは、XPSファイルフォーマットスプールデータとして使用し、とくにプリンタードライバー1052としてV4プリンタードライバーを用いた印刷を行うシステムを想定している。印刷処理システムは、OS1053上で動作している。プリントマネージャ218、GDItoXPS変換モジュール207、フィルタパイプラインマネージャ212、ポートモニター219はOS1053に含まれるモジュールである。GDI(Graphics Device Interface)とはプリンターの印刷イメージの生成を行うグラフィックスコンポーネントであり、GDItoXPS変換モジュール207は、GDIで描画されたデータをXPSデータへ変換する機能を持つ。フィルタパイプラインマネージャ212は、XPS印刷パスの特徴であるフィルタ印刷処理の管理を行うモジュールである。ポートモニター219は、デバイスにアクセスするプリントマネージャ218とプリンター間で通信を制御することができプリンタードライバーはポートモニター219を経由して印刷処理を行う。GDItoXPS変換モジュール207、コンフィグレーションモジュール208、フィルタパイプラインマネージャ212は、プリンタードライバー1052に含まれているが、OS1053から提供されているプリンタードライバー1052のモジュールという位置づけである。

0021

コンフィグレーションモジュール208は、プリンタードライバーが提供する印刷設定編集モジュール2081を使用して印刷設定情報を編集することができ、印刷設定編集モジュール2081は、スクリプト言語、特にJavaScript(商標登録)で記載されたプログラムのことを指し、プリンタードライバーが提供するプロパティバッグ2082を利用して印刷設定情報を編集する。プロパティバッグ2082とは、プリンターの機種依存情報として利用するためのDriverPropertyBagと呼ばれるデータ群と、プリントキューづいたQueuePropertyBagと呼ばれるデータ群が保持された領域を指す。DriverPropertyBagは、ドライバーパッケージ内に存在するプリンターの機種依存データであり、プリンタードライバーインストール後にOS1053内の特定の領域に読み取り専用としてデータ群が保持される。QueuePropertyBagは、Key−Valueペアのxml定義ファイルをOS1053に登録することで利用することが可能であり、Valueに関して一定の権限上で編集が可能である。

0022

プリンタードライバー1052とフィルタパイプラインマネージャ212の各フィルタは、図1の補助記憶装置105にプリンタードライバー1052として格納されている。本実施例ではアプリケーション1051の例として、GDI印刷アプリケーション201とXPS印刷アプリケーション202との2つのプログラムを図示しており、図1の補助記憶装置105にそれぞれ格納されている。ユーザーは、キーボード1031やタッチパネル/マウスなどに代表されるポインティングデバイス1032などといった入力装置を使用して、出力装置のモニタ1041に映し出されたGDI印刷アプリケーション201(以下、GDIアプリと略す)、もしくはXPS印刷アプリケーションプログラム202(以下、XPSアプリと略す)から印刷処理を実行する。

0023

印刷処理は、(1)プリンターの選択、(2)印刷設定の作成、(3)描画データの変換、の3つの処理を順番に行うことで実行される。

0024

(1)まずは、印刷したいプリンター1042の選択をする。
ユーザーから見るとプリンター1042の選択は、印刷を実行するプリンター1042に対応したプリンタードライバー1052を選択することと同義である。1052の選択には、不図示のプリントキューを利用する。

0025

(2)次に、印刷設定を作成する。
印刷設定はまず、アプリケーション1051が印刷設定用のメモリ領域をRAM1022に確保する。そして、アプリケーション1051は、プリンタードライバー1052のコンフィギュレーションモジュール204を呼び出して、印刷設定データを作成して格納する。GDIアプリ201では印刷設定データとしてバイナリDEVMODE構造体203を用い、XPSアプリ202ではマークアップ言語のXMLで記載された印刷設定情報(PrintTicket)204を用いる。DEVMODE構造体203は、OS1053が定義する標準領域とプリンタードライバーが独自で定義する拡張領域を持つ。PrintTicket204は、XML形式で記述された印刷設定情報で、標準領域と拡張領域は名前空間によって記載が分かれている。PrintTicket204にいて標準領域に該当するオペレーティングシステムによって定義されたPrintSchemaのことをPublicSchemaと呼ぶこととする。PrintTicket204にいて拡張領域に該当するプリンタードライバーが独自で定義したPrintSchemaのことをPrivateSchemaと呼ぶこととする。印刷設定データには機種固有の情報も含まれているので、コンフィギュレーションモジュール208は、機種依存ファイル209を利用して、印刷設定データを作成する。このDEVMODE構造体203もしくはPrintTicket204が印刷設定を保持しており、アプリケーションが直接、値を書き換えることで印刷設定を変更する。機種依存ファイル209は、GPDと呼ばれる印刷設定定義ファイルを指し、図3のようにテキストベースで記載されている。図3では例として、「両面設定」、「スタンプ」および「スタンプテキストフォントスタイル」を表す機能が記載されている。

0026

GPDについて、具体的に説明する。GPDはMicrosoftが定義した記載方法に従って記述することで印刷設定機能を実現できる。例えば、「両面設定」を表わすDuplexというFeatureを301のように定義する。特に、310のようにPrintSchemaKeywordMapにオペレーティングシステムによって定義されたPrintSchemaの名称を記載することで、PublicSchemaを扱うことができる。また、両面設定の設定項目であるOptionとして、None(片面印刷(302))、VERTICAL(両面長辺とじ(303))、HORIZONTAL(両面短辺とじ(304))と定義することにより、OneSided、TwoSidedLongEdge,TwoSidedShortEdgeのPrintSchemaに割り当てられる。また、311のDefaultOptionに記載されたOptionがデフォルト設定として動作する。

0027

図3では、次に、320において、「スタンプ」を表すPagaWaterMarkPrintというFeatureを定義している。「両面設定」の310のようにPrintSchemaKeywordMapを定義しない場合は、320に記載された名称でPrivatePrintSchemaとして定義される。

0028

図3では、330において、同様の記載方法で「スタンプのフォントスタイル」についても定義する。「スタンプのフォントスタイル」という機能は、「スタンプ」印刷時の記載する文字列のスタイル標準や斜体など)を設定する機能である。

0029

上記のGPDを定義した場合、PrintCapabilities400(図4)およびPrinTicket204(図5)が、コンフィギュレーションモジュール208によって生成される。GPDに記載した内容とPrintCapabilities400やPrintTicket204は、1対1の関係で表現される。PrintCapabilities400やPrintTicket204は印刷設定編集モジュール2081やプリンターエクステンション210、GDItoXPS編集モジュール207などの様々なモジュール間でやり取りを行うデータである。

0030

プリンター1042に依存した専用の設定は、プリンターエクステンション210が持つユーザーインターフェースで設定することができる。プリンターエクステンション210は、プリンタードライバー1052の一種ではあるが、プリンタードライバー1052とは別のアプリケーション(プログラム)としてインストールを行う。プリンタードライバー1052は、そのユーザーインターフェースの設定に従い、DEVMODE構造体203もしくはPrintTicket204における少なくともいずれかの設定の値を変更する。

0031

PrintTicket204は、印刷設定がXML形式で記述されているので、XPSアプリ202がすべての設定値を直接変更して書き換えることは容易だが、プリンターエクステンション210のユーザーインターフェースを使って設定変更してもかまわない。印刷設定は文書印刷のたびに作成するが、プリンター1042のオプション機器や、ユーザーごとの環境設定など設定を保持しておきたいものは、ユーザーインターフェースがOS1053のレジストリデータベース205に保存する。レジストリデータベース205が使用できないときは、ユーザーインターフェースは、アプリケーションデータ220に設定を保存する。印刷設定のデフォルト値は、OS1053のプリントマネージャ218が、レジストリデータベース205に保存する。レジストリデータベース205や、アプリケーションデータ220は、補助記憶装置105に保存される。

0032

(3)最後に描画データの変換を行う。
印刷設定が確定したら、ユーザーはアプリケーションが提供する画面を介して、印刷処理の開始を指示する。GDIアプリ201から印刷する場合は、プリンタードライバーの形態を取るGDItoXPS変換モジュール207に描画データが送られ、XPSスプールファイル206が作成される。このときGDItoXPS変換モジュール207はコンフィギュレーションモジュール208を呼び出し、印刷設定をDEVMODE構造体203からPrintTicket204に変換する。変換する際には、印刷設定編集モジュール2081が使用される。XPSアプリ202から印刷する場合は、XPSファイルをXPSアプリ自身が生成するのと、OS1053がXPSアプリ202からの描画命令に応じてXPSファイルを生成するのと2通りの方法がある。どちらの方法であっても、印刷の途中でXPSスプールファイル206を生成する。

0033

XPSスプールファイル206が生成されたら、プリントフィルタパイプライン211に処理が渡される。プリントフィルタパイプライン211は複数のフィルタを通すことで印刷が行われる仕組みで、フィルタコンフィギュレーションファイル216でフィルタの数や順番を制御する。プリントフィルタパイプライン211で動作するフィルタパイプラインマネージャ212は、フィルタコンフィギュレーションファイル216に従って、この実施例では通信フィルタ213、レイアウトフィルタ214、レンダラフィルタ215の順に処理を行う。フィルタはプリンタードライバー1052の構成によって、数や種類が異なる。ここでの印刷処理は、フィルタのそれぞれが、XPSスプールファイル206を加工して次のフィルタに渡していくことで進むことになる。通信フィルタ213は、プリントマネージャ218およびポートモニターを経由してプリンター1042と通信する機能と、直接プリンター1042と通信する機能を持つ。レイアウトフィルタ214は、倍率の変更や製本面付けレイアウトやスタンプなどレイアウトに関する処理を行う。レンダラフィルタ215では、XPSスプールファイル206をレンダリングしてPDL(PageDescriptionLanguage)に変換する。PDLデータは印刷処理のスケジュール管理を行うプリントマネージャ218で管理され、キュー待ち行列)に印刷ジョブ次々と登録される。プリンター1042が印刷できる状態になったら、キューに登録した順にポートモニター219を通して送信する。

0034

上記印刷フローにおいて、各モジュールでPrintTicket204を扱っている。例えば、プリンターエクステンション210からの印刷設定の変更処理や、各フィルタ(通信フィルタ213、レイアウトフィルタ214、レンダラフィルタ215)による処理におけるPrintTicket204の読み込み処理などが該当する。それらの処理の際には、必ず、コンフィグモジュール208を介して印刷設定編集モジュール2081が呼び出される。つまり、一度の印刷処理の中で、このような呼び出しが数十回行われることになる。そして、そのような呼び出し処理が行われるたびに、毎回、OS1053によるPrintTicket204の検証処理などが動作してしまう。その処理に時間がかかってしまうと、プリンター1042での印刷開始が遅くなってしまう。

0035

そこで、本発明では、OS1053によるPrintTicket204の検証処理などを含む印刷設定の編集処理の負荷を軽減するために、印刷設定編集モジュール2081によるPrintTicket204の自動的な編集処理を追加する。

0036

図6で示すフローチャートを用いて、本実施例における特別な処理について詳細に説明する。本処理では、OS1053による検証などでは不要となる機能を(一時的に)PrintTicketから削減する(後述のS606,S607)などして、OS1053による処理負荷の軽減を実現している。なお、本フローチャートの各処理を実行する主体は印刷設定編集モジュール2081であり、以下の説明において記載がない限り、各処理の主語は印刷設定編集モジュール2081である。印刷設定編集モジュール2081は、補助記憶装置105からRAM1022にロードされ、CPU101によって実行される。

0037

前提として、PrintTicket204には、互いに関連のある複数の機能が存在する。例えば、図3のGPDの例を用いて説明した機能(Feature)である、スタンプ(PagaWaterMarkPrint)320と、スタンプのフォントスタイル(PagaWaterMarkPrintFONTSTYLE)330とが該当する。スタンプのフォントスタイル330は、スタンプがオンのときにはじめて動作する機能である。よって、例えば、スタンプ機能オフであった場合には、スタンプのフォントスタイル330に係るPrintTicket204における記述は、OS1053による検証処理などでは不要な機能に対応する記述となり得る。以下、この考え方などを踏まえて、印刷設定編集モジュール2081による処理を説明する。

0038

まず、コンフィグモジュール208の呼び出しに応じて、印刷設定編集モジュール2081による印刷設の定編集処理が開始される。

0039

S601において、コンフィグモジュール208から渡されるPrintTicket204を受信する。S602において、受信したPrintTicket204内に定義されている複数のFeatureの中の1つを、処理対象として取得する。

0040

S603において、処理対象のFeatureと関連性があるFeatureをPrintTicket204から探索する。本実施例では、関連性があるFeatureを決定する例として、処理対象のFeatureで定義された名称の全て(または一部)を用いた検索において、前方一致した名称をもつ別のFeatureを関連性があると判定する。例えば、図5のPrintTicket204の例でいうと、PageWatermarkPrint502とPageWatermarkPrintFontStyle503は前方一致するため、関連性があると判断できる。

0041

また、関連性があると判断する条件を、プロパティバッグ2082内のDriverPropertyBagにあらかじめ記載しておき、印刷設定編集モジュール2081がDriverPropertyBagに記載された情報を参照し、探索してもよい。具体的には、関連するFeature同士の組合せをDriverPropertyBagに予め登録しておくことになる。

0042

なお、本実施例では、この関連性がある機能の探索の対象にPublicSchemaの機能を含めないようにする。後述の処理では、PrintTicket内のPrintSchemaの定義を変更する処理も含まれる。そのため、OS1053が定義しているPublicSchemaにまで、本処理を適用してしまうと、PrintTicket204を利用する一般のアプリケーションが正しくPrintTicket204が扱えなくなる可能性がある。関連のある機能の探索対象をPrivateSchemaに限定することで、このような問題を未然に防止することができる。

0043

S604において、関連のあるFeatureが存在すると判断した場合にはS605に進み、存在しない場合にはS608へ進む。

0044

S605において、S602で取得した処理対象のFeatureの機能が有効(ON)か、否かを判断する。S605において、処理対象のFeatureの機能が有効でないと判断した場合にはS606へ進み、有効であったと判断した場合にはS607へ進む。本実施例において、機能が有効であるとの判断として、取得したFeatureにおけるOptionの選択肢が「None」以外である場合に本機能が有効化されていると判断してもよい。また、機能が有効であるとの判断条件をDriverPropertyBagに記載しておき、印刷設定編集モジュール2081がDriverPropertyBagに記載された情報を取得し、その情報を基に判断してもよい。

0045

S606において、処理対象のFeatureと関連があると判断されたFeatureを、PrintTicket204から削除する。この処理により、OS1053による検証などの処理対象となるPrintTicket204内のFeatureの数が削減されることになる。図7で、本処理後のPrintTicket204を示す。

0046

例えば、図5のPrintTicket204の場合、「スタンプ」機能を表すPageWatermarkPrint502を取得した場合には、関連のある機能として、「スタンプのフォントスタイル」機能を表すPageWatermarkPrintFontStyle503が見つかる。「スタンプのフォントスタイル」機能は、「スタンプ」機能が有効である際に利用される機能(印刷設定)である。例えば、「スタンプ」機能についてPrintTicket204内で無効を表す「None」が指定されていた場合には、PageWatermarkPrintFontStyle503に係る記述は、検証する必要のないと考えられる。そのため、S606において、関連のある機能としてのPageWatermarkPrintFontStyle503で示すFeatureに係る記述は、PrintTicket204から削除される。

0047

また、ここで機能の無効を表す選択肢が「None」という情報をDriverPropertyBagにあらかじめ記載しておき、印刷設定編集モジュール2081がDriverPropertyBagに記載された情報を取得し、その情報を基に判断してもよい。

0048

S607において、PrintTicket内の処理対象のFeatureと関連があると判断されたFeatureの記述を、処理対象のFeatureに係る記述の内部に再定義する。つまり、複数の関連するFeatureを、1つのFeatureにまとめるようにPrintTicketを編集する。S607の処理について、上述と同様に、「スタンプ」機能と「スタンプのフォントスタイル」機能とを例に挙げて説明する。「スタンプ」機能が有効である場合に「スタンプのフォントスタイル」機能が有効になる。ここでは、502の「スタンプ」機能が有効であることを表す「WatermarkPrint」が指定されていた場合を想定する。このような場合には、図5のPrintTicket204内のPageWatermarkPrintFontStyle503に係る記述が、図8の803で示すように、Feature名がPageWatermarkPrint802に係る記述の内部に再定義されている。

0049

ここで、OSが行うPrintTicketに対する検証などの処理時間に影響する要因として、XML形式で記載されたPrintTicketのRootである<PrintTicket>の直下に存在する<Feature>の数(機能数)の多さが挙げられる。このS607での再定義処理によれば、PrintTicketのRootである<PrintTicket>の直下に存在する<Feature>の数が減少するので、OSによる処理負荷が削減することが見込める。

0050

S608において、PrintTicket204に記載されたすべてのFeatureに確認したかを判断し、すべてのFeatureを確認していない場合にはS602に戻る。すべてのFeatureを確認した場合には本処理を終了する。

0051

なお、S606において関連のある機能に係る記述をPrintTicketから削除しているが、後述するS607の処理のように、ひとつのFeatureとして再定義するS607と同等の処理でも良い。また、PrintTicket204からの削除については、Featureに係る記述をPrintTicketから消去する以外にも、コメントアウトなどして、PrintTicketの解釈に際して認識されないようにすることで削除を行ってもよい。

0052

以下に、実施例1を適用した場合の効果を具体的に説明するために、異なるモデルのプリンターのそれぞれについて、機能数と印刷設定編集処理にかかる処理時間の実験結果についてまとめた表(表1)を記載する。表中の「機能数」は、各モデルにおける、PublicSchema及びPrivateSchemaで定義される機能の数を示す。また、「処理時間[S]」は、本実施例の未適用/適用のそれぞれの場合での、一度の印刷処理においてMicrosoftが提供するOSによるPrintTicketを処理する複数回の関数呼び出しによる合計の処理時間を示す。

0053

なお、新しいアーキテクチャであるV4プリンタードライバーでは、現状、プリンターがサポートする全ての機能を提供するのではなく、一部の機能のみ提供するものが多い。一部の機能のみ提供する、つまり機能数が少ない場合には、表1で示すように、本実施例の適用の有無に関わらず処理時間が短い。しかし、V4プリンタードライバーで、今後登場する新たな機能などを含む全ての機能を提供するようになれば、PrintTicket内に定義されるFeatureの数(「機能数」)が増加し、OSによる合計の処理時間が増加していくことが想定される。

0054

0055

表1の実験値で示すように、V4プリンタードライバーを利用する印刷システムにおいて、本実施例における機能数の削減での印刷設定処理にかかる負荷軽減により、ユーザーに最大限の機能を提供しつつ、印刷装置側での印刷開始を早めることができる。また、実施例1を適用時の処理時間の欄に記載の「対象機能」は、前述の図6で示す処理によりPrintTicket内のPrivateSchemaで定義された機能の中で、削減された機能の数を示している。

0056

(応用例1)
上述の実施例1において、PrintTicket204の機能を削除(S606)および1つのFeatureにまとめる(S607)ことにより、PrintTicketを扱う他のアプリケーションとの互換性に問題が発生する場合が考えられる。例えば、従来のV4プリンタードライバーに対応していたアプリケーションは、上述の実施例1を実現した後のV4プリンタードライバーでは、Featureがそもそも存在しないのか、削除されてしまったのかが不明になる場合がある。

0057

そこで、印刷設定編集モジュール209は、図6に示す処理後のPrintTicketに対して、ヒント情報をさらに記述することで、アプリケーション側の互換性問題を解決してもよい。具体的には、図9で示すように、削除対象となったFeatureに係る記述を、901に示すように”Property name”として再定義して、PrintTicket内に残す。なお、前述した通り、OSによるPrintTicketに対する検証処理は、主に、XML形式で記載されたPrintTicketのRootである<PrintTicket>の直下に存在する<Feature>に対する処理になる。従って、本処理によって、OSによる処理負荷はそこまで大きくなることはない。

0058

(応用例2)
実施例1の処理(図6)を行うかどうかを外部から指定できるように、QueuePropetyBagに、図6の処理を有効化するか否かを示す設定情報を持たせてもよい。

0059

(実施例2)
実施例1においては、関連のある複数のFeatureの中のいずれかを削減の対象としていたため、図6の処理が適用される機能(印刷設定)は限定されていた。そこで本実施形態では、PrintTicket内のそれ以外のFeatureに関しても、削減対象とする手段について説明する。

0060

V4プリンタードライバーを利用する印刷システムにおいて、ユーザーがアプリケーションから印刷を行う場合、プリンターエクステンション210が持つユーザーインターフェースで印刷設定を変更する場合がある。ただ、ユーザーは、一度の印刷指示を行う際に、多くの印刷設定を変更することは少なく、基本的にデフォルトの印刷設定(デフォルト設定)で印刷する場合が多い。また、変更した場合でも、よく利用される「両面設定」や「2in1印刷」、「白黒印刷」といった一部のみの変更が多い。

0061

一方で、ユーザーの設定変更が多い場合であっても、少ない場合であっても、XML形式で記載されたPrintTicketのRootである<PrintTicket>の直下に存在する<Feature>の数(機能数)については変化がない。つまり、ユーザーの設定変更後に内部的に行われるOS1053や印刷設定編集モジュール2081における印刷設定処理に関しては、設定変更の量に関わらず負荷が不変となる。当然ながら、デフォルト設定に含まれる印刷設定に対応するFeatureは、何度も検証を行う必要は無いと考えられる。

0062

そこで本実施例では、とくに、OS1053による印刷設定情報(PrintTicket)の検証などの処理負荷の軽減のために、ユーザーの設定変更後にデフォルト設定からの差異部分だけを表現した印刷設定情報を生成する仕組みについて説明する。

0063

なお、本実施例におけるハードウェア構成ソフトウェア構成などは実施例1に示すものと同様であり、実施例1とは異なる処理を中心に、以下、説明を行う。

0064

図10のフローチャートを用いて、実施例2に特有な処理の詳細を説明する。本フローチャートの処理を行うモジュールは印刷設定編集モジュール2081であり、以下の説明において記載がない限り主語は印刷設定編集モジュール2081である。印刷設定編集モジュール2081は、補助記憶装置105からRAM1022にロードされ、CPU101によって実行される。なお、本処理は、コンフィグモジュール208によって呼び出されることで開始される。

0065

S1001において、コンフィグモジュール208から渡されるPrintTicketを受信する。ここで取得されるPrintTicketには、ユーザーによる印刷設定変更があれば、その変更された設定値が反映されている。次に、S1002において、プロパティバッグ2082内のDriverPropertyBagに保存されたプリンタードライバーのデフォルト設定を取得する。ドライバーのデフォルト設定は、Feature名とデフォルトであるOption名がKey−Valueペアで保存されているデータ群である。

0066

例えば、図11に示すように「印刷の向き」を表すFeatureである「PageOrientation」のデフォルト設定での値が「Portrait」、「両面設定」を表すFeatureである「DocumentDuplex」のデフォルト設定での値が「OneSided」という情報が記載されているものとする。本実施例では、本データ群の表現方法をKey−Valueペアで表現しているが、他の表現方法でもよい。印刷設定編集モジュール2081は、これらの情報により各Featureのデフォルト設定の値を保持しておく。

0067

S1003において、受信したPrintTicket内に定義されている複数のFeatureの中の1つを、処理対象として取得する。

0068

S1004において、PrintTicketにおける処理対象のFeatureの設定値と、S1002で取得したデフォルト設定に含まれる対応する印刷設定(機能)の設定値とが、一致するかを判断する。一致すると判断した場合はS1005へ進み、一致しない場合にはS1006へ進む。

0069

S1005において、処理対象のFeatureに係る記述を、PrintTicketから削除する。

0070

例えば、図12で示すPrintTicket1200を受信した場合を想定する。まず、PrintTicket1200の1つのFeatureに係る記述で、DocumentDuplex1201のOptionの値が「OneSided」となっている。また、図11で示すデフォルト設定では、DocumentDuplexのデフォルト設定の値が「OneSided」となっている。この場合には、S1005の処理で互いの設定値が一致すると判断できるため、印刷設定編集モジュール2081がPrintTicket1200からDocumentDuplex1201を示すFeatureに係る記述を削除する。

0071

また、図12では、PrintTicket1200内のPageOrientation1202のOptionの値が「Landscape」となっている。ここで、図11で示すデフォルト設定では、PageOrientationのデフォルト設定の値が「Portrait」となっている。この場合には、S1005の処理で互いの設定値が一致しないと判断できるため、印刷設定編集モジュール2081によるPageOrientation1202を示すFeatureに係る記述の削除処理は実行されない。

0072

S1006において、PrintTicket204に記載されたすべてのFeatureに確認したかを判断し、すべてのFeatureを確認していない場合にはS1003に戻る。すべてのFeatureを確認した場合には本処理を終了する。

0073

例えば、ユーザーが「印刷の向き」をデフォルトの設定値である「Portrait」から「Landscape」に設定変更した場合には、図10で示す処理により、図13で示すPrintTicket1300が生成されることになる。PrintTicket1300では、DocumentDuplex1201を示すFeatureに係る記述については削除されている。

0074

また、実施例1と同様に、実施例2に係る図10の処理(とくにS1005)は、PublicSchemaのFeatureについては対象外としてもよい。これにより、PrintTicketを扱うアプリケーションとの互換性を優先できる。

0075

以下に、実施例2を適用した場合の効果を具体的に説明するために、異なるモデルのプリンターのそれぞれについて、機能数と印刷設定編集処理にかかる処理時間の実験結果についてまとめた表(表2)を記載する。表中の用語は、前述した表1と同様の意味である。

0076

0077

実施例1に比べて、実施例2ではPrintTicket内で削減される機能数が非常に多くなるため、OS1053による検証処理を含む印刷設定処理にかかる負荷をより軽減することができる。

0078

なお、本実施例では、デフォルト設定がDriverPropertyBagに保存されていることを想定しているが、プロパティバッグ2082内のQueuePropertyBagに保存されていてもよい。例えば、デフォルト設定をカスタマイズして利用するユーザーのために、プリンタードライバーのインストーラー(不図示)がデフォルト設定を変更したうえでインストールを実行する場合もある。その際にインストーラーは、QueuePropetyBagに、上記のようにKey−Valueペアでプリンタードライバーのデフォルト設定を保存しておく。上述のS1002では、印刷設定編集モジュール2081は、QueuePropetyBagに保存されたKey−Valueペアのデータ群で示すデフォルト設定を取得し、それ以降の処理に適用する。

0079

なお、本実施例を適用する場合には、様々なアプリケーション、並びにプリンタードライバーの各フィルタは、PrintTicketから印刷設定変更の差分しか判断できなくなるため、デフォルト設定を参照できる必要がある。よって、WSDA(Windows Store Device Apps)やプリンターエクステンション210のようなDriverPropertyBagにアクセスできるモジュールの場合は、前述したDriverPropertyBagのKey−Valueペアで保存されたデフォルト情報を用いて、UIを形成する。一方で、通常のGDI印刷アプリケーション201やXPS印刷アプリケーション202がPrintTicketを扱う場合は、DriverPropertyBagへのアクセスが不可能であるため、印刷設定能力情報であるPrintCapabilitiesに記載されたデフォルト設定を参照する。

0080

(応用例)
実施例1と実施例2に係る処理の両方を印刷設定編集モジュール2081により実行することが可能である。例えば、図10で示す処理を適用したPrintTicketに対して、さらに図6で示す処理を適用することができる。

0081

(他の実施例)
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。

0082

ここで、本発明は、上述した実施形態の機能を実現する1以上のソフトウェア(プログラム)を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の1以上のコンピュータ(CPUやMPU等)によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路(例えば、ASIC)によっても、本発明は実現可能である。

0083

1051アプリケーション
1052プリンタードライバー
1052オペレーティングシステム(OS)
2081印刷設定編集モジュール

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ