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

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

Info

Publication number
JP2023034958A
JP2023034958A JP2021141472A JP2021141472A JP2023034958A JP 2023034958 A JP2023034958 A JP 2023034958A JP 2021141472 A JP2021141472 A JP 2021141472A JP 2021141472 A JP2021141472 A JP 2021141472A JP 2023034958 A JP2023034958 A JP 2023034958A
Authority
JP
Japan
Prior art keywords
print
function
print data
skip
information
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
JP2021141472A
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 JP2021141472A priority Critical patent/JP2023034958A/ja
Priority to US17/892,258 priority patent/US11842091B2/en
Publication of JP2023034958A publication Critical patent/JP2023034958A/ja
Priority to US18/388,566 priority patent/US20240086119A1/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1205Improving or facilitating administration, e.g. print management resulting in increased flexibility in print job configuration, e.g. job settings, print requirements, job tickets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1225Software update, e.g. print driver, modules, plug-ins, fonts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/1244Job translation or job parsing, e.g. page banding
    • G06F3/1247Job translation or job parsing, e.g. page banding by conversion to printer ready format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1224Client or server resources management
    • G06F3/1228Printing driverless or using generic drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Optics & Photonics (AREA)

Abstract

【課題】拡張アプリケーションがより良い機能を提供すること。【解決手段】情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションのプログラムは、情報処理装置のコンピュータを、印刷データ生成ソフトウェアで用いられる印刷機能情報に拡張機能の情報を追加する機能拡張手段と、印刷データ生成ソフトウェアによって行われる中間データの変換処理をスキップするスキップ処理を行うか否かを、拡張アプリケーションで共有されている共有情報に格納されている設定値に応じて切り替えるスキップ制御手段と、スキップ制御手段による制御に従って印刷データ生成ソフトウェアで変換処理がスキップされた中間データを編集し、編集後の中間データを印刷データに変換する編集手段と、として機能させる。【選択図】図11

Description

