IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

<>
  • 特許-プログラム、情報処理装置 図1
  • 特許-プログラム、情報処理装置 図2
  • 特許-プログラム、情報処理装置 図3
  • 特許-プログラム、情報処理装置 図4
  • 特許-プログラム、情報処理装置 図5
  • 特許-プログラム、情報処理装置 図6
  • 特許-プログラム、情報処理装置 図7
  • 特許-プログラム、情報処理装置 図8
  • 特許-プログラム、情報処理装置 図9
  • 特許-プログラム、情報処理装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-07-22
(45)【発行日】2024-07-30
(54)【発明の名称】プログラム、情報処理装置
(51)【国際特許分類】
   G06F 3/12 20060101AFI20240723BHJP
   B41J 29/38 20060101ALI20240723BHJP
【FI】
G06F3/12 347
G06F3/12 306
G06F3/12 324
G06F3/12 367
B41J29/38 202
【請求項の数】 16
(21)【出願番号】P 2020067845
(22)【出願日】2020-04-03
(65)【公開番号】P2021163426
(43)【公開日】2021-10-11
【審査請求日】2023-03-28
(73)【特許権者】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000992
【氏名又は名称】弁理士法人ネクスト
(72)【発明者】
【氏名】門田 政敏
【審査官】松浦 かおり
(56)【参考文献】
【文献】特開2012-164245(JP,A)
【文献】特開2019-164747(JP,A)
【文献】特開2007-226809(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/09- 3/12
B41J 29/00-29/70
(57)【特許請求の範囲】
【請求項1】
情報処理装置のコンピュータが実行可能な拡張プログラムであって、前記情報処理装置には、OS上で動作する印刷プログラムと、アプリケーションと、が動作し、前記アプリケーションは、指定フィルタを指定して、コンテンツデータの印刷を前記OS上で動作する印刷プログラムに指示し、前記指定フィルタは、前記コンテンツデータを印刷データに変換するためのフィルタであり、前記印刷プログラムは、前記フィルタを備えており、前記OS上で動作する印刷プログラムは、前記アプリケーションから印刷を指示された前記コンテンツデータを印刷データに変換させるための変換指示を、前記アプリケーションにより指定された前記指定フィルタに行い、前記OS上で動作する印刷プログラムは、前記拡張プログラムが前記指定フィルタとして指定されている場合に、変換指示を前記拡張プログラムに行い、
前記コンピュータに、
前記アプリケーションによる前記コンテンツデータの印刷の指示に基づき、前記OS上で動作する印刷プログラムから前記変換指示を受け付けた場合に、前記OS上で動作する印刷プログラムが備えるフィルタに前記コンテンツデータを前記印刷データに変換させ、前記OS上で動作する印刷プログラムが備えるフィルタから出力された前記印刷データを取得する印刷データ取得処理と、
前記印刷データをプリンタに印刷させるために出力する出力処理と、
を実行させる拡張プログラム。
【請求項2】
前記印刷データ取得処理は、
選択ファイルデータを解析することで特定情報を抽出する抽出処理と、前記特定情報を用いて特定フィルタを特定する特定処理と、前記特定フィルタにコンテンツデータを印刷データに変換させる指示を行う指示処理と、前記指示処理による指示に応じて前記特定フィルタが出力した印刷データを取得する取得処理と、を含み、前記選択ファイルデータは、前記アプリケーションが前記OS上で動作する印刷プログラムに前記コンテンツデータの印刷を指示する際に選択したファイルデータであって、前記選択ファイルデータには、前記OS上で動作する印刷プログラムに対して前記拡張プログラムを前記指定フィルタとして指定する情報が含まれており、前記選択ファイルデータには、前記特定情報が含まれており、前記特定情報は、前記拡張プログラムが前記特定フィルタを特定するために用いる情報であり、
前記指示処理では、
前記特定処理によって、前記特定フィルタとして前記OS上で動作する印刷プログラムが備えるフィルタが特定された場合に、前記OS上で動作する印刷プログラムが備えるフィルタに前記コンテンツデータを前記印刷データに変換させ、
前記取得処理では、
前記指示処理によって指示された前記OS上で動作する印刷プログラムが備えるフィルタが出力した前記印刷データを取得する請求項1に記載の拡張プログラム。
【請求項3】
情報処理装置のコンピュータが実行可能な拡張プログラムであって、前記情報処理装置には、OS上で動作する印刷プログラムと、アプリケーションと、が動作し、前記アプリケーションは、印刷パラメータを指定して、コンテンツデータの印刷を前記印刷プログラムに指示し、前記OS上で動作する印刷プログラムは、フィルタを備えており、前記アプリケーションから印刷を指示された前記コンテンツデータを印刷データに変換させるための変換指示を前記フィルタに行い、
前記コンピュータに、
前記アプリケーションによる前記OS上で動作する印刷プログラムが備えるフィルタで対応していない前記印刷パラメータを指定した前記コンテンツデータの印刷の指示に基づき、前記OS上で動作する印刷プログラムから前記変換指示を受け付けた場合に、前記OS上で動作する印刷プログラムが備えるフィルタに前記コンテンツデータを前記印刷データに変換させ、前記OS上で動作する印刷プログラムが備えるフィルタから出力された前記印刷データを取得する印刷データ取得処理と、
前記印刷データをプリンタに印刷させるために出力する出力処理と、
を実行させる拡張プログラム。
【請求項4】
前記アプリケーションは、前記OS上で動作する印刷プログラムに対して、前記印刷パラメータを指定する情報を含んだファイルデータを指定することにより、前記コンテンツデータの印刷を指示し、
前記印刷データ取得処理では、
選択ファイルデータを解析することで特定情報を抽出する抽出処理と、前記特定情報を用いて特定フィルタを特定する特定処理と、前記特定フィルタに前記コンテンツデータを前記印刷データに変換させる指示を行う指示処理と、前記指示処理による指示に応じて前記特定フィルタが出力した前記印刷データを取得する取得処理と、を含み、前記選択ファイルデータは、前記アプリケーションが前記OS上で動作する印刷プログラムに前記コンテンツデータの印刷を指示する際に選択した前記ファイルデータであって、前記選択ファイルデータには、前記OS上で動作する印刷プログラムに対して前記印刷パラメータを指定する情報が含まれており、前記選択ファイルデータには、前記特定情報が含まれており、前記特定情報は、前記拡張プログラムが前記特定フィルタを特定するために用いる情報であり、
前記指示処理では、
前記特定処理によって、前記特定フィルタとして前記OS上で動作する印刷プログラムが備えるフィルタが特定された場合に、前記OS上で動作する印刷プログラムが備えるフィルタに前記コンテンツデータを前記印刷データに変換させ、
前記取得処理では、
前記指示処理によって指示された前記OS上で動作する印刷プログラムが備えるフィルタが出力した印刷データを取得する請求項3に記載の拡張プログラム。
【請求項5】
前記OS上で動作する印刷プログラムは、前記OS上で動作する印刷プログラムが備える複数の標準フィルタを備えており、
前記抽出処理で、前記複数の標準フィルタの中からいずれの標準フィルタに前記コンテンツデータを印刷データに変換させるか特定するための情報を、前記選択ファイルデータから前記特定情報として抽出した場合に、前記特定処理では、前記抽出処理によって抽出された前記特定情報に基づいて、前記複数の標準フィルタの中からいずれの標準フィルタを前記特定フィルタとして前記コンテンツデータを印刷データに変換させるか特定する請求項2又は4に記載の拡張プログラム。
【請求項6】
前記抽出処理で、前記特定情報として、前記OS上で動作する印刷プログラムが備える標準フィルタの識別情報を前記選択ファイルデータから抽出した場合に、前記特定処理では、前記複数の標準フィルタの中から、前記識別情報が示す前記OS上で動作する印刷プログラムが備える標準フィルタを、前記特定フィルタとして特定する請求項5に記載の拡張プログラム。
【請求項7】
前記抽出処理で、前記特定情報として、前記OS上で動作する印刷プログラムが備える標準フィルタのバージョンを示すバージョン情報を前記選択ファイルデータから抽出した場合に、前記特定処理では、前記複数の標準フィルタの中から、前記バージョン情報が示すバージョンである前記OS上で動作する印刷プログラムが備える標準フィルタを、前記特定フィルタとして特定する請求項5に記載の拡張プログラム。
【請求項8】
前記抽出処理で、前記特定情報として、ログインユーザを示すユーザ情報を前記選択ファイルデータから抽出した場合に、
前記特定処理では、前記複数の標準フィルタの中から、前記ユーザ情報が示すユーザに対応する前記OS上で動作する印刷プログラムが備える標準フィルタを、前記特定フィルタとして特定する請求項5に記載の拡張プログラム。
【請求項9】
前記コンピュータに、
前記アプリケーションにより指定された印刷パラメータを取得するパラメータ取得処理を実行させ、
前記印刷データ取得処理では、取得された前記印刷パラメータに前記特定フィルタが対応していない印刷オプションが含まれている場合に、前記特定フィルタから出力された前記印刷データに、前記特定フィルタが対応していない前記印刷オプションをプリンタに実行させるコマンドデータである付加コマンドを付加する付加処理を含む請求項2又は4に記載の拡張プログラム。
【請求項10】
前記付加処理では、前記特定フィルタが出力した前記印刷データから、プリンタが解釈可能なコマンドデータを付加可能な領域を特定し、特定した前記領域に前記付加コマンドを付加する請求項9に記載の拡張プログラム。
【請求項11】
前記付加処理では、前記印刷パラメータが全ての前記OS上で動作する印刷プログラムが備えるフィルタに対応していないパラメータである場合、前記コンテンツデータに前記付加コマンドを付加し、
前記出力処理では、前記付加コマンドが付加された前記コンテンツデータを、プリンタに出力する請求項9又は10に記載の拡張プログラム。
【請求項12】
前記付加処理では、
前記印刷データの出力先のプリンタが、前記印刷データに基づいて印刷を行うプリンタである場合に、前記特定フィルタから出力された前記印刷データに前記付加コマンドを付加し、
前記印刷データの出力先のプリンタが、前記コンテンツデータに基づいて印刷を行うプリンタである場合、前記コンテンツデータに前記付加コマンドを付加し、
前記出力処理では、前記付加コマンドが付加された印刷データ、又は前記付加コマンドが付加された前記コンテンツデータを、プリンタに出力する請求項9又は10に記載の拡張プログラム。
【請求項13】
前記付加処理では、
前記印刷データの出力先のプリンタが、前記フィルタを特定する場合に、前記特定フィルタから出力された前記印刷データに前記付加コマンドを付加し、
前記印刷データの出力先のプリンタが、前記フィルタを特定しない場合に、前記コンテンツデータに前記付加コマンドを付加し、
前記出力処理では、前記付加コマンドが付加された印刷データ、又は前記付加コマンドが付加された前記コンテンツデータを、プリンタに出力する請求項9又は10に記載の拡張プログラム。
【請求項14】
前記付加処理では、前記印刷オプションにセキュアプリントの実行を指定する印刷オプションが含まれていた場合に、前記セキュアプリントで用いるユーザ情報及びジョブ情報を前記付加コマンドとして前記印刷データに付加し、前記セキュアプリントは、前記アプリケーションにより、ユーザを識別するユーザ情報、及び印刷ジョブを識別するジョブ情報を前記印刷パラメータとして前記OS上で動作する印刷プログラムに指定し、プリンタにより、前記ユーザ情報及び前記ジョブ情報が含まれている前記印刷データを受信した場合に、前記ユーザ情報に対応する操作を受付けたことを条件に前記印刷データを印刷するというプリント方式である請求項9~13のいずれか一項に記載の拡張プログラム。
【請求項15】
OS上で動作する印刷プログラムと、アプリケーションと、拡張プログラムと、が動作する情報処理装置であって、前記アプリケーションは、指定フィルタを指定して、コンテンツデータの印刷を前記OS上で動作する印刷プログラムに指示し、前記指定フィルタは、前記コンテンツデータを印刷データに変換するためのフィルタであり、前記印刷プログラムは、前記フィルタを備えており、前記OS上で動作する印刷プログラムは、前記アプリケーションから印刷を指示された前記コンテンツデータを印刷データに変換させるための変換指示を、前記アプリケーションにより指定された前記指定フィルタに行い、前記OS上で動作する印刷プログラムは、前記拡張プログラムが前記指定フィルタとして指定されている場合に、変換指示を前記拡張プログラムに行い、
前記アプリケーションによる前記コンテンツデータの印刷の指示に基づき、前記OS上で動作する印刷プログラムから前記変換指示を受け付けた場合に、前記OS上で動作する印刷プログラムが備えるフィルタに前記コンテンツデータを前記印刷データに変換させ、前記OS上で動作する印刷プログラムが備えるフィルタから出力された前記印刷データを取得する印刷データ取得部と、
前記印刷データをプリンタに印刷させるために出力する出力部と、
を備える情報処理装置。
【請求項16】
OS上で動作するプログラムと、アプリケーションと、が動作する情報処理装置であって、前記アプリケーションは、印刷パラメータを指定して、コンテンツデータの印刷を前記OS上で動作する印刷プログラムに指示し、前記OS上で動作する印刷プログラムは、フィルタを備えており、前記アプリケーションから印刷を指示された前記コンテンツデータを印刷データに変換させるための変換指示を前記フィルタに行い、
前記アプリケーションによる前記OS上で動作する印刷プログラムが備えるフィルタで対応していない前記印刷パラメータを指定した前記コンテンツデータの印刷の指示に基づき、前記OS上で動作する印刷プログラムから前記変換指示を受け付けた場合に、前記OS上で動作する印刷プログラムが備えるフィルタに前記コンテンツデータを前記印刷データに変換させ、前記OS上で動作する印刷プログラムが備えるフィルタから出力された前記印刷データを取得する印刷データ取得部と、
前記印刷データをプリンタに印刷させるために出力する出力部と、
を備える情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテンツデータを印刷データに変換する技術に関する。
【背景技術】
【0002】
特許文献1には、OSが、印刷管理システムとしてCUPS(Common Unix Printing Systemの略)を備える情報処理装置が記載されている。このような情報処理装置では、OSは、コンテンツデータをプリンタが処理可能なデータ形式に変換するフィルタを備えており、情報処理装置は、フィルタにより変換されたデータをプリンタに出力する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2020-1298号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1には、情報処理装置がプリンタに印刷データを印刷させる技術が開示されている。近年では、情報処理装置に求められる機能も、プリンタに求められる機能も多様化しているため、情報処理装置が備える機能と、プリンタが備える機能とが、容易には対応しない。例えば、アプリケーションが用意したコンテンツデータを、ユーザが所望した通りにプリンタに印刷させることができなくなることが懸念される。
【0005】
本発明は、上記課題に鑑みたものであり、コンテンツデータを印刷データに変換する情報処理装置において、印刷データを適正にプリンタに出力させることを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明では、情報処理装置のコンピュータが実行可能な拡張プログラムであって、情報処理装置には、OS上で動作する印刷プログラムと、アプリケーションと、が動作し、アプリケーションは、指定フィルタを指定して、コンテンツデータの印刷をOS上で動作する印刷プログラムに指示し、指定フィルタは、コンテンツデータを印刷データに変換するためのフィルタであり、印刷プログラムは、フィルタを備えており、OS上で動作する印刷プログラムは、アプリケーションから印刷を指示されたコンテンツデータを印刷データに変換させるための変換指示を、アプリケーションにより指定された指定フィルタに行い、OS上で動作する印刷プログラムは、拡張プログラムが指定フィルタとして指定されている場合に、変換指示を拡張プログラムに行う。コンピュータに、アプリケーションによるコンテンツデータの印刷の指示に基づき、OS上で動作する印刷プログラムから変換指示を受け付けた場合に、OS上で動作する印刷プログラムが備えるフィルタにコンテンツデータを印刷データに変換させ、OS上で動作する印刷プログラムが備えるフィルタから出力された印刷データを取得する印刷データ取得処理と、印刷データをプリンタに印刷させるために出力する出力処理と、を実行させる。
【0007】
上記構成では、OS上で動作する印刷プログラムは、アプリケーションからのフィルタの指定に基づき、指定されたフィルタにコンテンツデータを印刷データに変換させる変換指示を行う。アプリケーションが、本プログラムを指定して、コンテンツデータの印刷をOSに指示した場合に、本プログラムは、OS上で動作する印刷プログラムが備えるフィルタに、コンテンツデータを印刷データに変換させる変換指示を行う。これにより、本プログラムを指定したコンテンツデータの印刷データへの変換において、OS上で動作する印刷プログラムが備えるフィルタを用いて印刷データをプリンタに出力することができる。
【発明の効果】
【0008】
本発明では、コンテンツデータを印刷データに変換する情報処理装置において、印刷データを適正にプリンタに出力させることができる。
【図面の簡単な説明】
【0009】
図1】印刷システムの構成図。
図2】情報処理装置の構成図
図3】ファイルデータを説明する図。
図4】ジョブデータJDを説明する図。
図5】ジョブデータを生成する処理の手順を示すフローチャート。
図6図5のステップ11で実行するPPD処理の詳細な手順を示すフローチャート。
図7】ファイルデータを説明する図。
図8】プロセスA,B及び特定フィルタにより実行される処理を示すフローチャート。
図9】第2実施形態に係るファイルデータを説明する図。
図10】第3実施形態に係るファイルデータを説明する図。
【発明を実施するための形態】
【0010】
(第1実施形態)
以下、本実施形態に係る印刷システムついて説明する。
【0011】
図1に示すように、印刷システム1は、情報処理装置100と、プリンタ200,201,202とにより構成されている。情報処理装置100とプリンタ200~202とは、互いに通信可能に接続されている。プリンタ200~202は、情報処理装置100から印刷指示とともにジョブデータを受信し、シートへの印刷を行う装置である。具体的には、プリンタ200~202は、PCL(Printer Control Languageの略)で記述された印刷データを印刷可能なプリンタであり、プリンタ200~201はカラープリンタであり、プリンタ202はモノクロプリンタである。本実施形態では、プリンタ200~202は、不図示のヘッドからインクをシートに向けて噴射することにより、シートに画像を形成するインクジェットプリンタである。プリンタ200~202は他の方式のプリンタであってもよい。
【0012】
情報処理装置100は、各種のプログラムの実行が可能な装置であり、例えば、スマートフォン、パーソナルコンピュータ、タブレットコンピュータである。情報処理装置100は、コントローラ10と、バス15と、ディスプレイ16と、ユーザインタフェース17(以下、ユーザIFと称す)と、通信インタフェース18(以下、通信IFと称す)とを備えている。コントローラ10と、ディスプレイ16と、ユーザIF17と、通信IF18は、バス15に接続されており、互いに通信可能となっている。
【0013】
コントローラ10は、CPU11と、ROM12と、RAM13と、不揮発性メモリ14と、有している。ROM12には、情報処理装置100を動作させるためのプログラム等が記憶されている。RAM13は、各種処理が実行される際に作業領域として、あるいは、データを一時的に記憶する記憶領域として利用される。不揮発性メモリ14は、例えば、HDD、フラッシュメモリであり、各種のプログラムやデータを記憶する。CPU11は、ROM12や不揮発性メモリ14から読み出したプログラムに従って、また、ユーザの指示に基づいて、各種の処理を実行する。
【0014】
ディスプレイ16は、画像を表示する。ユーザIF17は、ユーザによる操作を受付けるインタフェースである。ユーザIF17は、例えば、タッチパネル、キーボード、マウス等である。通信IF18は、プリンタ200との間の通信を制御するインタフェースである。通信IF18は、有線により情報処理装置100とプリンタ200との間で通信を行うための有線IFや、無線により情報処理装置100とプリンタ200との間で通信を行うための無線IFを含んでいる。また、通信IFは、不図示のネットワークを介して接続された外部装置と通信を行うためのハードウェアを含んでいてもよい。
【0015】
不揮発性メモリ14には、CPU11が実行可能なプログラムとして、OS20と、アプリケーションプログラム40と、が記憶されている。以下の説明では、プログラムを実行するCPU11のことを、単にプログラム名でも記載する場合がある。例えば、「OS20が」という記載は、「OS20を実行するCPU11が」という意味で使用する。本実施形態では、主に、プログラムに記述された命令に従ったCPU11の処理を示す。すなわち、以下の説明における「判断」、「抽出」、「選択」、「算出」、「決定」、「特定」、「取得」、「受付」、「制御」等の処理は、CPU11の処理を表している。なお「取得」は要求を必須とはしない概念で用いる。すなわち、CPU11が要求することなくデータを受信するという処理も、「CPU11がデータを取得する」という概念に含まれる。また、本明細書中の「データ」とは、コンピュータに読取可能なビット列で表される。そして、実質的な意味内容が同じでフォーマットが異なるデータは、同一のデータとして扱われるものとする。本明細書中の「情報」についても同様である。
【0016】
アプリケーションプログラム40は、コンテンツデータCDを作成する。アプリケーションプログラム40は、ディスプレイ16に表示された画面上で、画像の作成及び編集を行う画像編集プログラムである。以下では、アプリケーションプログラムをAP40と称する。コンテンツデータCDは、画像や、テキストを含んでいる。ユーザは、AP40により、例えば、印刷パラメータが記述されたPPDファイルデータを選択することで、コンテンツデータCDを印刷させるプリンタの指定や、印刷を行う際の各種の印刷パラメータを指定することができる。印刷パラメータには、コンテンツデータCDをプリンタに印刷させる際の印刷オプションを指定する印刷パラメータを含んでいる。AP40は、印刷指示とともに、コンテンツデータCDと、印刷パラメータとをOS20に送信する。
【0017】
AP40が指定する印刷オプションには、例えば、セキュアプリントを指令する印刷オプションが考えられる。セキュアプリントは、AP40により、ユーザを識別するユーザ情報、及び印刷ジョブを識別するジョブ情報を印刷パラメータとして指定し、プリンタ200による印刷を指令すると、情報処理装置100からプリンタ200に、印刷データPD、ユーザ情報及びジョブ情報が含まれているジョブデータJDが送信され、ジョブデータJDを受信したプリンタ200では、ユーザ情報に対応するパスワードの入力を受付けたことを条件に印刷データPDを印刷するというプリント方式である。
【0018】
OS20は、情報処理装置100の動作を司るプログラムである。本実施形態では、OS20は、UNIX(登録商標)型のOSである。OS20は、CUPS25と、通信制御プログラム26とを有している。CUPS25は、印刷システム1で実行される印刷を管理するためのプログラムである。CUPS25は、プリンタにコンテンツデータCDを印刷させるためのジョブデータJDを生成する。ジョブデータJDには、コンテンツデータCDに含まれる画像をプリンタ200が解釈可能なデータ形式に変換した印刷データPDと、AP40からの印刷オプションをプリンタ200に指定するPDLコマンドとが含まれる。通信制御プログラム26は、通信IF18を介した外部との通信を制御するプログラムである。
【0019】
図2に示すように、CUPS25は、標準フィルタSRIP1、標準フィルタSRIP2、ベンダフィルタVRIPを備えている。標準フィルタSRIP1,SRIP2は、OS20の標準フィルタである。標準フィルタSRIP1はコンテンツデータCDをPCLカラー形式の印刷データPDに変換するフィルタである。標準フィルタSRIP2はコンテンツデータCDを、PCLモノクロ形式の印刷データPDに変換するプログラムである。コンテンツデータCDはPS(PostScriptの略)形式、または、PDF(Portable Document Format)形式のデータである。なお、CUPS25は、PS形式で記述された印刷データを印刷可能なプリンタに対応する標準フィルタを、標準フィルタSRIP1,SRIP2以外に備えていてもよい。この標準フィルタは、PDF形式のコンテンツデータCDをPS形式の印刷データPDに変換する標準フィルタである。ベンダフィルタVRIPは、特定のプリンタ(例えばプリンタ200およびプリンタ200と同じシリーズのプリンタ)にのみ対応するフィルタである。ベンダフィルタVRIPは、例えば、プリンタ200のベンダが提供するフィルタである。本実施形態では、ベンダフィルタVRIPが拡張プログラムである。
【0020】
OS20は、プリンタ200,201,202毎に、対応するファイルデータPPDを備えている。ファイルデータPPDは、PPD(Postscript Printer Descriptionの略)形式のファイルデータであり、プリンタが印刷を行う際の設定が記述されている。具体的には、ファイルデータPPDには、プリンタを特定する情報や、特定されるプリンタで実行可能な印刷オプションに応じた印刷パラメータを記述したファイルデータである。本実施形態では、ファイルデータPPD1が、カラーPCLプリンタ200に対応するファイルデータであり、ファイルデータPPD2がカラーPCLプリンタ201に対応するファイルデータであり、ファイルデータPPD3が、モノクロPCLプリンタ202に対応するファイルデータである。以下では、ファイルデータPPDと称する場合は、ファイルデータPPD1~PPD3の総称を意味し、個別のファイルデータPPDを意味する場合は、末尾に識別子「1,2,3」を付す。なお、本実施例のファイルデータPPDは、CUPS用に拡張された文法に従って記述されている。また、後述する、特定タグTAG、ラベルLABおよびそれに付随する値はPPDの文法を逸脱しないようコメント形式で記述されている。
【0021】
図3はファイルデータPPDの一例である。複数のコードにより構成されている。コード「*Product: “AAPrinter”」は、ファイルデータPPDに対応するプリンタのプリンタ名が「AA Printer」であることを示している。コード「*cupsFilter: “application/vnd.cups-postscript 100 wrapper-rip”」については後述する。また、図7、9,10は、ファイルデータPPDの他の一例を、図3と共通する行を省略して図示した図である。図3、7、9,10で共通する行は、図3の先頭行から、「*cpsFilter:“wrapper-rip”」までである。
【0022】
標準フィルタSRIP1,SRIP2は、ファイルデータPPD2,PPD3と共にOS20に同梱されており、OS20を情報処理装置100にインストールする際にインストールされる。AP40と、ベンダフィルタVRIPと、ファイルデータPPD1もOS20に同梱されていれば、OS20のインストールとともに、AP40、ベンダフィルタVRIP、ファイルデータPPD1も情報処理装置100にインストールされる。これ以外にも、AP40、ベンダフィルタVRIP、及びファイルデータPPD1はストアサーバに記憶されており、OS20のインストールとは別のタイミングでインストールされてもよい。OS20、ベンダフィルタVRIP、AP40、及びファイルデータPPDは、サーバからバージョンアップ版がダウンロードされ、バージョンアップインストールされてもよい。
【0023】
通信制御プログラム26は、CUPS25により出力されたジョブデータJDを、通信IF18を介してプリンタ200に送信させるプログラムである。これにより、OS20は、通信IF18を介して、AP40により指定されたプリンタに、印刷の指示とジョブデータJDとを出力することができる。
【0024】
上記構成の印刷システム1において、AP40は、OS20にコンテンツデータCDの印刷を指示する際に、指定したプリンタに対応するファイルデータPPDを選択し、選択したファイルデータPPDをOS20に指定する。以下では、AP40が、コンテンツデータCDの印刷の際に選択するファイルデータPPDを選択ファイルデータとも称す。AP40は、プリンタ201を指定してコンテンツデータCDの印刷をOS20に指示する場合、選択ファイルデータとして、ファイルデータPPD2をOS20に指定する。一方、AP40は、コンテンツデータCDを印刷させるプリンタとしてプリンタ200を指定する場合、選択ファイルデータとしてファイルデータPPD1を選択し、ファイルデータPPD1をOS20に指定する。
【0025】
OS20は、ファイルデータPPDを参照し、ファイルデータPPDに記述された情報を元に、コンテンツデータCDを印刷データPDに変換するよう、指定されたフィルタに指令する。図3に示すファイルデータPPDでは、コード「*cupsFilter: “application/vnd.cups-postscript 100 wrapper-rip”」がファイルデータPPD1に記述されており、PS形式のコンテンツデータCDの印刷時にベンダフィルタVRIPを指定することを示す。ファイルデータPPD2には“wrapper-rip”に代えて“standard-rip1”が、ファイルデータPPD3には“standard-rip2”が記述されており、それぞれ、標準フィルタSRIP1または標準フィルタSRIP2を指定することを示す。なお、ファイルデータPPDには、PDF形式のコンテンツデータCDの印刷時にベンダフィルタVRIPを指定する記述を含ませることもできる。この場合において、「vnd.cups-postscript 100」を、「vnd.cups-pdf 0」に置き換えればよい。また、ファイルデータPPDに、PDF形式のコンテンツデータCDの印刷時に指定されるフィルタを示すコードと、PS形式のコンテンツデータCDの印刷時に指定されるフィルタを示すコードとを別々に記述するものであってもよい。
【0026】
図4は、CUPS25から出力されるジョブデータJDの構成を示している。ジョブデータJDは、ヘッダ領域H1、データ領域H2、フッタ領域H3を含んでいる。ヘッダ領域H1及びフッタ領域H3は、PJLコマンドが記述される領域である。データ領域H2は、印刷データPDを示すPCLにより記述される領域である。
【0027】
次に、ベンダフィルタVRIPにより、ジョブデータJDを生成する処理の手順を、図5のフローチャートを用いて説明する。主に、AP40がファイルデータPPD1を選択した場合を例に挙げて説明する。すなわち、AP40からOS20に対して、プリンタ200を指定したコンテンツデータCDの印刷が指示され、OS20がファイルデータPPD1を参照して、ベンダフィルタVRIPにコンテンツデータCDの印刷データPDへの変換を指示したことを契機に、CPU11により実行される処理である。以降、主体であるCPU11を便宜的に省略した文体で説明する。なお、AP40がファイルデータPPD2又はPPD3を選択した場合、OS20はベンダフィルタVRIPに指示を行わないため、図5のフローチャートは実行されない。OS20は標準フィルタに指示を行い、標準フィルタがジョブデータJDを生成し、プリンタ201又は202に出力する。
【0028】
ステップ10(以降、ステップを“S”と省略する)では、コンテンツデータCDの印刷データPDへの変換指示とともにCUPS25からベンダフィルタVRIPに受け渡された印刷パラメータ(以降、“初期パラメータ”とも称す)を記憶する。初期パラメータは、AP40からコンテンツデータCDの印刷が指示されたことにより、CUPS25が取得したパラメータである。初期パラメータはAP40からCUPS25に受け渡されてもよいし、CUPS25がOS20から取得してもよい。ベンダフィルタVRIPを介した場合、初期パラメータは、後述するファイルデータPPD内の記述に従って置き換える場合がある(以降、置き換えられた後の印刷パラメータを、“更新パラメータ”とも称す)。本実施形態では、初期パラメータおよび更新パラメータを、argv[n]として管理する。nは、何番目の印刷パラメータに属するかを示す識別子である。例えば、argv[1]は、コンテンツデータCDを識別するジョブ情報である。argv[2]は、ログインユーザを識別するユーザ情報である。argv[3]は、コンテンツデータCDの名称を示すジョブ名称である。argv[4]は、印刷部数である。argv[5]は、その他の印刷オプションである。なお、AP40はファイルデータPPDを選択する方法とは別の方法で、記述パラメータをベンダフィルタVRIPに入力してもよい。例えば、ベンダフィルタVRIPがアクセスするメモリ領域に記述パラメータを記述してもよい。
【0029】
S11では、ファイルデータPPDを解釈するためのPPD処理を実行する。PPD処理には、コンテンツデータCDを、印刷データPDに変換させる標準フィルタを特定するための処理も含まれる。図6は、S11のPPD処理の詳細な手順を説明するフローチャートである。
【0030】
図6のS31では、ファイルデータPPD1から1行分のコードを読み出す。S32では、S31で読み出したコード内に、特定タグTAGが含まれているか否かを判断する。特定タグTAGは、ベンダフィルタVRIPが解析すべきコードであることを示す情報である。本実施形態では、図3図7に示すように、特定タグTAGは、「*%wrapper-rip」である。S32を否定判定すると、S36に進み、現在読み出しているコードは、最終コードであるか否かを判断する。S36を否定判定すると、S31に戻る。S31では、読み出し対象となるコードを1行進め、コードの読出しを行う。コード内に、特定タグTAGが含まれており、S32を肯定判定すると、S33に進む。
【0031】
S33では、現在読み出しているコードから、特定タグTAGの次に記述されたラベルLABを読み出す。ラベルLABは対象処理を特定するための情報である。具体的には、ラベルLABが「subfilter」であれば、対象処理がフィルタの対象処理であることを示す。ラベルLABが「argv[n]」であれば、初期パラメータを更新パラメータに置き換えるための記述パラメータをファイルデータPPDから抽出し、一時的に記憶する処理であることを示す。S34では、S33で読み出したラベルLABから、対象処理を特定する。
【0032】
S35では、S34で特定した対象処理に対する変更処理を実行する。変更処理は直接「(対象)=(変更値)」のように記述される場合と、スクリプトにより書かれる場合がある。条件に応じて処理をかえる場合にはスクリプトSCが用いられる。スクリプトSCは、小括弧に囲まれている。図7では、ラベルLABが「subfilter」である場合のスクリプトSCが示されている。即ち、図7には、フィルタの特定処理に対するスクリプトSC1が示されている。
【0033】
まず、比較として、図3で示される構成のファイルデータPPD2から特定情報を抽出する例を説明する。この場合、ラベルLAB「subfilter」の次に記述された対象処理は、「subfilter=standard-rip1」となる。即ち、コンテンツデータCDを印刷データPDに変換するフィルタを特定する特定情報は、標準フィルタSRIP1を示す「standard-rip1」となる。言い換えれば、図3に示すファイルデータPPD2では、指定すべき標準フィルタが一意に特定される。
【0034】
一方、図7のスクリプトSC1を実行することで、条件に応じて、標準フィルタを識別するための情報である「standard-rip1」と、「standard-rip2」とのいずれかが、ファイルデータPPD1から特定情報として抽出される。言い換えると、スクリプトSC1は、カラー用の標準フィルタSRIP1が存在していれば、標準フィルタSRIP1を選択させることでPCLカラー形式の印刷データPDを出力させ、存在していなければ、モノクロ用の標準フィルタSRIP2を選択させるスクリプトである。「standard-rip2」は、標準フィルタSRIP2を特定するための特定情報である。ベンダフィルタVRIPは、スクリプトSC1を実行することで、OS20が標準フィルタSRIP1を備えている場合、「standard-rip1」を特定情報として抽出し、一時記憶する。一方、OS20が標準フィルタSRIP1を備えていない場合、「standard-rip2」を特定情報として抽出し、一時記憶する。
OS20が標準フィルタSRIP1を備えている、という概念は、不揮発性メモリ14に標準フィルタSRIP1が記憶されている、という概念を含んでいてもよい。
【0035】
また、特定タグTAGが「*%wrapper-rip」であり、ラベルLABが「arg5」である場合、スクリプトSCを実行することにより、初期パラメータargv[5]を、更新パラメータに更新するための記述パラメータをファイルデータPPD1から抽出し、一時記憶する。例えば、印刷モード(カラー又はモノクロ)を指定する初期パラメータargv[5]に対して、どのような記述パラメータを用いて置き換えるかを示すスクリプトSCを実行することにより、argv[5]が記述パラメータを用いて更新され、更新パラメータargv[5]となる。
【0036】
上述した処理以外にも、特定TABが「*OpenUI」であり、ラベルLABが「“HOLDKEY”」である場合、スクリプトSCを実行することにより、セキュアプリントの実行を指定する初期パラメータargv[5]を、更新パラメータに更新するためのHOLDKEY処理を実行すること示す記述パラメータをファイルデータPPDから抽出し、一時記憶する。HOLDKEY処理では、情報処理装置100のディスプレイ16にパスワードを入力するための画面を表示させ、ユーザIF17を介してパスワード入力を受け付ける。そして、受け付けたパスワードを、HOLDKEY=(入力されたパスワード)として、初期パラメータargv[5]に追加することにより、更新パラメータとする処理である。
【0037】
また、特定TABが「*OpenUI」であり、ラベルLABが「“OUTBIN”」である場合、スクリプトSCを実行することにより、出力先のトレイを指定する初期パラメータargv[5]を、更新パラメータに更新するためのOUTBIN処理を実行することを示す記述パラメータを抽出し、一時記憶する。このOUTBIN処理では、情報処理装置100のディスプレイ16に出力先のトレイを選択するための画面を表示させ、ユーザIF17を介して出力トレイの選択を受け付け、選択された出力トレイを示す情報を、HOLDKEY=(選択されたトレイ)として、初期パラメータargv[5]に追加することにより、更新パラメータとする処理である。
【0038】
S35を終了すると、S36に進み、現在読み出しているコードが、ファイルデータPPDの最終コードであれば、図5のS12に進む。なお、AP40により指定されたプリンタが、コンテンツデータCDを用いて印刷を行うプリンタである場合、対応するファイルデータPPDには、フィルタを指定するための記述がない。本実施形態では、S34が抽出処理の一例であり、S35が特定処理の一例である。また、抽出処理と特定処理とは、厳密に分かれた処理ではない、ともいえる。すなわち、S32~S35までの連携した処理が、抽出処理と特定処理の一例である、ともいえる。
【0039】
図5に戻り、S12では、S11でのPPD処理により、特定フィルタを特定しているか否かを判断する。具体的には、標準フィルタを特定する特定情報を記憶しているか否かを判断してもよい。S12を肯定判定した場合、即ち、標準フィルタSRIPを特定している場合、S15に進む。S15~S18では、特定フィルタとして特定した標準フィルタにコンテンツデータCDを印刷データに変換させる変換指示を行い、変換指示に応じて標準フィルタが出力した印刷データPDを取得する。即ち、本実施形態では、ベンダフィルタVRIPにより、コンテンツデータCDを印刷データPDに変換するのではなく、ベンダフィルタVRIPが、コンテンツデータCDを印刷データPDに変換されるフィルタとして、いずれかの標準フィルタSRIP1,SRIP2を特定し、特定した標準フィルタに変換を指示する。以下では、特定フィルタとして、標準フィルタSRIP1が特定された場合を例に、説明を行う。
【0040】
S15では、パイプ1,2を作成する。パイプ1、パイプ2は、IN1とOUT1とが1組となり、IN2とOUT2とが1組となる仮想的な情報の通路である。パイプ1はデータを送り出すためのIN1と、データを抜き出すためのOUT1の端点をもつ。またパイプ2は同様にデータを送り出すためのIN2と、データを抜き出すためのOUT2の端点をもつ。具体的には、パイプ1では、IN1に設定した情報を、OUT1から取り出すことができる。パイプ2では、IN2に設定した情報を、OUT2から取り出すことができる。
【0041】
S16では、自身のプロセスを複製する。プロセスは、RAM13上に展開される処理の集合であり、以後の説明では、S17,S18を実行する親プロセス(すなわち、複製を行ったプロセル)をプロセスAと記載し、図8に示す処理を実行する子プロセス(すなわち、複製によって生成されたプロセス)をプロセスBと記載する。
【0042】
プロセスAでは、S17で、パイプ1のIN1にコンテンツデータCDを設定する。これにより、プロセスBにより、パイプ1のOUT1から取り出されたコンテンツデータCDは、標準フィルタSRIP1により印刷データPDに変換される。S18では、標準フィルタSRIP1により出力された印刷データPDをパイプ2のOUT2から取り出す。
【0043】
図8を用いて、プロセスBでの処理を説明する。S100では、パイプ1のOUT1をプロセスBの標準入力に置き換える。このパラメータの置き換えは、ファイルデータPPDの置き換えを指示する記述がされている場合のみ行われる。これにより、パイプ1のIN1に設定されたコンテンツデータCDを、OUT1からプロセスBで取得して処理可能となる。フィルタは標準入力から入力されたデータを加工して標準出力に出力するものであるが、S100およびS101において標準入力はOU1に。標準出力はIN2に置き換えられている。このため標準フィルタSRIP1はOUT1より出力されたデータ、すなわちプロセスAにてIN1に出力されたデータを入力し、出力はIN2に送られる。また、S101では、パイプ2のIN2をプロセスBの標準出力に置き換える。これにより、プロセスBは、パイプ2のIN2に設定された印刷データPDを、OUT2を通じて出力可能となる。
【0044】
S102では、一時記憶した初期パラメータargv[n]を、S12のPPD処理で一時記憶した記述パラメータに従って更新パラメータに置き換える。上述したように、記述パラメータが、初期パラメータargv[5]を更新する記述パラメータであれば、初期パラメータargv[5]は、記述パラメータの内容に従い置き換えされ、更新パラメータargv[5]となる。例えば、記述パラメータが、HOLDKEY処理を実行すること指示するものであれば、情報処理装置100にHOLDKEY処理を実行させることにより、初期パラメータargv[5]にパスワードが追加される。また、記述パラメータが、OUTBIN処理を実行するものであれば、情報処理装置100にOUTBIN処理を実行させて、初期パラメータargv[5]に出力トレイが追加される。これにより、初期パラメータargv[n]が更新パラメータとして更新される。
【0045】
S103では、プロセスBを、PPD処理(図5のS11)で特定した特定情報に従い選択した特定フィルタ(本実施形態では、標準フィルタSRIP1)に置き換える。
【0046】
以下、S111-S114は、S103で特定情報に従い選択された標準フィルタSRIP1での処理である。S111では、起動する。S112では、パイプ1のOUT1からコンテンツデータCDを取得する。パイプ1のOUT1から取得されたコンテンツデータCDは、プロセスAのS17でパイプ1のIN1に設定されたコンテンツデータCDである。S113では、コンテンツデータCDをPCLコマンドにより記述された印刷データPDに変換する。S114では、S113で変換した印刷データPDをパイプ2のIN2に設定する。これにより、パイプ2を通じて、特定フィルタにより変換された印刷データが、プロセスAのS18で取得される。
【0047】
図5に戻り、S19では、印刷パラメータargv[n]に応じたPJLコマンドを、印刷データPDに付加する。以下、図4で示したジョブデータJDを例に、S19での処理を説明する。ベンダフィルタVRIPは、印刷データPDから、PJLコマンドを付加可能な領域であるヘッダ領域H1を特定し、特定したヘッダ領域H1にPJLコマンドを付加する。
【0048】
図4で示すように、ベンダフィルタVRIPは、ヘッダ領域H1の先頭に先頭コマンドであるUELを付加し、UELの後に、印刷パラメータargv[n]に対応するPJLコマンドを付加する。図4では、UELとして、「<ESC>%-12345X@PJL」が付加されている。ベンダフィルタVRIPは、印刷パラメータargv[5]で指定されるオプションに対応するPJLコマンドを、ヘッダ領域H1に付加する。このとき、S102の処理により初期パラメータargv[5]が更新パラメータargv[5]に更新されている場合、更新パラメータargv[5]で指定されるオプションを、PJLコマンドとして付加する。
【0049】
セキュアプリントがアプリによって指定されている場合には、図4で示すように、ベンダフィルタVRIPは、セキュアプリントを実行させるための印刷パラメータargv[5]を一時記憶しており、ヘッダ領域H1に、PJLコマンド「@PJL SET HOLDKEY=“5345”」を付加する。「@PJL SET HOLDKEY」は、プリンタ200にセキュアプリントを指示するPJLコマンドである。パラメータ「“5345”」は、セキュアプリントで要求されるパスワードを示しており、S102での置き換え処理において、HOLDKEY処理が実行されたことにより、初期パラメータargv[5]に追加されたパラメータである。
【0050】
ベンダフィルタVRIPは、プリンタ200の出力先のトレイを指定する印刷パラメータargv[5]を一時記憶しており、ヘッダ領域H1に、PJLコマンド「@PJL SET OUTBIN=“AUTO”」を付加する。「@PJL SET OUTBIN」は、プリンタ200に対してシートの出力先のトレイを指定するPJLコマンドである。パラメータ「“AUTO”」は、出力先のトレイを指定するパラメータであり、S102でOUTBIN処理が実行されたことにより、初期パラメータargv[5]に追加されたパラメータである。
【0051】
これ以外にも、ベンダフィルタVRIPは、プリンタ200の印刷モードを指定する印刷パラメータargv[5]を一時記憶しており、ヘッダ領域H1に、PJLコマンド「@PJL OPTION=”modo=Color”」を付加する。パラメータ「“mode=Color”」は、ベンダフィルタVRIPが、S102で、初期パラメータ[5]の「print-mode=color」から置き換えたパラメータである。ベンダフィルタVRIPは、印刷データPDの文字コードを指定する印刷パラメータargv[5]を一時記憶しており、ヘッダ領域H1に、PJLコマンド「@PJL SET STRINGCODESET=“UTF8”」を付加する。「@PJL SET STRINGCODESET=“UTF8”」は、プリンタ200に対して印刷データPDの文字コードを指定するPJLコマンドである。
【0052】
このようにベンダフィルタVRIPは、PJLコマンドを印刷データPDに付加することで、例えばセキュアプリントをプリンタ200に実行させることができる。一方で。本実施形態では、標準フィルタSRIP1,SRIP2は、セキュアプリントに対応していない。すなわち、標準フィルタはセキュアプリントの印刷パラメータに対応していない。言い換えると、標準フィルタSRIP1,SRIP2は、セキュアプリントに対応するPJLコマンドを印刷データPDに付加することができないフィルタである。また、出力先のトレイ指定、印刷モードの指定、印刷データの文字コードの指定についても、標準フィルタSRIP1,SRIP2は、それらの印刷パラメータに対応していない。本実施形態では、セキュアプリント、出力先のトレイ指定、印刷モードの指定、及び印刷データの文字コードの指定に対応する印刷パラメータargv[5]が、標準フィルタで対応していていない印刷オプションの印刷パラメータの一例である。なお、標準フィルタSRIP1,SRIP2は、標準フィルタが対応する印刷オプションについて、ファイルデータPPDの記述に従って、PJLコマンドを印刷データPDに付加して出力してもよい。なお、この場合、標準フィルタSRIP1、SRIP2から出力された印刷データPDから先頭のUELおよび最後の「EOJ NAME」のコードを削除したうえで、S19の処理をおこなう。
【0053】
また、ベンダフィルタVRIPは、ファイルデータPPDに、特定タグTAGが含まれていない場合、標準フィルタが対応していない印刷オプションについて、PJLコマンドを印刷データPDに付加しない。すなわち、ファイルデータPPD内の印刷オプションについての記述が、標準フィルタが対応する印刷オプションに関する記述だけだった場合、印刷データPDには、印刷オプションについて、標準フィルタが付加したPJLだけが付加されていてもよい。
【0054】
なお、図4の例では、ベンダフィルタVRIPは、印刷データPDがPCLデータであることを指定する印刷パラメータargv[5]を一時記憶しており、PJLコマンド「@PJL SET ENTER LANGUAGE=PCL」をヘッダ領域H1に付加する。「@PJL SET ENTER LANGUAGE」で指定されるパラメータ「PCL」は、初期パラメータargv[5]に含まれるデータ形式である。ベンダフィルタVRIPは、印刷パラメータargv[2]に対応するユーザ情報を指定するPJLコマンド「@PJL SET LOGINUSER=“AAA”」、印刷パラメータargv[3]に対応するジョブ情報を指定するPJLコマンド「@PJL JOB NAME=“Test Page”」を、ヘッダ領域H1に付加する。「@PJL SET LOGINUSER」で指定されるパラメータ「“AAA”」は、ユーザ情報を示し、初期パラメータargv[2]、あるいは初期パラメータargv[2]に対応するユーザを示すユーザ名である。「@PJL JOB NAME」で指定される印刷パラメータ「“CCC”」は、初期パラメータargv[3]に含まれるジョブ名である。ベンダフィルタVRIPは、システム時刻を指定するPJLコマンド「@PJL SET JOBTIME=“BBB”」を付加する。「@PJL SET JOBTIME」で指定される印刷パラメータ「“BBB”」は、ジョブデータJDの送信時間を示し、OS20から取得されるシステム時刻である。
【0055】
図5に戻り、S20では、S19で作成したジョブデータJDをプリンタ200に印刷させるために出力させる出力処理を行う。具体的には、ベンダフィルタVRIPは、通信制御プログラム26にジョブデータJDの出力を指示する。通信制御プログラム26は、通信IF18を制御して、ジョブデータJDをプリンタ200に送信する。
【0056】
一方、S12に戻り、ファイルデータPPD1内に、標準フィルタSRIPの指定がない場合、S12を否定判定して、S13に進む。S13では、AP40から出力されたコンテンツデータCDをそのまま出力する。S14では、S13で出力したコンテンツデータCDのヘッダ領域H1及びフッタ領域H3に、PJLコマンドを埋め込む。この場合においても、ベンダフィルタVRIPは、セキュアプリント、出力先のトレイ指定、印刷モードの指定、及び印刷データの文字コードの指定に対応する印刷パラメータargv[5]を一時記憶している場合、各印刷パラメータに対応したPJLコマンドを、ヘッダ領域H1に付加する。S20では、PJLコマンドを付加したコンテンツデータCDをプリンタ200に出力させるために出力させる出力処理を行う。S20を終了すると、図5の処理を終了する。通常CUPS25はPPDによってフィルタに入力されるデータ形式を選ぶことができる。PPDにより入力データ形式をPSとすれば、セキュアプリントを行うためのPJLが不可されたPSデータを得ることができる。このデータはセキュアプリントに対応したPSプリンタで印字することができる。
【0057】
本実施形態では、CPU11が実行するS10~S19までの処理が、印刷データ取得処理、及び印刷データ取得部の一例であり、S20が、出力処理、及び出力部の一例である。CPU11が実行するS15~S17までの処理が指示処理の一例であり、S18が取得処理の一例である。CPU11が実行するS10の処理が、パラメータ取得処理の一例であり、S19が、付加処理の一例である。
【0058】
以上説明した本実施形態では、以下の効果を奏することができる。
OS20は、AP40から印刷を指示されたコンテンツデータCDを印刷データPDに変換させるための変換指示を、指定フィルタに行い、OS20は、AP20によりベンダフィルタVRIPが指定フィルタとして指定されている場合に、変換指示を指定フィルタに行う。CPU11は、AP40によるコンテンツデータCDの印刷の指示に基づき、OS20から変換指示を受け付けた場合に、標準フィルタにコンテンツデータCDを印刷データPDに変換させ、標準フィルタから出力された印刷データPDを取得し、印刷データPDをプリンタ200に印刷させるために出力する。これにより、ベンダフィルタVRIPを指定したコンテンツデータCDの印刷データPDへの変換において、標準フィルタを用いて印刷データPDの変換を行うことができるため、印刷データを適正にプリンタに出力させることができる。
【0059】
・CPU11は、ファイルデータPPDを解析することで特定情報を抽出し、抽出した特定情報により特定フィルタである標準フィルタを特定する。CPU11は、特定フィルタにコンテンツデータCDを印刷データPDに変換させる指示を行い、特定フィルタが出力した印刷データPDを取得する。CPU11は、特定フィルタとして標準フィルタが特定された場合に、標準フィルタにコンテンツデータCDを印刷データPDに変換させ、標準フィルタが出力した印刷データPDを取得する。これにより、標準フィルタを用いて印刷データPDの変換を行うことができる。
【0060】
・CPU11は、OS20が備える複数の標準フィルタの中からいずれの標準フィルタを特定フィルタとして特定するための特定情報を、選択されたファイルデータPPDから抽出した場合に、特定情報に基づいて、複数の標準フィルタの中から特定フィルタを特定する。これにより、OS20が複数の標準ファイルを備えている場合でも、特定フィルタを一意に特定することができる。
【0061】
・CPU11は、AP40から出力された印刷パラメータを取得し、取得された印刷パラメータに特定フィルタが対応していない印刷オプションが含まれている場合に、特定フィルタから出力された印刷データPDに、特定フィルタが対応していない印刷オプションをプリンタに実行させるPJLコマンドを付加する。これにより、AP40から出力される印刷パラメータに、特定フィルタが対応していない印刷オプションが含まれている場合でも、特定フィルタから出力された印刷データPDに印刷オプションを実行させるためのPJLコマンドが付加される。これにより、標準フィルタ用いて、コンテンツデータCDを印刷データPDに変換する際に、標準フィルタが対応していない印刷オプションをプリンタの印刷に適用させることができる。
【0062】
・CPU11は、特定フィルタが出力した印刷データPDから、プリンタが解釈可能なPJLコマンドを付加可能なヘッダ領域H1を特定し、特定したヘッダ領域H1にPJLコマンドを付加する。これにより、標準フィルタが対応していない印刷オプションのPJLコマンドを付加すべき領域を、プリンタが解釈可能なPJLコマンドが付加される領域に合わせることができる。
【0063】
・CPU11は、セキュアプリントを指定する印刷パラメータが全ての標準フィルタSRIP1,SRIP2に対応していない印刷パラメータである場合、コンテンツデータCDにセキュアプリントを指定するPJLコマンドを付加し、PJLコマンドが付加されたコンテンツデータCDを、プリンタに出力する。これにより、OS20の全ての標準フィルタに対応していない印刷オプションであっても、コンテンツデータをプリンタに出力することができる。
【0064】
・CPU11は、プリンタ200が、印刷データPDに基づいて印刷を行うプリンタである場合に、特定フィルタから出力された印刷データPDに標準フィルタが対応していない印刷オプションを指示するPJLコマンドを付加し、プリンタ200が、コンテンツデータCDに基づいて印刷を行うプリンタである場合、コンテンツデータCDに標準フィルタが対応していない印刷オプションを指示するPJLコマンドを付加する。CPU11は、PJLコマンドが付加された印刷データPD、又はPJLコマンドが付加されたコンテンツデータCDを、プリンタに出力する。これにより、コンテンツデータCDを印刷するプリンタに対しても、AP40により指定された印刷オプションを実行させることができる。
【0065】
(第2実施形態)
第2実施形態では、第1実施形態と異なる構成を主に説明を行う。なお、第2実施形態において第1実施形態と同一の符号を付した箇所は、同一の箇所を意味し、その説明を繰り返さない。
【0066】
第1実施形態では、ファイルデータPPD1には、標準フィルタを固有に識別する特定情報が記述されていた。これに代えて、本実施形態では、ファイルデータPPD1には、特定情報として、標準フィルタのバージョンを示すバージョン情報が記述されている。
【0067】
図9に示すように、ファイルデータPPD1には、特定情報を抽出するためのスクリプトSC2が記述されている。ベンダフィルタVRIPは、S32で、コード内の特定タグTAG「*%wrapper-rip」が含まれていることを判断し、S33で、コード内にラベルLAB「subfilter」が含まれていることを判断した場合に、S34で、スクリプトSC2を実行する。ベンダフィルタVRIPは、スクリプトSC2を実行することにより、標準フィルタのバージョンが、「Ver.1.00」であることを示すバージョン情報「ver-gt 1.00」を特定情報として抽出する。ベンダフィルタVRIPは、図8のS103において、標準フィルタSRIP1のバージョンが、「Ver 1.00」である場合に、標準フィルタSRIP1を特定フィルタに特定する。一方、標準フィルタSRIP1のバージョンが、「Ver 1.00」でなければ、標準フィルタSRIP2を特定フィルタに特定する。例えば、ベンダフィルタVRIPは、標準フィルタのバージョン情報をOS20に要求することにより取得する。
【0068】
以上説明した本実施形態では、CPU11は、特定情報として、標準フィルタのバージョンを示すバージョン情報をファイルデータPPD1から抽出した場合に、複数の標準フィルタの中から、バージョン情報が示すバージョンの標準フィルタを、特定フィルタとして特定する。これにより、例えば、ファイルデータPPD内で、バージョン情報を再新のものに設定しておくことにより、標準フィルタのうち、最新のバージョンのフィルタを優先的に使用して、コンテンツデータCDを印刷データPDに変換させることができる。
【0069】
(第3実施形態)
第3実施形態では、第1実施形態と異なる構成を主に説明を行う。なお、第3実施形態において第1実施形態と同一の符号を付した箇所は、同一の箇所を意味し、その説明を繰り返さない。
【0070】
第1実施形態では、ファイルデータPPD1には、標準フィルタを固有に識別する特定情報が記述されていた。これに代えて、本実施形態では、ファイルデータPPD1には、特定情報として、ログインユーザを示すユーザ情報が記述されている。
【0071】
図11に示すように、ファイルデータPPD1には、特定情報を抽出するためのスクリプトSC3が記述されている。ベンダフィルタVRIPは、S32で、コード内の特定タグTAG「*%wrapper-rip」が含まれていることを判断し、S33で、コード内にラベルLAB「subfilter」が含まれていることを判断した場合に、S34で、スクリプトSC2を実行する。ベンダフィルタVRIPは、スクリプトSC2を実行することにより、情報処理装置100のログインユーザを示すユーザ情報「guest」を特定情報として抽出する。ベンダフィルタVRIPは、印刷パラメータargv[2]をユーザ情報として用いる。これ以外にも、ベンダフィルタVRIPは、OS20にユーザ情報を要求して、取得してもよい。ベンダフィルタVRIPは、図8のS103において、ログインユーザが「guest」である場合、すなわち、ログインユーザが特定されていない場合に、モノクロ印刷用の標準フィルタSRIP3(「monochrome-rip」)を、特定フィルタに特定する。一方、ログインユーザ「guest」でなければ、すなわち、特定のユーザが特定されている場合に、カラー印刷用の標準フィルタSRIP4(「color-rip2」)を、特定フィルタに特定する。なお、標準フィルタSRIP3,SRIP4は、OSの標準フィルタである。
【0072】
以上説明した本実施形態では、CPU11は、特定情報として、ユーザ情報をファイルデータPPDから抽出した場合に、複数の標準フィルタの中から、ユーザ情報が示すユーザに対応する標準フィルタを、特定フィルタとして特定する。これにより、情報処理装置100のログインユーザに応じて、コンテンツデータCDの印刷に用いる標準フィルタを使い分けることができる。
【0073】
(その他の実施形態)
本実施形態は、その要旨を変更しない範囲で様々な変形例が存在する。
・上述した実施形態では、AP40は、ファイルデータPPDを参照させることにより、OS20に対して標準フィルタSRIPの指定を行った。これに代えて、AP40は、OS20に、標準フィルタSRIPを直接、指定してもよい。
【0074】
・OS20は、ベンダフィルタVRIPを情報処理装置100にインストールする際に、標準フィルタを指定するファイルデータPPDを、ベンダフィルタVRIPの指定を含む印刷パラメータが記述されたPPDに書き換えてしまってもよい。
【0075】
ファイルデータPPDに記述されたコード内のラベルLAB「subfilter」に続けて、非標準のフィルタを特定する記述がされていてもよい。AP40がこのファイルデータPPDを選択した場合、ベンダフィルタVRIPは、コンテンツデータCDから印刷データPDへの変換を、非標準のフィルタに指示してもよい。
【符号の説明】
【0076】
100…情報処理装置、11…CPU、20…OS、40…アプリケーション、SRIP1,SRIP2…標準フィルタ
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10