本開示は、印刷の機能を拡張する技術に関する。
近年、Windows(登録商標)などにおいて、複数のベンダが提供する印刷装置に対して共通で利用することが可能な標準的なクラスドライバ(以下、「標準ドライバ」とも呼ぶ)が提供されている。このような標準ドライバは、オペレーティングシステム(以下、「OS」という)のパッケージに同梱されている。標準ドライバは、接続した印刷装置から取得した情報に基づき生成されたPrintCapabilitiesに応じて印刷機能を指定可能に構成される。これにより、標準ドライバを利用するユーザは、接続した印刷装置の能力に応じた印刷機能を指定することができる。
標準ドライバには、機能拡張用のアプリケーション(以下、「拡張アプリケーション」とも呼ぶ)を関連付けることができる。拡張アプリケーションは、印刷装置を提供するベンダにより提供される。ベンダは、拡張アプリケーションを提供することにより、標準ドライバのみでは実現できない機能(拡張機能)を提供することができる。特許文献1には、拡張アプリケーションにより、スタンプ機能等の機能を拡張する技術が開示されている。
特開2019-74906号公報
拡張アプリケーションがより良い機能を提供するために、さらなる工夫が求められている。
本開示の一態様に係るプログラムは、情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションのプログラムであって、前記情報処理装置のコンピュータを、前記印刷データ生成ソフトウェアで用いられる印刷機能情報に拡張機能の情報を追加する機能拡張手段と、前記印刷データ生成ソフトウェアによって行われる中間データの変換処理をスキップするスキップ処理を行うか否かを、前記拡張アプリケーションで共有されている共有情報に格納されている設定値に応じて切り替えるスキップ制御手段と、前記スキップ制御手段による制御に従って前記印刷データ生成ソフトウェアで前記変換処理がスキップされた前記中間データを編集し、編集後の中間データを印刷データに変換する編集手段と、として機能させる。
本開示によれば、拡張アプリケーションは、より良い機能を提供することができる。
印刷システムのハードウェア構成を示すブロック図である。 印刷システムの構成を模式的に示す図である。 印刷システムの各パートで扱われるデータのフォーマットを示した図である。 印刷機能情報の編集処理の一例を示すフローチャートである。 PDCの一例を示す図である。 機能追加されたPDCの一例を示す図である。 能力情報の一例を示す図である。 印刷設定画面表示処理の一例を示すフローチャートである。 印刷設定画面の一例を示す図である。 スキップ設定の一例を示す図である。 スキップ処理の一例を示すフローチャートである。 印刷データ編集処理の一例を示すフローチャートである。 割り付け処理の一例を示す図である。 印刷機能情報の編集処理の一例を示すフローチャートである。 印刷設定画面表示処理の一例を示すフローチャートである。 印刷機能情報の編集処理の一例を示すフローチャートである。 印刷設定画面表示処理の一例を示すフローチャートである。 印刷機能情報の編集処理の一例を示すフローチャートである。 印刷設定画面表示処理の一例を示すフローチャートである。 印刷機能情報の編集処理の一例を示すフローチャートである。
以下、添付図面を参照して本開示の好適な実施の形態を詳しく説明する。尚、以下の実施の形態は本開示事項を限定するものでなく、また本実施の形態で説明されている特徴の組み合わせすべてが本開示の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
<<第1実施形態>>
<印刷システムのハードウェア構成>
図1は、本実施形態における印刷システムのハードウェア構成を示すブロック図である。印刷システムは、ホストコンピュータ101を含み、図1では、主にホストコンピュータのブロック構成を示している。ホストコンピュータ101は、情報処理装置の一例である。ホストコンピュータ101は、入力インタフェース110、CPU111、ROM112、RAM113、外部記憶装置114、出力インタフェース115、入出力インタフェース116、及びネットワークインタフェイス(NETIF)120を有する。入力インタフェース110には、キーボード118およびポインティングデバイス117などの入力デバイスが接続され、出力インタフェース115には、表示部119などの表示デバイスが接続されている。NETIF120は、ネットワークを介して外部機器との間でデータ転送を行うための制御を行う。尚、図1の例では、表示部119、ポインティングデバイス117、およびキーボード118は、ホストコンピュータ101とは別のデバイスの例として記載されているが、これらがホストコンピュータ101に含まれていてもよい。また、表示部119は、入出力デバイスの機能を備えたタッチパネルディスプレイであってもよい。
ROM112には、初期化プログラムが格納されている。外部記憶装置114には、アプリケーションプログラム群、オペレーティングシステム(OS)、印刷データ生成ソフトウェア、およびその他の各種のデータが格納されている。なお、以下の説明においてOSとは、特記しない限りROM112に格納されたホストコンピュータ101のOSであるものとする。また以下においてアプリケーションプログラムをアプリケーションと略する。RAM113は、外部記憶装置114に格納される各種のプログラムを実行する際のワークメモリ等として使用され、これにより、各種プログラムがホストコンピュータ101内で動作することが可能となっている。
なお、本実施形態では、CPU111が、ROM112に格納されたプログラムの手順に従って処理を行うことによって、ホストコンピュータ101における後述の機能及び処理を実行する。
出力デバイスである印刷装置102は、入出力インタフェース116を介して、ホストコンピュータ101と接続されている。図1の例では、ホストコンピュータ101と印刷装置102とが分かれた例を示しているが、これらが一つの情報処理装置として構成されていてもよい。なお、印刷装置は、インクを紙面上に吐出することで印刷するインクジェットプリンタを例に説明するが、他の方法(例えば電子写真方式)で印刷が実行されてもよい。また、ホストコンピュータ101は、デスクトップパソコンでも、スマートフォンでも、タブレット端末でも、ノートパソコンでもよい。入出力インタフェース116は、有線であっても無線であってもよい。また、ホストコンピュータ101と印刷装置102とは、LANまたはインターネットなどのWANを介して接続されていてもよい。
<ソフトウェアを中心とした印刷システムの構成>
図2は、印刷システムの構成を模式的に示す図である。ここでは、OSとしてMicrosoft(登録商標)のWindows(登録商標)10を搭載したホストコンピュータ101を用いた印刷システムを前提として説明する。図2(a)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられていない場合の一般的な構成を示す図である。つまり、拡張アプリケーション204が用いられていない印刷システムの構成を示す図である。一方、図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている本実施形態の印刷システムの構成を示す図である。
まず、図2(a)を用いて、一般的な構成の印刷システムの例を説明する。一般的な構成の印刷システムは、描画アプリケーション201および印刷データ生成ソフトウェア202を備えている。また、印刷機能情報203が、RAM113または外部記憶装置114に記憶されている。描画アプリケーション201および印刷データ生成ソフトウェア202は、ホストコンピュータ101で動作可能なプログラムであり、RAM113または外部記憶装置114に記憶されている。
描画アプリケーション201は、印刷されるコンテンツ(描画データ)を作成するソフトウェアである。描画アプリケーション201の例としては、文書作成アプリケーションや、表計算アプリケーション、プレゼンテーション用データ作成アプリケーションなどの、ユーザが操作する各種のアプリケーションが挙げられる。描画アプリケーション201は、ユーザからの操作の受付により印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、印刷データ生成ソフトウェア202及び印刷装置102の動作を指示するための印刷設定情報が含まれる。印刷設定情報はPrintTicket(以下、「PT」と略す)とも呼ばれる。
描画アプリケーション201は、ユーザからの印刷設定操作を受け付けて印刷設定情報(PT)を設定するために、印刷設定画面を表示させることができる。印刷設定画面は、印刷データ生成ソフトウェア202、OS、および描画アプリケーション201のうち、いずれかが提供する画面である。印刷設定画面は、設定可能な印刷機能を示す設定アイテム(以下、「コントロールアイテム」とも呼ぶ)と、その設定値を示すコントロールアイテムとを含む。印刷設定画面には、印刷データ生成ソフトウェア202から取得する能力情報(印刷設定として設定可能な情報)に従いコントロールアイテムが表示される。能力情報は、PrintCapabilities(以下、「PC」と略す)とも呼ばれる。印刷データ生成ソフトウェア202は、印刷機能情報203に基づき、PCを決定する。
印刷機能情報203は、設定可能なすべての印刷機能、その設定値、および、設定値同士の排他関係が記載されている印刷機能を示すデータである。印刷機能情報203は、PDC(Print Device Capabilities)とも呼ばれる。印刷機能情報203は、印刷データ生成ソフトウェア202の構成ファイルに含まれ、変更不可能なファイルとして外部記憶装置114に配置される。あるいは、印刷機能情報203は、印刷データ生成ソフトウェア202により、動的に生成されることもできる。具体的には、印刷データ生成ソフトウェア202またはOSは、印刷装置102から印刷装置の属性データを取得し、取得した属性データ内の属性情報に応じて印刷機能情報203を生成するよう構成することができる。動的に印刷機能情報203が生成される場合、生成された印刷機能情報203は編集可能である。なお、印刷装置102から取得される印刷装置の属性データとは、印刷装置に対してIPPのGet-Printer-Attributesオペレーションを発行することにより取得するレスポンスのデータである。IPPとは、Internet Print Protocolのことである。レスポンスの中には、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報と、その属性情報に関連する設定値と、が含まれる。このレスポンスのデータはRAM113に保存される。
このように構成することで、印刷データ生成ソフトウェア202は、接続された印刷装置102に応じて、それぞれの印刷装置102で利用可能な印刷機能をユーザが指定可能に構成することができる。すなわち、異なる機能を持つ印刷装置、または、異なるベンダが開発した印刷装置を接続した場合であっても、印刷データ生成ソフトウェア202は、接続した印刷装置に応じて利用可能な印刷機能をユーザが指定可能に構成することができる。ここでは、印刷データ生成ソフトウェア202として、Windows(登録商標)10に搭載されている、IPP Class Driverを利用した構成について説明する。IPP Class Driverは、IPPと呼ばれる標準的な印刷プロトコルの仕様に従って印刷処理を実行するプリンタドライバであり、OSと同梱されてホストコンピュータ101に予めインストールされているソフトウェアである。また、IPP Class Driverは、印刷装置102の機種に応じた、印刷装置102のベンダが提供する、固有のプリンタドライバではない。IPP Class Driverは、複数の印刷装置に対して共通で利用することが可能であり、OSのベンダが提供する標準的なクラスドライバである。また、IPP Class Driverは、接続した印刷装置102でサポートする印刷機能をユーザが指定できるように、接続した印刷装置102の属性情報を取得し、その情報を元に印刷機能情報203を生成する。このように、印刷データ生成ソフトウェア202であるIPP Class Driverは、動的に印刷機能情報203(PDC)を生成することができる。
このような印刷機能情報203(PDC)に基づくPCに基づいて表示される印刷設定画面を通じて指定された印刷設定情報(PT)が、描画アプリケーション201から出力される印刷指示に含まれる。なお、描画アプリケーション201から出力される印刷指示には、印刷設定情報(PT)のほか、描画すべきデータが含まれる。
OSは、描画アプリケーション201から出力された印刷指示に基づき中間データ(入力データとも呼ぶ)を生成して、印刷データ生成ソフトウェア202に渡す。なお、描画アプリケーション201が印刷用に出力するデータは、Graphic Device Interface形式のデータ(GDI形式データ)またはXML Paper Specification形式のデータ(XPS形式のデータ)である。印刷データ生成ソフトウェア202として、IPP Class Driverを利用する場合、描画アプリケーション201が出力するデータがGDI形式のデータなら、OSは、データ形式の変換を行う。即ち、OSは、描画アプリケーション201から出力されたGDI形式のデータをXPS形式のデータに変換する。そして、変換したXPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。一方、描画アプリケーション201が出力するデータがXPS形式のデータなら、OSは、XPS形式のデータを中間データとして印刷データ生成ソフトウェア202に渡す。なお、中間データには、紙面上に形成する画像の情報である描画データと、ユーザにより設定された印刷設定情報(PT)と、が含まれる。
印刷データ生成ソフトウェア202は、取得した中間データを印刷装置102が解釈可能な印刷データに変換し、印刷装置102に送信する。なお、印刷データには、紙面上に形成する画像の情報である描画データと、ユーザにより設定された印刷設定情報に基づき生成された印刷設定属性情報(印刷設定を指定する属性情報)とが含まれる。印刷設定属性情報は、印刷装置102で指定可能な機能(印刷装置の能力)を示す属性情報とその属性情報に関連する設定値とを含む。
印刷装置102は、印刷データ生成ソフトウェア202から送られた印刷データに基づき紙面への印刷を行う。このとき、印刷装置102は、印刷データに含まれる印刷設定属性情報に従った動作で、印刷データに含まれる描画データを紙面上に形成する。印刷設定属性情報には、印刷品位(画質優先または速度優先等)、および、両面印刷等を指定するための属性情報とその設定値などが含まれている。例えば、印刷設定属性情報に、両面印刷を指定する属性情報が含まれる場合、印刷装置102は、両面印刷を実行する。
図2(b)は、拡張アプリケーション204が、印刷データ生成ソフトウェア202および印刷装置102と関連付けられている場合の本実施形態の構成を示す図である。なお、以下において特に言及しない構成および処理は、図2(a)の構成および処理と同等である。なお、以下の説明において、ホストコンピュータ101が備える各ソフトウェアが実行するものとして説明されている処理は、実際には、次のように実現されるものとする。即ち、CPU111が、ROM112等に保存された各ソフトウェアをRAM113に展開して実行することにより実現されるものとする。
拡張アプリケーション204は、印刷データ生成ソフトウェア202の機能を拡張するためのソフトウェアであり、OSと同梱されてホストコンピュータ101に予めインストールされているソフトウェアでないソフトウェアである。そのためユーザがホストコンピュータ101を操作して拡張アプリケーション204を、インターネットを介してサーバからダウンロードして、ホストコンピュータ101にインストールする。あるいは、ホストコンピュータ101に印刷装置102が接続されたことに基づき、拡張アプリケーション204が自動的にホストコンピュータ101にインストールされてもよい。具体的には、ホストコンピュータ101に印刷装置102が接続された場合、OSは印刷装置102からデバイス識別情報を取得する。OSは、取得されたデバイス識別情報に対応する拡張アプリケーション204を、インターネットを介してサーバからダウンロードし、ホストコンピュータ101にインストールしてもよい。このように、印刷データ生成ソフトウェア202と、拡張アプリケーション204とは、別ファイルとしてホストコンピュータ101に保持される。
なお、印刷データ生成ソフトウェア202および拡張アプリケーション204は、更新されてバージョンアップされることもあるが、この更新処理も別々のタイミングで行われる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるタイミングと、拡張アプリケーション204が取得されるタイミングとは異なる。また、ホストコンピュータ101により印刷データ生成ソフトウェア202が取得されるトリガーと、拡張アプリケーション204が取得されるトリガーも異なる。なお、拡張アプリケーション204がインストールされた場合、OSが、拡張アプリケーション204を、印刷データ生成ソフトウェア202および対応する印刷装置102に関連付ける。
本実施形態で説明する拡張アプリケーション204は、印刷設定画面拡張ユニット205と、スキップ制御ユニット206と、印刷機能拡張ユニット207と、印刷データ編集ユニット208と、通知ユニット209と、を備える。また、拡張アプリケーション204は、各ユニットから共通してアクセス可能な共有情報210を備える。また、拡張アプリケーション204は、印刷装置102を提供するベンダによって提供されるものである。共有情報210の実体は、外部記憶装置114に保存されたファイル、または、RAM113上に格納された情報である。拡張アプリケーション204は、OSが提供するAPI(Application Program Interface)を利用することで、共有情報210への情報の書き込み及び読み出しを行う。
なお、拡張アプリケーション204は、各ユニットの処理が終わるたびに動作を終了してもよい。その場合、各ユニットを使う要求を受ける度にOSが拡張アプリケーション204を起動することになる。また、別の形態も考えられる。例えば印刷設定画面拡張ユニット205の処理が終了するとOSは拡張アプリケーション204の動作を終了させるが、スキップ制御ユニット206の処理が終了してもOSは拡張アプリケーション204を起動させたままにしてもよい。
さらに、拡張アプリケーション204は、各ユニットの処理の中で、処理をキャンセルしてもよい。拡張アプリケーション204が処理をキャンセルした場合、印刷キュー上の処理中のジョブがOSにより削除される。なお、印刷キューとは、OSが備えるスプーラであり、生成されたジョブを格納するものである。また、ジョブは、拡張アプリケーション204から印刷指示が出力されたことに基づいて生成され、印刷キューに格納される。拡張アプリケーション204から印刷指示が出力されたことに基づいて生成される中間データは、このとき格納されたジョブに関連付けられたデータとなる。ジョブに関連付けられている中間データが処理中の場合は、ジョブのステータスも処理中となる。またジョブは、当該ジョブに関連付けられた中間データが変換された印刷データ(言い換えれば、当該ジョブに関連付けられた印刷データ)が印刷装置102に送信されることで、OSにより印刷キューから削除される。
描画アプリケーション201は、ユーザから印刷要求を受けると、印刷指示をOSに発行する。印刷指示には、図2(a)の構成と同様に、印刷設定情報(PT)が含まれる。図2(b)の構成下でも、図2(a)の構成と同様、描画アプリケーション201は、印刷設定情報(PT)を指定するための印刷設定画面を表示させることができる。図2(b)の構成下では、拡張アプリケーション204が提供する印刷設定画面が表示される。具体的には、拡張アプリケーション204が備える印刷設定画面拡張ユニット205が提供する印刷設定画面が表示される。即ち、印刷設定画面拡張ユニット205による印刷設定画面の表示制御が行われる。なお、印刷設定画面拡張ユニット205により提供される印刷設定画面が表示されるか否かはユーザの操作に依存する。
描画アプリケーション201がユーザから印刷要求を受け付け、印刷指示がOSに発行されると、OSはスキップ制御ユニット206を起動する。スキップ制御ユニット206は、印刷データ生成ソフトウェア202の処理をスキップするスキップ処理を行うか否かの制御処理を行う。スキップ制御ユニット206は、中間データおよび印刷設定情報を取得することはできない。スキップ制御ユニット206のスキップ制御処理の後、OSは、描画アプリケーション201から出力された印刷指示に基づき中間データを生成し、中間データを印刷データ生成ソフトウェア202に渡す。ここで、スキップ制御ユニット206でスキップ処理が行われない場合、中間データは印刷データ生成ソフトウェア202で印刷装置102が解釈可能な印刷データへ処理され、印刷データ編集ユニット208へ渡される。一方、印刷データ生成ソフトウェア202のスキップ処理が行われる場合、中間データは印刷データ生成ソフトウェア202で処理されずに、印刷データ編集ユニット208に渡される。これにより、中間データを印刷データ編集ユニット208で処理することが可能となる。
印刷データ生成ソフトウェア202の処理をスキップした方が好ましい例として、拡大縮小処理を印刷データ編集ユニット208で行いたい場合が挙げられる。中間データはベクター形式でデータを保持可能である。ベクター形式のデータは、ラスター形式のデータに比べて拡大縮小時の劣化が少ない。そのため、印刷データ生成ソフトウェア202がラスター形式で画像を出力するような形態においては、印刷データ生成ソフトウェア202の処理をスキップし、中間データを印刷データ編集ユニット208で処理するのが一般的に好ましい。
印刷データ編集ユニット208は、印刷データ生成ソフトウェア202から渡される中間データまたは印刷データ生成ソフトウェア202により処理された印刷データの編集を行う。編集内容として、割り付け印刷を例にすると、印刷データ編集ユニット208は、OSから受け取った割り付け印刷の印刷設定情報に基づいて、中間データまたは印刷データのレイアウトを変更する。割り付け印刷は、例えばNページ分のデータを1ページに割り付けて印刷することであり、Nin1またはNアップなどと呼ばれる(Nはページ数を示す)。また、印刷データ編集ユニット208は、中間データまたは印刷データを、印刷データ生成ソフトウェア202やスキップ制御ユニット206から受信することに応じて、表示部119にUI画面を表示するUI表示機能を実行することが可能である。例えば印刷データ編集ユニット208は、このUI表示機能により、中間データまたは印刷データのレイアウト結果をプレビュー画面として表示することができる。なお、印刷データ編集ユニット208が印刷データを編集した後、印刷データは、OSを経由して印刷装置102へ渡される。印刷装置102は、受け付けた印刷データに基づき紙面への印刷を行う。なお、スキップ制御ユニット206で印刷データ生成ソフトウェア202がスキップされた場合、印刷データ編集ユニット208が、受け取った中間データを印刷装置102が解釈可能な印刷データへ変換してもよい。
また、拡張アプリケーション204は、印刷機能拡張ユニット207を有する。印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202またはOSが生成した印刷機能情報203(PDC)を編集することができる。つまり、印刷機能拡張ユニット207は、印刷機能情報203が変更不可能なファイルとして外部記憶装置114に配置されていても、その印刷機能情報203を変更することが可能である。このように、拡張アプリケーション204は、印刷機能情報203(PDC)の編集機能を有している。印刷機能拡張ユニット207は、拡張アプリケーション204が提供する機能の追加が可能である。また、印刷機能拡張ユニット207は、印刷装置102はサポートしているが印刷データ生成ソフトウェア202がサポートしていない機能の追加、および、印刷機能の設定値同士の排他関係の追加、等も行うことができる。
OSは、拡張アプリケーション204が印刷装置102と印刷データ生成ソフトウェア202とに最初に関連付けられた時に、印刷機能拡張ユニット207を起動する。さらに、OSは、OS起動時等、その他の任意のタイミングで印刷機能拡張ユニット207を起動してもよい。これにより、印刷装置102に後からオプション装置(例えば、フィニッシャー等)が追加され、印刷に関わる機能が拡張されるようなケースにおいて、印刷機能拡張ユニット207は、拡張機能を検知し、印刷機能情報203に追加することができる。
また、拡張アプリケーション204は、通知ユニット209を有する。通知ユニット209は、印刷装置102のエラー発生に呼応してユーザに対して通知を表示することが可能である。例えば、印刷装置102で用紙なしエラーが発生すると、そのエラーを印刷データ生成ソフトウェア202が検知する。すると、OSは、OSの機能であるトースト通知と呼ばれる通知機能を使って、メッセージを表示部119に表示させる。ユーザがこのトースト通知を押下することで、拡張アプリケーション204の通知ユニット209がOSにより呼び出され、通知ユニット209のUI画面が表示される。通知ユニット209のUI画面では、例えば用紙なしエラーの詳細メッセージまたは用紙充填方法などの表示を行うことができる。尚、押下とは、マウス等のクリック動作のほか、タッチパネルディスプレイにおけるタッチまたはタップ動作を含むものとする。
なお、本実施形態を実現するための拡張アプリケーション204の構成は、前述の機能(ユニット)を全て備えるものに限定されず、機能の一部のみを有するもの、または、他の機能を有するものでもよい。また、拡張アプリケーション204は、単に印刷ソフトウェアと呼ばれることもある。以上説明したように、拡張アプリケーション204は、以下の各機能のうちの少なくとも1つを備えている。各機能とは、印刷設定画面を表示する機能(印刷設定画面拡張ユニット205)、印刷データ生成ソフトウェア202の処理をスキップするか否かを制御する機能(スキップ制御ユニット206)である。また、印刷装置に入力される印刷データを編集する機能(印刷データ編集ユニット208)、印刷データ生成ソフトウェア202で指定可能な機能を拡張する機能(印刷機能拡張ユニット207)である。また、印刷装置102のエラー発生に呼応して画面を表示する機能(通知ユニット209)である。
<印刷システムの各パートで扱われるデータのフォーマット>
印刷データ生成ソフトウェア202は、印刷装置102から能力情報(PC)を取得し、印刷装置102がサポートしている印刷データの形式(フォーマット)を判定する。これにより、印刷データ生成ソフトウェア202は、印刷装置102の解釈可能な印刷データを生成することが可能となる。なお、以降で印刷データのフォーマットと記述している部分については、実際は印刷データに含まれる描画データのフォーマットのことを指すこともある。
図3は、本実施形態の印刷システムの各パートで扱われるデータのフォーマットを示した図である。図3(a)は、拡張アプリケーション204が関連付けられていない場合に印刷システムの各パートで扱われるデータフォーマットを示した図である。描画アプリケーション201からの印刷指示を受けると、OSは中間データであるXPSデータ302を生成する。前述したように、描画アプリケーション201からのデータがGDIデータである場合、OSはGDIデータを変換してXPSデータ302を生成する。描画アプリケーション201からのデータがXPSデータ302である場合、OSはXPSデータ302を印刷データ生成ソフトウェア202に渡す。
印刷データ生成ソフトウェア202は、XPSデータ302をプリンタが解釈可能な印刷データに変換する。印刷データ生成ソフトウェア202は、印刷装置102から取得した属性データから印刷装置102がサポートしている印刷データのフォーマットを判定し、処理対象の印刷装置102が解釈可能な印刷データを生成する。印刷データのフォーマットは、PDFまたはPWGRasterなどが考えられるが、これらに限定されるものではない。本実施形態では、印刷装置102がサポートする印刷データのフォーマットとして、PWGRasterが用いられているものとする。そのため、印刷データ生成ソフトウェア202は、XPSデータ302をPWGRasterデータ303に変換して、印刷装置102に送信する。印刷装置102は、受信したPWGRasterデータ303に基づき印刷を行う。
図3(b)は、拡張アプリケーション204が関連付けられており、且つ印刷データ生成ソフトウェア202による印刷データ生成処理をスキップするスキップ処理が行われない場合に扱われるデータのフォーマットを示した図である。描画アプリケーション201からの印刷指示を受けると、OSにより、拡張アプリケーション204のスキップ制御ユニット206が呼び出される。ただし、図3(b)では、スキップ制御ユニット206は印刷データ生成ソフトウェア202の処理をスキップするスキップ処理は行わない。これにより、図3(a)の場合と同様に、OSからXPSデータ302が印刷データ生成ソフトウェア202に渡される。印刷データ生成ソフトウェア202は、XPSデータ302を、PWGRasterデータ303に変換する。印刷データ編集ユニット208は、入力データとしてPWGRasterデータ303を受け取る。PWGRasterデータ303は、印刷装置102が解釈可能な印刷データである。従って、印刷データ編集ユニット208は、入力データであるPWGRasterデータ303を変換せずに印刷装置102に送る。印刷装置102は、受信したPWGRasterデータ303に基づき印刷を行う。
図3(c)は、拡張アプリケーション204が関連付けられており、且つ印刷データ生成ソフトウェア202による印刷データ生成処理をスキップするスキップ処理が行われた場合に扱われるデータのフォーマットを示した図である。描画アプリケーション201からの印刷指示を受けると、OSにより、拡張アプリケーション204のスキップ制御ユニット206が呼び出される。スキップ制御ユニット206は、OSまたは印刷データ生成ソフトウェア202に対して、中間データから印刷データへの変換処理を実行しないように指示を出すスキップ処理を行う。スキップ制御ユニット206がOSに対してスキップ指示を出す場合、OSは、印刷データ生成ソフトウェア202に対して、変換処理を実行しないように指示を出す。スキップ制御ユニット206から印刷データ生成ソフトウェア202がスキップ指示を受けると、印刷データ生成ソフトウェア202は、中間データを印刷データへ変換することなく、拡張アプリケーション204の印刷データ編集ユニット208に渡す。あるいは、OSが、印刷データ生成ソフトウェア202を経由せず、拡張アプリケーション204の印刷データ編集ユニット208に直接中間データを渡してもよい。印刷データ編集ユニット208は、印刷設定情報に基づき、XPSデータに対して必要な編集を行った上で、XPSデータをPWGRasterデータ303に変換して、印刷装置102に送信する。印刷装置102は、受信したデータに基づき印刷を行う。なお、印刷装置102が解釈可能な印刷データのフォーマットにXPSが含まれている場合、印刷データ編集ユニット208は、XPSデータを別のフォーマットに変換することなく、印刷装置102に送信して印刷を行うことも可能である。
<印刷機能拡張ユニットによる印刷機能情報の編集処理>
図4は、本印刷システムにおける印刷機能拡張ユニット207による印刷機能情報203の編集処理のうち主要な処理フローを示した図である。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
図4のフローは、拡張アプリケーション204が初めて関連付けられたタイミング等で、OSが印刷機能拡張ユニット207を起動することにより開始する。あるいはまた、図4の処理は、他の任意のタイミングで実行されてもよい。S401で、印刷機能拡張ユニット207は、印刷データ生成ソフトウェア202から印刷機能情報203(PDC)を取得し、S402へ進む。S402で、印刷機能拡張ユニット207は、取得したPDCに、割り付け機能に関する記述が含まれているか否かを判定する。
図5は、PDCの一例を示す図である。PDC501には、印刷装置102がサポートしている機能(Feature)の情報、および、ある機能における設定値(Option)の情報が含まれる。例えば、情報502は、PageMediaSize(用紙サイズ)として、ISOA4およびNorthAmericaLetterが設定可能であることを示す。情報503は、PageMediaType(用紙の種類)として、Plain(普通紙)、および、Photographic(写真用紙)が設定可能であることを示す。情報504は、PageOrientation(印刷の向き)として、Portlaite(縦)、および、Landscape(横)が設定可能であることを示す。図5のPDCには、割り付け機能が設定可能であることを示す情報は含まれていない。
図4に戻り、説明を続ける。取得したPDCに割り付け機能に関する記述が含まれていると判定した場合、印刷機能拡張ユニット207は、PDCの編集を行わず、本処理フローを抜ける。S402でPDCに割り付け機能に関する記述が含まれていないと判定した場合、印刷機能拡張ユニット207は、処理をS403に進める。S403で、印刷機能拡張ユニット207は、取得したPDCに対して割り付け機能に関わるFeature、およびOptionを記述し、本処理フローを抜ける。
ここで、本実施形態において印刷機能拡張ユニット207が、PDCに割り付け機能を追加する理由を説明する。印刷装置102が割り付け機能に対応している場合、そもそもPDCには割り付け機能の記述が含まれているので、割り付け機能を追加する必要がない(S402でYESと判定される)。本実施形態では、後述するように、印刷データ編集ユニット208における編集処理によって、画質の劣化を抑制した形態で割り付け処理が実行可能となる。このため、仮に印刷装置102が割り付け機能に対応していない場合であっても、拡張アプリケーション204によって割り付け機能が実行可能となる。そこで、割り付け機能が実行可能であることを定義付けするため、S402において、印刷装置102が割り付け機能に対応していない場合には、S403においてPDCに割り付け機能を追加する処理が行われる。
なお、本実施形態では拡張アプリケーション204が行う拡張機能として割り付け機能を例に説明しているが、これに限定されるものではない。例えば、描画データを任意倍率で拡大または縮小して印刷する拡大縮小機能、および、1ページの描画データを分割して、複数の紙面に印刷する分割機能なども、本実施形態で適用される拡張機能に該当する。即ち、S402では特定の機能として割り付け機能を例に挙げて説明しているが、この限りでない。特定の機能とは、ラスターデータでその機能を実行すると、ベクターデータでその機能を実行する場合に比べて印刷物の画質が低下するような機能のことである。具体的には、拡縮を伴うレイアウト処理のことであり、割り付け機能のほかに、上述したように、拡大縮小機能、1ページの描画データを分割する分割機能などがある。本実施形態では、このような特定の機能として、割り付け機能を例に挙げて説明をする。
図6は、図4のフローチャートで編集した結果、機能追加されたPDCの一例を示す図である。編集後のPDC601には、S403の処理によって割り付け機能を示す情報602が追加されている。情報602は、JobNUpAllDocumentsContiguously(割り付け設定)として、以下のいずれかの設定が可能であることを示す。即ち、None(割り付け機能を使用しない)、PagesPerSheet_4(2in1)、またはPagesPerSheet_4(4in1)が設定可能であることを示す。
図7は、図6のPDCに基づいて生成される能力情報(PC)の一例を示す図である。PCには、PDCと同様に、印刷データ生成ソフトウェア202で利用可能な機能(Feature)の情報、および、ある機能における設定値(Option)の情報が含まれる。PC701では、PDC601に記載された機能情報に基づき、用紙サイズ(PageMediaSize)、用紙の種類(PageMediaType)、および印刷の向き(PageOrientation)が設定可能であることが示されている。また、PC701では、拡張アプリケーション204によって追加された割り付け機能(JobNUpAllDocumentsContiguously)の設定が可能であることが示されている。印刷設定画面拡張ユニット205、または、独自の印刷設定画面を提供するアプリケーションは、PC701を参照することで、印刷設定画面を提供することができる。即ち、追加された割り付け機能の設定を含む印刷設定画面を提供することができる。
以上により、印刷機能情報203であるPDCを元に生成される能力情報であるPrintCapabilities(PC)、および、印刷設定を示すPrintTicket(PT)に、割り付け機能に関するFeatureとOptionとが追加される。
このように、印刷機能情報203(PDC)に追加した機能は、能力情報(PC)及び印刷設定情報(PT)に反映され、有効な設定として認識されることになる。尚、PDCに存在しない機能は無効な設定として判断される。例えばPDCに存在しない機能が印刷設定情報(PT)に含まれている場合、印刷設定情報(PT)の有効性検証(Validation)処理をした際に、設定が取り消されることがあり得る。このため、本実施形態では、図4のフローチャートにおいて、印刷設定で扱いたい割り付け機能を印刷機能情報203(PDC)に追加している。
<印刷設定画面拡張ユニットによる印刷設定画面表示処理>
印刷設定画面拡張ユニット205は、描画アプリケーション201上でユーザが印刷設定画面の表示を指示した場合に、OSを介して呼び出される。図8は、印刷設定画面拡張ユニット205による印刷設定画面表示処理の一例を示すフローチャートである。以降、印刷設定画面拡張ユニット205を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
まず、S801で、印刷設定画面拡張ユニット205は、印刷設定情報であるPrintTicket(PT)を取得する。尚、ここで取得するPTは、デフォルトの値である。次に、S802で、印刷設定画面拡張ユニット205は、能力情報であるPrintCapabilities(PC)を取得する。S803で、印刷設定画面拡張ユニット205は、S801で取得したPTと、S802で取得したPCとに基づき印刷設定画面を表示する。
図9は、印刷設定画面拡張ユニット205により表示される印刷設定画面の一例を示す図である。図9(a)は、スキップ設定がONに設定されている場合の印刷設定画面の一例を示す図である。印刷設定画面拡張ユニット205が表示する印刷設定画面900は、前述のPCに基づき、印刷データ生成ソフトウェア202で設定可能な印刷機能を指定可能な画面である。コントロールアイテム901からコントロールアイテム904は、ユーザが各印刷機能の設定を行うためのコントロールアイテムである。コントロールアイテム901は、印刷に使用する用紙の種類を設定可能なコントロールアイテムであり、例えば普通紙または写真用紙といった項目を設定可能である。コントロールアイテム902は、印刷に使用する用紙サイズを設定可能なコントロールアイテムであり、例えば、A4またはLetterといった項目を設定可能である。コントロールアイテム903は、印刷の向きを設定可能なコントロールアイテムであり、縦または横の設定が可能である。コントロールアイテム904は、割り付け機能を設定可能なコントロールアイテムであり、オフまたは2in1といった項目を設定可能である。このコントロールアイテム904は、印刷機能拡張ユニット207が割り付け機能に関する情報をPDCに追加し、そのPDCに基づき生成されるPCによって表示されるコントロールアイテムである。
コントロールアイテム905は、拡張機能を利用するかを切り替えるコントロールアイテムである。即ち、コントロールアイテム905は、印刷データ生成ソフトウェア202による中間データから印刷データへの変換処理をスキップするか否かを設定可能なコントロールアイテムであり、オン(ON)とオフ(OFF)とを切り替えることができる。コントロールアイテム905は、ユーザにより切り替え可能な項目であり、初期画面では、S901で取得したPTのデフォルト値に従った値が設定されている。本実施形態では、コントロールアイテム905のスキップ設定がオンになっている状態(即ち、拡張機能を利用することが設定されている状態)が、デフォルト値になっている。印刷設定画面拡張ユニット205は、コントロールアイテム905の設定に従い、共有情報210にスキップ設定を示す設定値を格納する。コントロールアイテム906は、OKボタンであり、設定を反映して画面が閉じられる。
図8に戻り、説明を続ける。S804で、印刷設定画面拡張ユニット205は、共有情報210からスキップ設定を取得する。スキップ設定については図10を用いて後述するが、印刷データ生成ソフトウェア202の処理をスキップする場合はスキップ設定の設定値がONで格納され、スキップしない場合はスキップ設定の設定値がOFFで格納されている。次に、S805で、印刷設定画面拡張ユニット205は、S804で取得したスキップ設定がONか否かを判定する。スキップ設定がONであると判定した場合、S807に処理が進み、スキップ設定がOFFであると判定した場合、S806に処理が進む。本実施形態では、割り付け機能は、印刷データ生成ソフトウェア202の処理をスキップした場合に利用可能とする。そのため、S805でスキップ設定がOFFであると判定された場合、S806において、印刷設定画面拡張ユニット205は、割り付け機能を設定するコントロールアイテム904を無効化し、割り付け機能の設定をオフにする。
図9(b)は、スキップ設定がOFFに設定された場合の印刷設定画面を示す図である。スキップ設定がOFFの場合、S806において、印刷設定画面拡張ユニット205は、割り付け機能を設定するコントロールアイテム904を無効化する。これにより、ユーザは割り付け機能を設定できなくなり、常に割り付け機能の設定がOFFとなる。
尚、スキップ設定がOFFの場合に無効化される対象となるコントロールアイテムは、次のように決定される。第一の決定方法は、無効化対象のコントロールアイテムのリストに基づく決定方法である。印刷設定画面拡張ユニット205は、印刷機能拡張ユニット207が追加する機能のうち、スキップしない場合に無効化すべき機能のリストを静的に保持することができる。そして、印刷設定画面拡張ユニット205は、そのリストに基づいて無効化対象のコントロールアイテムを決定する。第二の決定方法は、印刷機能拡張ユニット207が、自身が機能追加したか否かの情報を印刷設定画面拡張ユニット205と共有する方法である。印刷設定画面拡張ユニット205は、印刷機能拡張ユニット207からの情報に基づいて無効化対象のコントロールアイテムを決定する。本実施形態では、いずれかの方法により、無効化対象のコントロールアイテムが、割り付け機能を設定するコントロールアイテム904であると印刷設定画面拡張ユニット205で判定され、無効化処理が行われている。
なお、本実施形態ではスキップ設定がONの場合のみ、割り付け設定を可能としているが、これに限定されるものではない。印刷データ生成ソフトウェア202が割り付け機能に対応している場合、スキップ設定がOFFであっても割り付け機能の設定が可能とすることが好ましい。なお、この場合、割り付け処理は、拡張アプリケーション204ではなく、印刷データ生成ソフトウェア202が実施することになる。印刷データ生成ソフトウェア202が割り付け機能をサポートしているか否かの判定は、次のように行えばよい。例えば拡張アプリケーション204が最初に図4のフローを実行したときに、S402でPDCに割り付け機能が含まれていると判定された場合に、印刷データ生成ソフトウェア202が割り付け機能をサポートしていると判定すればよい。印刷データ生成ソフトウェア202が割り付けに対応している場合、コントロールアイテム904を無効化しなくてよいので、印刷設定画面900を用いて割り付け機能を設定することができるように構成されてもよい。S806の後、S807に処理が進む。
S807からS813は、印刷設定画面に対してユーザが行った操作に対する処理である。S807で、印刷設定画面拡張ユニット205は、ユーザがコントロールアイテム905を通してスキップ設定を変更したかを判定する。S807でスキップ設定が変更されたと判定した場合、印刷設定画面拡張ユニット205は、処理をS808に進める。S807でスキップ設定が変更されていないと判定した場合、印刷設定画面拡張ユニット205は、処理をS811に進める。
S808で、印刷設定画面拡張ユニット205は、スキップ設定がONに変更されたかを判定する。S808でスキップ設定がONに変更されたと判定した場合、印刷設定画面拡張ユニット205は処理をS809に進め、共有情報210のスキップ設定の設定値をONで格納する。また、S809では、無効化されている割り付け機能を有効化する処理が行われる。その後、S811に進む。S808でスキップ設定がONに変更されていないと判定した場合、印刷設定画面拡張ユニット205は処理をS810に進め、共有情報210にスキップ設定の設定値をOFFで格納する。その後、S811に進む。
図10は、印刷データ生成ソフトウェア202の処理をスキップするか否かを判定する際に用いられる、共有情報210に格納されているスキップ設定の設定値の一例を示す図である。拡張アプリケーション204は、印刷データ生成ソフトウェア202と関連付けられて動作するが、より具体的には、印刷装置毎に生成される印刷キューと関連付けられる。印刷キューは、印刷データが投入されるためのキューである。印刷キューは、接続された印刷装置毎に生成される。また、同一の印刷装置であっても、USB接続またはネットワーク接続といったように、異なる方法で接続された場合、それぞれ別の印刷キューが生成される。拡張アプリケーション204は、印刷キューごとに設定を持つことが望ましい。このため、スキップ設定(SkipSetting)は、設定が行われた印刷キューを特定する情報と関連付けられて保存される。本実施形態では、印刷キューを特定する情報として、印刷キューの名称(QueueName)を用いているが、これに限定されるものではなく、印刷キューを一意に特定するIDなどを使ってもよい。
情報1001は、PrinterAという名称の印刷キューへの印刷の場合、スキップ制御ユニット206がスキップ処理を行うこと(スキップ設定の設定値がON)を示す情報である。情報1002は、PrinterBという名称の印刷キューへの印刷の場合、スキップ制御ユニット206がスキップ処理を行わないこと(スキップ設定の設定値がOFF)を示す情報である。スキップ設定の設定値の変更は、コントロールアイテム905を通して行われる。
図8に戻り、説明を続ける。S811で、印刷設定画面拡張ユニット205は、ユーザがコントロールアイテム901から904を通して印刷設定を変更したか否かを判定する。S811で印刷設定を変更したと判定した場合、印刷設定画面拡張ユニット205は処理をS812に進め、ユーザが行った印刷設定の変更をPTなどの印刷設定情報に反映する。その後、S813に処理を進める。一方、S811で印刷設定を変更していないと判定した場合、印刷設定画面拡張ユニット205は処理をS813に進める。
S813で、印刷設定画面拡張ユニット205は、OKボタン906が押下されたかを判定する。S813でOKボタン906が押下されたと判定した場合、印刷設定画面900が閉じられ、押下時点のPTが、ユーザが指定した印刷設定として描画アプリケーション201またはOSに返却される。描画アプリケーション201またはOSは、返却されたPTを利用して、その設定に応じた印刷ジョブを生成する。S813でOKボタン906が押下されていないと判定した場合、印刷設定画面拡張ユニット205は処理をS804に進める。OKボタン906が押下されるまで、S804からS813の処理が繰り返される。
<スキップ制御ユニットによるスキップ処理>
図11は、スキップ制御ユニット206によるスキップ処理の一例を示すフローチャートである。以降、スキップ制御ユニット206を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
図11のフローは、描画アプリケーション201から印刷指示が発行されたタイミングで実行される。即ち、描画アプリケーション201から印刷指示が発行されたことに応じてOSによってスキップ制御ユニットが起動されることで実行される。
まず、S1101で、スキップ制御ユニット206は、共有情報210からスキップ設定を取得する。次に、S1102で、スキップ制御ユニット206は、スキップ設定が取得できたか否か、即ち、スキップ設定が存在するか否かを判定する。スキップ設定が存在しないと判定した場合、スキップ制御ユニット206は、スキップ処理を行わず、本処理フローを抜ける。S1102でスキップ設定が存在すると判定した場合、スキップ制御ユニット206は、処理をS1103に進める。S1103で、スキップ制御ユニット206は、取得したスキップ設定がONか否かを判定する。S1103でスキップ設定がOFFであると判定した場合、スキップ制御ユニット206はスキップ処理を行わず、本処理フローを抜ける。S1103でスキップ設定がONであると判定した場合、スキップ制御ユニット206は、処理をS1104に進める。S1104で、スキップ制御ユニット206は、印刷データ生成ソフトウェア202の処理をスキップするスキップ処理を行う指示を出力する。これによって、印刷データ生成ソフトウェア202において、中間データから印刷データへの変換処理が行われず、印刷データ編集ユニット208で扱われる入力データを中間データとすることができる。
なお、図11ではスキップ設定が格納されていない場合のデフォルト動作を、スキップ処理をしないものとしているが、デフォルト動作を、スキップ処理をするものとしてもよい。以上の処理により、共有情報210のスキップ設定に基づき、印刷データ生成ソフトウェア202の処理をスキップするか否かが切り替えられる。
<印刷データ編集ユニット処理>
図12は、印刷データ編集ユニット208による印刷データ編集処理の一例を示すフローチャートである。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
図12のフローは、印刷データ生成ソフトウェア202からの出力データが処理可能になったタイミングで実行される。まず、S1201で、印刷データ編集ユニット208は、入力データのデータフォーマットを取得する。次に、S1202で、印刷データ編集ユニット208は、取得した入力データフォーマットがXPSデータであるか否かを判定する。S1202で、入力データフォーマットがXPSデータでないと判定した場合、印刷データ編集ユニット208は、処理をS1207に進める。入力データがXPSデータでない場合、S1104のスキップ指示が行われておらず、入力データは印刷データ生成ソフトウェア202によってプリンタが解釈可能な印刷データに変換されている。そのため、S1207で、印刷データ編集ユニット208は、取得した入力データである印刷データをプリンタに送信して、本処理フローを抜ける。
一方、S1202で入力データのフォーマットがXPSデータであると判定した場合、印刷データ編集ユニット208は、処理をS1203に進める。S1203で、印刷データ編集ユニット208は、印刷設定情報であるPTを取得する。次に、S1204で、印刷データ編集ユニット208は、S1203で取得したPTの割り付け設定を確認し、割り付け設定がOFFか否かを判定する。S1204で割り付け設定がOFFであると判定した場合、XPSデータを編集する必要がないので、印刷データ編集ユニット208は、処理をS1206に進める。一方、S1204で割り付け設定がONであると判定した場合、印刷データ編集ユニット208は、処理をS1205に進める。S1205で、印刷データ編集ユニット208は、割り付け設定に従い、入力データであるXPSデータを編集して割り付け処理を行う。そして、S1206に処理を進める。
なお、印刷データ生成ソフトウェア202が割り付け機能をサポートしている構成においては、中間データは、既に割り付け処理が行われたものになる。このため、S1204およびS1205の処理は行う必要がない。なお、印刷データ生成ソフトウェア202が割り付け機能をサポートしているかは、印刷データ編集ユニット208が、図4のS402でPDCに割り付け機能が含まれていると判定した結果を印刷機能拡張ユニット207と共有することにより行われる。
図13は、S1205の割り付け処理の一例を示す図である。図13では割り付け設定として、2つのページを1つのページに配置する2in1が設定されているものとする。また、印刷データ編集ユニット208の入力データであるXPSデータ1301は、2つのページデータ1302、1303を有するものとする。印刷データ編集ユニット208は、S1205の処理によって、2つのページデータ1302、1303を1つのページに配置したページデータ1305を有するXPSデータ1304を生成する。
図12に戻り、説明を続ける。S1206で、印刷データ編集ユニット208は、XPSデータを印刷装置102が解釈可能な印刷データに変換する。なお、印刷装置102がXPSデータを解釈可能な場合は、印刷データ編集ユニット208は、S1206の処理を行わなくてもよい。次に、S1207で、印刷データ編集ユニット208は、印刷データをプリンタに送信して、本処理フローを終了する。
以上説明したように、本実施形態によれば、拡張アプリケーション204は、より良い機能を提供することができる。本実施形態における印刷システムでは、スキップ制御ユニット206が印刷設定情報(PT)にアクセスできない場合であっても、印刷データ生成ソフトウェア202の処理をスキップするか否かを切り替えることができる。割り付け機能のように中間データを扱う必要がある機能を利用する場合には、印刷データ生成ソフトウェア202の処理をスキップするように指示することで、印刷データ編集ユニット208で中間データを扱うことが可能となる。結果として、割り付け機能のような拡大縮小を伴う編集を、画質劣化を生じさせることなく行うことができる。
また、中間データを扱う必要がある機能を利用しない場合は、ユーザがスキップ設定をOFFにすることで、印刷データ生成ソフトウェア202による印刷データ生成処理が行われ、拡張アプリケーション204の処理負荷を軽減することができる。また、スキップ設定の切り替えによって、印刷データ生成を印刷データ生成ソフトウェア202で行うか、拡張アプリケーション204で行うかを切り替えることが可能となる。このため、一方の変換処理が正常に動作しない場合の回避策として利用することも可能である。また、スキップ設定がオフの場合に割り付け設定を無効化することで、品質の悪い印刷結果が生じることを抑制することができる。
なお、本実施形態では、ユーザは印刷設定画面900を用いてスキップ設定の切り替えを行う例を示したが、別の設定画面を用いて設定を行ってもよい。
このように、本実施形態によれば、拡張アプリケーション204がベクター形式の中間データを処理することができるので、拡張アプリケーション204は、拡張アプリケーション204が行う処理に適したフォーマットのデータを扱うことが可能になる。このため、拡張アプリケーション204は、画像劣化を抑制しつつ、画像の拡縮を伴うレイアウト処理である特定の機能の処理を行うことができる。
<<第2実施形態>>
第1実施形態では、印刷設定画面900を用いてユーザが行う設定に応じて共有情報210にスキップ設定の設定値を格納する例を説明した。そして、スキップ制御ユニット206は、共有情報210に格納されたスキップ設定の設定値に基づき印刷データ生成ソフトウェア202の処理をスキップするか否かを切り替える例を説明した。ここで、印刷データ生成ソフトウェア202の処理をスキップする必要があるか否かは、印刷データ編集ユニット208で行う処理と、その処理に適したデータフォーマットとに応じて決定することができるとも考えられる。
拡張アプリケーション204は、複数種類の印刷装置102に関連付けられて動作することが可能なアプリケーションである。従って、拡張アプリケーション204は、異なる印刷データのフォーマットをサポートしている複数種類の印刷装置102と関連付けられて動作することも考えられる。そして、印刷データ生成ソフトウェア202が出力する印刷データのフォーマットは、関連付けられた印刷装置102がサポートする印刷データのフォーマットによって異なる。例えば、印刷装置102がサポートする印刷データのフォーマットが、ラスターデータであるPWGRasterの場合、印刷データ生成ソフトウェア202は、ラスターデータであるPWGRasterのフォーマットで印刷データを出力する。印刷装置102がサポートする印刷データのフォーマットが、ベクターデータであるPDFの場合、印刷データ生成ソフトウェア202は、PDFのフォーマットで印刷データを出力する。
ここで、例えば、割り付け処理を印刷データ編集ユニット208で実施する場合、入力データがPWGRasterの場合は、データの拡縮を伴うレイアウト処理による画質の劣化が大きい。一方、ベクターデータであるPDFであれば、拡縮を伴うレイアウト処理による画質の劣化は小さい。従って、印刷装置102がサポートする印刷データのデータフォーマットに応じて、印刷データ生成ソフトウェア202の処理をスキップする必要があるか否かが変わるといえる。
そこで、第2実施形態では、拡張アプリケーション204が関連付けられている印刷装置102がサポートする印刷データのフォーマットによって、スキップ制御ユニット206がスキップ処理を行うか否かを切り替える例を説明する。尚、基本的なハードウェア構成およびソフトウェア構成は、第1実施形態で説明した例と同様であるので、説明を省略する。
<印刷機能拡張ユニットの処理フロー>
図14は、本実施形態における印刷機能拡張ユニット207の印刷機能情報の編集処理の一例を示すフローチャートである。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
S1401からS1403の処理は、図4のS401からS403と同じであるため、説明を省略する。S1404で、印刷機能拡張ユニット207は、印刷装置102がサポートしている印刷データのフォーマットを取得する。印刷装置102がサポートしているフォーマットの取得方法としては、印刷装置102に対して、Get-Printer-Attirbutesオペレーションを送信し、そのレスポンスとして情報を取得する方法が挙げられる。しかしながら、他の方法でフォーマットを取得してもよい。
次に、S1405で、印刷機能拡張ユニット207は、印刷装置102が印刷データのフォーマットとしてPDFをサポートしているか否かを判定する。S1405でPDFをサポートしていないと判定した場合、印刷機能拡張ユニット207は、処理をS1406に進める。S1406で、印刷機能拡張ユニット207は、共有情報210に対してスキップ設定の設定値をONで格納し、本処理フローを終了する。つまり、印刷装置102がPDFをサポートしていない場合、印刷データ生成ソフトウェア202では、PDFのフォーマットで印刷データが出力されない。この場合、例えば、印刷データ生成ソフトウェア202では、ラスターデータであるPWGRasterのフォーマットで印刷データが出力される。ラスターデータは、拡縮を伴うレイアウト処理により、画質が劣化する虞がある。このため、印刷機能拡張ユニット207は、印刷装置102がPDFをサポートしていない場合、スキップ設定の設定値をONで格納し、印刷データ生成ソフトウェア202の処理をスキップさせる設定をする。
一方、S1405でPDFをサポートしていると判定した場合、印刷機能拡張ユニット207は、処理をS1407に進める。S1407で、印刷機能拡張ユニット207は、共有情報210に対してスキップ設定の設定値をOFFで格納し、本フローを終了する。つまり、印刷装置102がPDFをサポートしている場合、印刷データ生成ソフトウェア202では、ベクターデータであるPDFのフォーマットで印刷データが出力される。ベクターデータは、拡縮を伴うレイアウト処理を行っても、ラスターデータを処理する場合に比べて、画質が劣化しない。このため、印刷機能拡張ユニット207は、印刷装置102がPDFをサポートしている場合、印刷データ生成ソフトウェア202の処理をスキップさせる必要がないので、スキップ設定の設定値をOFFで格納する。
第1実施形態では、印刷機能拡張ユニット207が割り付け機能を追加した場合、共有情報210に格納されるスキップ設定の設定値をONまたはOFFで格納していなかった。一方、本実施形態では、印刷装置102がサポートしているフォーマットに応じて、印刷機能拡張ユニット207が機能追加した際に、スキップ設定も共有情報210に格納されることになる。
<印刷設定画面拡張ユニットの処理フロー>
図15は、本実施形態における印刷設定画面拡張ユニット205の印刷設定画面表示処理の一例を示すフローチャートである。以降、印刷設定画面拡張ユニット205を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
S1501からS1505の処理は、S801からS805と同じであるため、説明を省略する。S1505でNoと判定した場合、即ち、スキップ設定がOFFであると判定した場合、S1506に処理が進む。S1506において印刷設定画面拡張ユニット205は、拡張アプリケーション204が関連付けられている印刷装置102がサポートしている印刷データのフォーマットを取得する。次に、S1507で、印刷機能拡張ユニット207は、印刷装置102が印刷データのフォーマットとしてPDFをサポートしているか否かを判定する。本実施形態ではPDFデータに対する割り付け処理は可能であるとするため、S1507でPDFをサポートしていると判定した場合、処理をS1509に進め、割り付け設定を行うコントロールアイテムを無効化しない。即ち、スキップ設定がOFFであったとしても、印刷装置102がPDFをサポートしている場合、割り付け設定を行うコントロールアイテムを無効化しない。一方で、S1507でPDFをサポートしていないと判定した場合、S1508で、印刷機能拡張ユニット207は、割り付け設定を行うコントロールアイテムを無効化する。
S1509からS1515の処理は、S807からS813と同じであるため、説明を省略する。なお、印刷データ生成ソフトウェア202が割り付け機能をサポートしている場合は、第1実施形態で説明した例と同様に、印刷設定画面900を通して割り付け機能を設定できるように構成してもよい。即ち、S1505でスキップ設定がOFFであり、かつ、S1507で印刷装置102がPDFをサポートしていない場合であっても、S1508の処理を行わなくてよい。
<印刷データ編集ユニットの処理フロー>
図16は、第2実施形態における印刷データ編集ユニット208の印刷機能情報の編集処理の一例を示すフローチャートである。以降、印刷データ編集ユニット208を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
S1601からS1607の処理は、S1201からS1207と同じであるため、説明を省略する。S1602でNoと判定された場合、即ち、入力データのフォーマットがXPSデータでない場合、印刷データ編集ユニット208は処理をS1608に進める。S1608で、印刷データ編集ユニット208は、入力データのフォーマットがPDFか否かを判定する。S1608で入力データのフォーマットがPDFであると判定した場合、印刷データ編集ユニット208は処理をS1609に進める。S1609で、印刷データ編集ユニット208は、印刷設定情報であるPrintTicket(PT)を取得する。次に、S1610で、印刷データ編集ユニット208は、S1609で取得したPrintTicketの割り付け設定を確認し、割り付け設定がOFFか否かを判定する。S1610で割り付け設定がOFFであると判定した場合、PDFデータを編集する必要がないので、印刷データ編集ユニット208は、処理をS1611に進める。
S1610で割り付け設定がONであると判定した場合、印刷データ編集ユニット208は、処理をS1607に進める。S1610で、印刷データ編集ユニット208は、割り付け設定に従い、入力データであるPDFデータを編集する。その後、S1607の印刷データの送信処理に進む。なお、本例においてPDFデータは、印刷装置102のサポートする印刷データのフォーマットである。このため、S1606(S1206)のような印刷データへの変換処理は不要である。
S1608で入力データのフォーマットがPDFでないと判定した場合、印刷データ編集ユニット208は、S1607に進み、入力データをそのまま印刷データとして印刷装置102に送信して、処理を終了する。なお、印刷データ生成ソフトウェア202が割り付け機能をサポートしている構成においては、第1実施形態で説明したように、中間データは既に割り付け処理が行われたものになる。従って、印刷データ生成ソフトウェア202が割り付け機能をサポートしている場合、S1604、S1605、およびS1610、S1611の処理を行う必要がない。
以上のように、本実施形態における印刷システムでは、印刷装置がサポートしている印刷データのフォーマットに基づき、印刷データ生成ソフトウェア202の処理をスキップするか否かを切り替える。これにより、印刷データ編集ユニット208の入力データを、処理に適したものになるよう制御することができる。なお、本実施形態においても、印刷設定画面900を通したスキップ設定の変更を可能としているが、ユーザによるスキップ設定の変更をできないようにしてもよい。本実施形態では、印刷装置102がサポートする印刷データのフォーマットに応じて、印刷データ生成ソフトウェア202の処理をスキップする必要があるか否かを決定することができるからである。
<<第3実施形態>>
前述したように、印刷データ生成ソフトウェア202の処理をスキップする必要があるか否かは、印刷データ編集ユニット208で行う処理と、その処理に適したデータフォーマットと、に応じて決定することができる。第2実施形態では、データフォーマットに着目し、拡張アプリケーション204は、関連付けられた印刷装置102がサポートする印刷データのフォーマットに応じて印刷データ生成ソフトウェア202の処理をスキップするか否かを切り替える例を説明した。
本実施形態では、印刷データ編集ユニット208で行う処理に着目する。例えば、割り付け機能のような拡縮を伴うレイアウト処理を印刷データ編集ユニット208で行わない場合、印刷データ生成ソフトウェア202の処理をスキップしなくてよい。
例えば、割り付け機能は、印刷装置102でも行うことが可能である。その場合、印刷データ生成ソフトウェア202は、印刷装置102から取得した能力情報(PC)に基づき、印刷機能情報203(PDC)に割り付け機能を追加する。そして、印刷データ生成ソフトウェア202または拡張アプリケーション204が、割り付け設定をPTに含めて印刷装置102に通知することで、印刷装置102で割り付け処理が行われる。あるいは、印刷データ生成ソフトウェア202が割り付け機能に対応した場合、印刷データ生成ソフトウェア202の出力データは割り付け設定が反映されたものになる。これらのケースにおいては、拡張アプリケーション204は印刷機能情報203に割り付け機能を追加する必要がなく、印刷データ生成ソフトウェア202の処理をスキップする必要もない。
そこで、本実施形態では、拡張アプリケーション204が、ベクターデータの編集が必要な機能の追加を行うか否かに応じて、スキップ設定を格納する例を説明する。
<印刷機能拡張ユニットの処理フロー>
図17は、第3実施形態における印刷機能拡張ユニット207の印刷設定画面表示処理の一例を示すフローチャートである。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。図17の処理は、OSが、拡張アプリケーション204が初めて関連付けられたタイミング等で、印刷機能拡張ユニット207を起動することにより開始する。また、印刷装置102の構成が変わったタイミングで実行されてもよい。
S1701からS1702の処理は、図4のS401からS402と同じであるため、説明を省略する。S1702で、PDCに割り付け機能が含まれていないと判定された場合、印刷機能拡張ユニット207は処理をS1703に進める。S1703で、印刷機能拡張ユニット207は、共有情報210にスキップ設定の設定値をONで格納する。S1703の処理の次に、S1704で、印刷機能拡張ユニット207は、PDCに対して割り付け機能に関わるFeature、およびOptionを記述し、本処理フローを抜ける。即ち、PDCに割り付け機能が含まれていない場合、割り付け機能は、第1実施形態などで説明したように、印刷データ編集ユニット208が担う処理となる。このため、スキップ設定の設定値をONにして、印刷データ生成ソフトウェア202の処理をスキップさせる設定にする。
一方、S1702で、PDCに割り付け機能が含まれていると判定された場合、印刷機能拡張ユニット207は処理をS1705に進める。S1705で、印刷機能拡張ユニット207は、共有情報210にスキップ設定の設定値をOFFで格納し、本処理フローを抜ける。即ち、PDCに割り付け機能が含まれている場合、印刷装置102にて割り付け処理が実行されるので、印刷データ編集ユニット208で割り付け処理を行わなくてよい。そのため、印刷データ生成ソフトウェア202の処理をスキップする必要もない。よって、スキップ設定の設定値をOFFにする。
以上のように、本実施形態における印刷システムでは、拡張アプリケーションが追加する機能に応じて印刷データ生成ソフトウェア202の処理をスキップするか否かを切り替える。これにより、印刷データ編集ユニット208が行う処理に応じて、印刷データ編集ユニット208の入力データが適したフォーマットになるように制御することができる。なお、S1702で印刷データ生成ソフトウェア202が割り付け機能をサポートしているか否かを判定してもよい。そして、印刷データ生成ソフトウェア202が割り付け機能をサポートしている場合は、PDCに割り付け機能が含まれておらずスキップ設定の設定値がOFFであっても印刷設定画面900を通して割り付け機能を設定できるように構成してもよい。
なお、第2実施形態および第3実施形態では、印刷装置102がサポートしている印刷データのフォーマットおよび拡張アプリケーション204による追加機能に応じて、スキップ設定を切り替えたが、他の要素によって切り替えてもよい。例えば、拡張アプリケーション204が関連付けられる印刷データ生成ソフトウェア202が複数存在する場合、その種別に応じて、対応している機能、および、出力する印刷データのフォーマットが異なることが考えられる。そのような場合、関連付けられた印刷データ生成ソフトウェア202の種別に応じて、拡張アプリケーション204は、スキップ設定を切り替えてもよい。印刷データ生成ソフトウェア202の種別としては、ホストコンピュータに接続された印刷装置に印刷を行うローカル印刷用途のものが考えられる。また、印刷ジョブをクラウドに送信し、印刷装置がクラウドからジョブを取得して印刷を行うクラウド印刷用途のものが考えらえる。クラウド印刷では、クラウド側に割り付け機能などの印刷データの処理を行う拡張をすることが考えられる。クラウド側で処理が行われる機能については、拡張アプリケーション204で処理を行う必要がないため、クラウド印刷用途の印刷データ生成ソフトウェア202と関連付けられた際にはスキップ設定をOFFにすることが考えられる。
本実施形態は、第1実施形態との相違部分を中心に説明したが、第2実施形態と組み合わせた処理を行ってもよい。つまり、第2実施形態の図14のS1402とS1403の処理を本実施形態のS1702~S1704に置き換えてもよい。
<<第4実施形態>>
第1実施形態では、印刷設定画面拡張ユニット205は、スキップ設定がOFFの場合に割り付け設定のコントロールアイテムを無効化することで、ユーザが利用できない機能をユーザが設定できないように構成する例を説明した。ここで、描画アプリケーション201の種類によっては、拡張アプリケーション204の印刷設定画面拡張ユニット205を起動せず、PCを参照して独自の印刷設定画面を提供するアプリケーションがある。このような描画アプリケーション201では、印刷設定画面拡張ユニット205が提供する印刷設定画面を用いずに印刷設定が行われるので、スキップ設定がOFFの場合であっても割り付け機能が設定できてしまう。つまり、PDCでは、割り付け機能が有効になっているため、PDCに基づくPCを参照することで割り付け機能が設定できてしまう。従って、利用できない項目がPCに含まれないようにするために、スキップ設定がOFFの場合には、割り付け機能に関する記述を印刷機能情報203(PDC)から削除することが求められる。
そこで、本実施形態では、印刷機能拡張ユニット207は、スキップ設定に応じてPDCの機能の追加処理に加えて、機能の削除処理も行う例を説明する。
<印刷機能拡張ユニットの処理フロー>
図18は、第4実施形態における印刷機能拡張ユニット207の印刷機能情報の編集処理の一例を示すフローチャートである。以降、印刷機能拡張ユニット207を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。図18の処理は、図4と同じタイミングで実施されてもよいし、他のタイミングで実施されてもよい。即ち、図18の処理は、拡張アプリケーション204が初めて関連付けられたタイミング等で、印刷機能拡張ユニット207を起動した場合に実施されてもよい。また、印刷装置102の構成が変わった場合、印刷設定の取得指示もしくは印刷指示があった場合、または、ユーザによる任意のタイミングの指示により実施されてよい。
まずS1801で、印刷機能拡張ユニット207は、PDCを取得する。次に、S1802で、印刷機能拡張ユニット207は、スキップ設定を取得する。なお、初回起動時などで共有情報210にスキップ設定が格納されていない場合には、デフォルトで設定されているONまたはOFFの設定値を代わりに取得するものとする。
次に、S1803で、印刷機能拡張ユニット207は、スキップ設定の設定値がONか否かを判定する。S1803でスキップ設定の設定値がONであると判定された場合、印刷機能拡張ユニット207は処理をS1804に進める。S1804で、印刷機能拡張ユニット207は、取得したPDCに割り付け機能が含まれるか否かを判定する。S1804でPDCに割り付け機能が含まれていると判定した場合、印刷機能拡張ユニット207は、PDCを編集することなく本処理フローを抜ける。S1804でPDCに割り付け機能が含まれていないと判定された場合、S1805に進み、取得したPDCに対して割り付け機能に関わるFeatureおよびOptionを記述し、本処理フローを抜ける。
一方、S1803でスキップ設定の設定値がOFFであると判定された場合、印刷機能拡張ユニット207は、処理をS1806に進める。S1806で、印刷機能拡張ユニット207は、取得したPDCに割り付け機能が含まれるか否かを判定する。S1806でPDCに割り付け機能が含まれると判定した場合、S1807に進み、取得したPDCから割り付け機能に関わるFeatureおよびOptionの記述を削除し、本処理フローを抜ける。スキップ設定の設定値がOFFであり、かつPDCに割り付け機能が含まれる場合、印刷設定画面拡張ユニット205を起動せず、PCを参照して独自の印刷設定画面を提供する描画アプリケーション201では、割り付け設定が行われてしまうからである。これを避けるため、S1807では、PDCから割り付け機能に関する記述が削除される。
なお、本処理フローでは、スキップ設定の設定値がOFFの場合には一律でPDCから割り付け機能の削除を行う例を示しているが、割り付け機能が予め印刷データ生成ソフトウェア202に備わっている場合には、割り付け機能の記述を削除する必要がない。そのため、S1807における削除対象を、拡張アプリケーション204が追加した割り付け機能に限定してもよい。S1806でPDCに割り付け機能が含まれていないと判定した場合、印刷機能拡張ユニット207は、PDCを編集することなく本処理フローを抜ける。
以上説明したように、本実施形態では、拡張アプリケーション204は、印刷データ生成ソフトウェア202の処理をスキップしない場合に、スキップを前提にしている機能をPDCから削除する。これにより、PCにも該当機能が記載されなくなるので、PCに基づき独自で印刷設定画面を提供するアプリケーションにおいて、使用できない機能が設定されることを抑制することができる。スキップ設定の設定値をONにした場合、該当機能が再度利用可能になる。
本実施形態では、第1実施形態との相違点を中心に説明したが、第2実施形態または第3実施形態と組み合わせた形態としてもよい。
<<第5実施形態>>
第1実施形態では、拡張アプリケーション204は、印刷設定画面拡張ユニット205が表示する印刷設定画面900を通してスキップ設定を行う例を説明した。印刷設定画面900は、描画アプリケーション201が印刷指示を行う際に、印刷設定を行うために起動される。一方で、スキップ設定は共有情報210に格納され、スキップ制御ユニット206が処理を行う時点で共有情報210に格納されているスキップ設定の設定値に従いS1104のスキップ処理が行われる。このため、ジョブ単位でスキップ設定を管理することができない。例えば、描画アプリケーションAと描画アプリケーションBとからそれぞれ印刷が行われる場合を想定する。この場合、描画アプリケーションAが呼び出した印刷設定画面900で行われたスキップ設定が、描画アプリケーションBからの印刷指示で発生した印刷ジョブの処理にも影響を与え得る。
そこで、本実施形態では、印刷設定画面拡張ユニット205の呼び出し元によってスキップ設定を行わせるか否かを切り替える例を説明する。
<印刷設定画面拡張ユニットの処理フロー>
図19は、本実施形態における印刷設定画面拡張ユニット205の印刷設定画面表示処理の一例を示すフローチャートである。以降、印刷設定画面拡張ユニット205を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
S1901からS1903は、S801からS803と同じであるため、説明を省略する。S1904で、印刷設定画面拡張ユニット205は、印刷設定画面がデフォルト設定の変更のために呼び出されたか確認する。例えば、Windows(登録商標)OSでは、OSの設定を管理するためのSettingsアプリケーションが存在する。プリンタを含めデバイスの管理もSettingsアプリケーションから行うことができる。そして、Settingsアプリケーションから、特定の印刷装置102に関連付けられた印刷データ生成ソフトウェア202の印刷設定画面を起動し、印刷設定の変更を行うと、指定した印刷装置102におけるデフォルト印刷設定として保存される。デフォルト印刷設定は、描画アプリケーション201から印刷設定画面を開いた際の初期設定として使用される。また、デフォルト印刷設定は、描画アプリケーション201から印刷設定画面を開かずに印刷を行った際に使用される印刷設定にもなる。つまり、デフォルト設定は、すべての印刷に反映させたい印刷設定を設定するものであると考えられる。
本実施形態においてS1904の判定は、Settingsアプリケーションから印刷設定画面が起動された場合にYesと判定される。S1904でデフォルト設定の変更であると判定した場合、スキップ設定の変更を許容するため、印刷設定画面拡張ユニット205は、処理をS1906に進める。一方、S1904でデフォルト設定の変更でないと判定した場合、印刷設定画面拡張ユニット205は、処理をS1905に進める。S1905で、印刷設定画面拡張ユニット205は、スキップ設定を行うコントロールアイテム905を無効化して、処理をS1906に進める。S1906からS1915は、S804からS813の処理と同じであるため、説明を省略する。
以上のように、本実施形態では、デフォルト印刷設定の変更を行う印刷設定画面でのみスキップ設定の変更を可能とする。これにより、ユーザが設定変更による影響範囲を認識しやすくなる。
なお、本実施形態では、印刷設定画面900を通してスキップ設定の変更を可能としているが、拡張アプリケーション204が、印刷設定画面900とは異なる設定画面を提供することで設定変更を行ってもよい。
また、本実施形態では、第1実施形態との相違点を中心に説明をしたが、第2実施形態から第4実施形態のいずれかと組み合わせた形態としてもよい。
<<第6実施形態>>
第5実施形態で説明したように、描画アプリケーション201から起動した印刷設定画面で行ったスキップ設定の変更は、別の描画アプリケーション201からの印刷ジョブの処理にも影響を与える。そこで、本実施形態では、印刷データ生成ソフトウェア202または拡張アプリケーション204で処理中の印刷ジョブの有無によって、印刷設定画面からのスキップ設定の変更を可能とするか否かを切り替える例を説明する。
<印刷設定画面拡張ユニットの処理フロー>
図20は、本実施形態における印刷設定画面拡張ユニット205の印刷機能情報の編集処理の一例を示すフローチャートである。以降、印刷設定画面拡張ユニット205を、各処理の主体として説明することもあるが、実際には、対応するプログラムをCPU111が実行することで、対応する機能が実現することになる。
S2001からS2003は、S801からS803と同じであるため、説明を省略する。S2004で、印刷設定画面拡張ユニット205は、拡張アプリケーション204がジョブの処理中であるかを判定する。即ち、処理中のジョブが存在するかを判定する。S2004で、処理中のジョブが存在すると判定した場合、印刷設定画面拡張ユニット205は、処理をS2006に進め、処理中のジョブが存在しないと判定した場合、S2005に処理を進める。
S2005で、印刷設定画面拡張ユニット205は、印刷データ生成ソフトウェア202及び拡張アプリケーション204で処理待ちの印刷ジョブが存在するか否かを判定する。S2005で、処理待ちのジョブが存在すると判定した場合、印刷設定画面拡張ユニット205は、処理をS2006に進め、処理待ちのジョブが存在しないと判定した場合、処理をS2007に進める。
S2006で、印刷設定画面拡張ユニット205は、スキップ設定を行うコントロールアイテム905を無効化して、処理をS2007に進める。即ち、処理中のジョブまたは処理待ちのジョブがある場合、スキップ設定が変更されると、他のジョブに影響を及ぼす虞がある。このため、これらのジョブがある場合、スキップ設定を行うコントロールアイテム905を無効化する。S2004及びS2005で共にNoと判定された場合、S2006の処理は行われず、スキップ設定を行うコントロールアイテム905の無効化は行われない。S2007からS2016は、S804からS813の処理と同じであるため、説明を省略する。
以上のように、本実施形態では、既に発行されており、且つ処理が完了していない印刷ジョブの有無に応じて、スキップ設定の変更を可能にするかを切り替える。これにより、スキップ設定の変更が発行済みの印刷ジョブに影響を与えることを抑制することができる。
本実施形態は、第1実施形態との相違点を中心に説明したが、第2実施形態から第5実施形態のいずれかと組み合わせた形態としてもよい。
<<その他の実施形態>>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
102 印刷装置
204 拡張アプリケーション
206 スキップ制御ユニット
207 印刷機能拡張ユニット
208 印刷データ編集ユニット

Claims (18)

  1. 情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションのプログラムであって、
    前記情報処理装置のコンピュータを、
    前記印刷データ生成ソフトウェアで用いられる印刷機能情報に拡張機能の情報を追加する機能拡張手段と、
    前記印刷データ生成ソフトウェアによって行われる中間データの変換処理をスキップするスキップ処理を行うか否かを、前記拡張アプリケーションで共有されている共有情報に格納されている設定値に応じて切り替えるスキップ制御手段と、
    前記スキップ制御手段による制御に従って前記印刷データ生成ソフトウェアで前記変換処理がスキップされた前記中間データを編集し、編集後の中間データを印刷データに変換する編集手段と、
    として機能させるためのプログラム。
  2. 前記機能拡張手段は、前記印刷機能情報に前記拡張機能が含まれていない場合、前記拡張機能の情報を追加することを特徴とする請求項1に記載のプログラム。
  3. 前記コンピュータを、
    前記共有情報に格納される設定値を設定する設定手段としてさらに機能させることを特徴とする請求項1または2に記載のプログラム。
  4. 前記設定手段は、前記印刷データ生成ソフトウェアおよび前記拡張アプリケーションに関連付けられている印刷装置によってサポートされている印刷データのフォーマットが、前記拡張機能に対応するフォーマットでない場合、前記スキップ処理を行うことを示す設定値を設定することを特徴とする請求項3に記載のプログラム。
  5. 前記設定手段は、前記機能拡張手段によって追加された前記拡張機能が画像の拡大または縮小を伴うレイアウト処理の機能である場合、前記スキップ処理を行うことを示す設定値を設定することを特徴とする請求項3または4に記載のプログラム。
  6. 前記設定手段によって前記スキップ処理を行わないことを示す設定値が前記共有情報に格納されている場合、前記機能拡張手段は、前記印刷機能情報から前記拡張機能の情報を削除することを特徴とする請求項3乃至5のいずれか1項に記載のプログラム。
  7. 前記コンピュータを、
    前記拡張アプリケーションが提供する印刷設定画面を表示させる表示制御手段としてさらに機能させ、
    前記表示制御手段は、前記印刷設定画面において、前記設定値の切り替えを指定可能なコントロールアイテムを表示することを特徴とする請求項1乃至6のいずれか1項に記載のプログラム。
  8. 前記表示制御手段は、
    前記印刷設定画面において前記拡張機能のコントロールアイテムを表示し、
    前記設定値がスキップ処理を行わないことを示す場合、前記拡張機能のコントロールアイテムを無効化することを特徴とする請求項7に記載のプログラム。
  9. 前記表示制御手段は、前記印刷設定画面の呼び出し元のアプリケーションがデフォルト設定を変更するアプリケーションでない場合、前記設定値の切り替えを指定する前記コントロールアイテムを無効化することを特徴とする請求項7または8に記載のプログラム。
  10. 前記表示制御手段は、前記印刷データ生成ソフトウェアまたは前記拡張アプリケーションにおいて処理が完了していないジョブがある場合、前記設定値の切り替えを指定する前記コントロールアイテムを無効化することを特徴とする請求項7乃至9のいずれか1項に記載のプログラム。
  11. 前記拡張機能は、画像の拡大または縮小を伴うレイアウト処理の機能であることを特徴とする請求項1乃至10のいずれか1項に記載のプログラム。
  12. 前記拡張機能は、割り付け機能であることを特徴とする請求項11に記載のプログラム。
  13. 前記編集手段が編集する前記中間データは、ベクター形式のデータであり、前記編集手段によって変換された前記印刷データは、ラスター形式のデータであることを特徴とする請求項1乃至12のいずれか1項に記載のプログラム。
  14. 前記印刷データ生成ソフトウェアまたは前記拡張アプリケーションは、前記印刷機能情報に基づく能力情報に基づいて印刷設定画面を表示し、前記印刷設定画面を通じて設定された印刷設定情報が前記中間データに含まれることを特徴とする請求項1乃至13のいずれか1項に記載のプログラム。
  15. 前記印刷データ生成ソフトウェアは、前記情報処理装置が起動しているオペレーティングシステムにおいて標準で備わっている標準ドライバであることを特徴とする請求項1乃至14のいずれか1項に記載のプログラム。
  16. 印刷装置の印刷キューに応じた前記設定値が、それぞれ、前記共有情報に格納されていることを特徴とする請求項1乃至15のいずれか1項に記載のプログラム。
  17. 情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションを実行する前記情報処理装置であって、
    前記印刷データ生成ソフトウェアで用いられる印刷機能情報に拡張機能の情報を追加する機能拡張手段と、
    前記印刷データ生成ソフトウェアによって行われる中間データの変換処理をスキップするスキップ処理を行うか否かを、前記拡張アプリケーションで共有されている共有情報に格納されている設定値に応じて切り替えるスキップ制御手段と、
    前記スキップ制御手段による制御に従って前記印刷データ生成ソフトウェアで前記変換処理がスキップされた前記中間データを編集し、編集後の中間データを印刷データに変換する編集手段と、
    を備えることを特徴とする情報処理装置。
  18. 情報処理装置で動作可能な印刷データ生成ソフトウェアと関連付けられて機能の拡張を行う拡張アプリケーションを実行する前記情報処理装置の制御方法であって、
    前記印刷データ生成ソフトウェアで用いられる印刷機能情報に拡張機能の情報を追加する機能拡張工程と、
    前記印刷データ生成ソフトウェアによって行われる中間データの変換処理をスキップするスキップ処理を行うか否かを、前記拡張アプリケーションで共有されている共有情報に格納されている設定値に応じて切り替えるスキップ制御工程と、
    前記スキップ制御工程における制御に従って前記印刷データ生成ソフトウェアで前記変換処理がスキップされた前記中間データを編集し、編集後の中間データを印刷データに変換する編集工程と、
    を有することを特徴とする情報処理装置の制御方法。
JP2021141472A 2021-08-31 2021-08-31 情報処理装置、情報処理装置の制御方法およびプログラム Pending JP2023034958A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021141472A JP2023034958A (ja) 2021-08-31 2021-08-31 情報処理装置、情報処理装置の制御方法およびプログラム
US17/892,258 US11842091B2 (en) 2021-08-31 2022-08-22 Method of controlling information processing apparatus, editing intermediate data, and converting edited intermediate data into printing data
US18/388,566 US20240086119A1 (en) 2021-08-31 2023-11-10 Information processing apparatus, method of controlling information processing apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021141472A JP2023034958A (ja) 2021-08-31 2021-08-31 情報処理装置、情報処理装置の制御方法およびプログラム

Publications (1)

Publication Number Publication Date
JP2023034958A true JP2023034958A (ja) 2023-03-13

Family

ID=85288916

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021141472A Pending JP2023034958A (ja) 2021-08-31 2021-08-31 情報処理装置、情報処理装置の制御方法およびプログラム

Country Status (2)

Country Link
US (2) US11842091B2 (ja)
JP (1) JP2023034958A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023079524A (ja) * 2021-11-29 2023-06-08 ブラザー工業株式会社 サポートプログラム及び印刷システム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2341423A1 (en) * 1999-11-02 2011-07-06 Canon Kabushiki Kaisha Print control method and apparatus
JP3833114B2 (ja) * 2001-12-25 2006-10-11 キヤノン株式会社 印刷管理システム及び印刷管理方法
US8537408B2 (en) * 2006-12-20 2013-09-17 Canon Kabushiki Kaisha Information processing apparatus, information processing method, program, and storage medium
JP2008213399A (ja) * 2007-03-07 2008-09-18 Ricoh Co Ltd 印刷装置及び印刷処理方法
JP5675047B2 (ja) 2008-12-15 2015-02-25 キヤノン株式会社 文書処理装置およびコンピュータプログラム
US8477350B2 (en) * 2010-03-16 2013-07-02 Google Inc. Cloud-based print service
JP5812695B2 (ja) * 2011-06-01 2015-11-17 キヤノン株式会社 情報処理装置および情報処理方法
JP2018151690A (ja) 2017-03-09 2018-09-27 キヤノン株式会社 情報処理装置、情報処理方法およびプログラム
JP6983614B2 (ja) 2017-10-16 2021-12-17 キヤノン株式会社 プログラム

Also Published As

Publication number Publication date
US11842091B2 (en) 2023-12-12
US20240086119A1 (en) 2024-03-14
US20230061074A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
JP3944133B2 (ja) 情報処理装置及び情報処理方法及びプログラム並びにコンピュータ読み取り可能な記憶媒体
JP7086754B2 (ja) 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
JP7229680B2 (ja) 情報処理装置、制御方法及びプログラム
US8649030B2 (en) Controlling an information processing apparatus on which a plurality of printer drivers are installed
EP2624121A2 (en) Information processing apparatus, control method, and program
JP5704834B2 (ja) 情報処理装置および制御方法およびプログラム
JP5235695B2 (ja) 印刷制御装置とその制御方法
US20240086119A1 (en) Information processing apparatus, method of controlling information processing apparatus, and storage medium
JP6575270B2 (ja) 印刷設定支援装置及びプログラム
JP2024052771A (ja) 情報処理装置、制御方法およびプログラム
JP4933302B2 (ja) 印刷システム及び印刷装置及び再印刷制御方法
JP7350525B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
EP4149102A1 (en) Information processing apparatus, method of controlling information processing apparatus, and program
JP7362384B2 (ja) 情報処理装置、その制御方法、及びプログラム
JP7328405B2 (ja) 情報処理装置、情報処理装置の制御方法及び印刷設定アプリケーション
JP7171227B2 (ja) 情報処理装置、その制御方法およびアプリケーション
JP7085920B2 (ja) 印刷制御プログラム、情報処理装置とその制御方法、およびプログラム
JP7324009B2 (ja) 情報処理装置、印刷装置、それらの制御方法、及びプログラム
JP2023041245A (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP2023116259A (ja) プログラム、情報処理装置および制御方法
JP2024016352A (ja) 情報処理装置、プログラム
JP2024016353A (ja) 情報処理装置、プログラム
JP2024058153A (ja) 情報処理装置、制御方法およびプログラム
JP2021030527A (ja) 制御装置、制御方法、及びプログラム
JP2013120507A (ja) 文書処理方法