JP6376876B2 - 情報処理装置、プログラム及び制御方法 - Google Patents

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

Info

Publication number
JP6376876B2
JP6376876B2 JP2014151195A JP2014151195A JP6376876B2 JP 6376876 B2 JP6376876 B2 JP 6376876B2 JP 2014151195 A JP2014151195 A JP 2014151195A JP 2014151195 A JP2014151195 A JP 2014151195A JP 6376876 B2 JP6376876 B2 JP 6376876B2
Authority
JP
Japan
Prior art keywords
filter
print data
setting
page
imaging process
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.)
Active
Application number
JP2014151195A
Other languages
English (en)
Other versions
JP2016024788A (ja
JP2016024788A5 (ja
Inventor
中田 浩暁
浩暁 中田
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 JP2014151195A priority Critical patent/JP6376876B2/ja
Priority to US14/802,855 priority patent/US9766839B2/en
Publication of JP2016024788A publication Critical patent/JP2016024788A/ja
Publication of JP2016024788A5 publication Critical patent/JP2016024788A5/ja
Application granted granted Critical
Publication of JP6376876B2 publication Critical patent/JP6376876B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/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
    • G06F3/1286Remote printer device, e.g. being remote from client or server via local network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1835Transforming generic data
    • G06K15/1836Rasterization

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)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、フィルターを用いて印刷データを処理する技術に関する。
従来、データに対して処理を行う複数の機能を複数のモジュールにわけて実装する技術がある。
特許文献1はモジュールとしてフィルターを設け、それぞれのフィルターで処理を行う技術を開示している。
特開2006−215879
本明細書では、特許文献1のようにフィルターを設け、フィルターによって印刷データを処理する方法を検討する。複数のフィルターを用いて印刷データに対して順次処理を行うように構成した場合に、どのフィルターを採用するかによって実現できる機能が決定されてしまい、要求によってフィルターの採用・不採用を動的に変更できないことがある。その結果、要求に応じてフィルターの処理内容の変更を行うことが困難となる。
処理内容を変更したい例としては、特定のフィルターによって印刷データに処理を行った場合に、処理された印刷データにプリンターに依存する描画コマンドが含まれており、プリンター出力に描画不良が生じる例が挙げられる。
描画不良が生じる具体例には、文字コマンドの属性としてプリンターがサポートしない外字や縦書きフォントが指定された場合や、図形コマンドとしてプリンターが処理可能な最大値を超える頂点数を持つ多角形描画が指定される場合が挙げられる。
よって、本明細書では、このような描画不良の回避手段として、文字コマンドや図形コマンドなどの印刷データのページを、プリンターの出力によって差異が生じない画像に変換する方法を検討する。
しかしながら、この方法でも要求に応じて処理内容を変更できない特定のフィルターを経由して前述の変換された画像を処理しようとすると、特定のフィルターが変換された画像を受け取った結果、特定のフィルターの特性によって、出力した印刷データのデータサイズが必要以上に大きくなり、処理が遅延する。特許文献1でもこうした課題や解決策について何ら開示していない。
よって、本発明は前述の課題を解決するために、設定に応じて特定のフィルターを迂回することで、特定のフィルターを採用した構成であっても描画不良の発生を防ぐことを目的とする。
上記の目的を達成するための本発明に係る情報処理装置は、
印刷データを処理するために複数のフィルターを実行可能な情報処理装置であって、
第1の印刷データのページをラスター画像に変換する画像化処理を行うか否かの設定を受け付けるモジュールを有し、
前記複数のフィルターは、前記画像化処理を実行する第1のフィルター、前記第1の印刷データを所定のページ記述言語の第2の印刷データに変換する変換処理を実行する第2のフィルターと第3のフィルターを含み、
前記画像化処理を行う設定を受け付けている場合、前記第1のフィルターが前記第1の印刷データの各ページを前記ラスター画像に変換し、前記ラスター画像を記憶領域に第3の印刷データとして保存し、前記第3のフィルターが前記第2のフィルターによる前記変換処理が行われていない前記第3の印刷データを前記記憶領域から取得して、
前記画像化処理を行わない設定を受け付けている場合、前記第1のフィルターが前記第1の印刷データを前記第2のフィルターに送信し、前記第2のフィルターは前記第1の印刷データを前記第2の印刷データに変換し、前記第3のフィルターが前記第2の印刷データを取得することを特徴とする。
本発明によれば、設定に応じて特定のフィルターを迂回することで、特定のフィルターを採用した構成であっても描画不良の発生を防ぐことができる。
印刷システムが適用可能な装置構成例。 印刷システムに関わるハードウェア構成を示すブロック図。 印刷システムに関わるソフトウェアモジュールとデータファイルの構成を示す図。 印刷処理が実行された際の、動的なプログラムオブジェクトの配置を示す図。 第1の実施形態の画像化フィルターの処理の流れを示すフローチャート。 第1の実施形態のXPS標準フィルターの処理の流れを示すフローチャート。 第1の実施形態のコマンドフィルターの処理の流れを示すフローチャート。 XPSの構造を示す図。 PCLに含まれうるコマンドのパターンを示す例。 第2の実施形態の画像化フィルターの処理の流れを示すフローチャート。 第2の実施形態のコマンドフィルターの処理の流れを示すフローチャート。
[第1の実施形態]
以下、本発明を実施するための第1の実施形態について図面を用いて説明する。
図1は、本発明の印刷システムが適用可能な装置構成例を示す図である。本印刷システムはPC10とプリンター20から構成される。
PC10、プリンター20はLAN1を介して接続されている。ここで、LAN1はイーサーネットの通信方式に対応している。また、LAN1は有線LAN、無線LANの他に、Bluetooth(登録商標)、USBなどの接続形態であっても良い。
図2は、PC10のハードウェア構成を示すブロック図である。
CPU101は、RAM102に記憶されているプログラムに従って、システムバス104に接続される各デバイスを総括的に制御する。このRAM102は、CPU101の主メモリ、ワークエリア等としても機能する。
加えて、CPU101が外部メモリ111に記憶されているプログラムに基づき処理を実行することによって、図3に示されるような情報処理装置100のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
ROM103は、各種プログラム及びデータを格納しており、各種フォントを記憶するフォントROM103a、ブートプログラムやBIOS等を記憶するプログラムROM103b、及び各種データを記憶するデータROM103cに区分けして構成される。
ネットワークI/F105は、LAN1に接続され、通信処理を行なう。
キーボードコントローラI/F106は、キーボード109や不図示のポインティングデバイス(マウス)からのキー入力を制御する。
ディスプレイI/F107は、ディスプレイ110への表示処理を制御する。
外部メモリI/F108は、例えばハードディスク(HD)等の外部メモリ111とのアクセスを制御する。外部メモリ111は、オペレーティングシステム(以下、OS)112や本発明の印刷システムを担う各種ソフトウェア113、さらに、ユーザファイル、編集ファイル等の各種データ114を記憶する記憶媒体として機能する。
なお、OS112は本実施例ではMicrosoft Windows(登録商標) 8を使用するものとする。
図3は、PC10における本発明の印刷システムに関わるソフトウェアモジュールとデータファイルの静的なパッケージ構成を示す図である。
図3に示すすべてのソフトウェアモジュールとデータは外部メモリ111に記憶されており、実行時にRAM102にロードされCPU101によって実行されたり、読み込まれたりする。
プリンタードライバーパッケージ30は、プリンターベンダーによって開発され提供されるソフトウェアモジュールやデータファイルを含むパッケージである。また、プリンタードライバーパッケージ30は、ユーザーによってOS112にセットアップされることによって、プリンタードライバーとして動作することが可能となる。
セットアップファイル301は、セットアップ時にOS112によって読み込まれるデータファイルであり、プリンタードライバーパッケージ30自身の構成や、依存するOSドライバーパッケージ31に関する情報を含んでいる。
マニフェストファイル302は、プリンタードライバーの初期化情報を記述したデータファイルである。
GPDファイル303は、プリンタードライバーの機能情報を定義したデータファイルである。具体的には、利用可能な用紙サイズ、両面、ホチキスといったプリンタードライバーの機能に関する情報が記述されている。他にも、後述する画像化処理を適用した印刷方法を有効にするかどうか、という機能情報についても記述されている。GPDファイル303は、OSドライバーパッケージ31に含まれるOSコンフィグモジュール311によって読み込まれる。
パイプラインコンフィグファイル304は印刷処理の順序をどのように構成するかについて定義したデータファイルである。
ベンダーフィルターモジュール305は、プリンターベンダーによって開発された印刷処理を実現するためのモジュールである。
一方、OSドライバーパッケージ31は、プリンタードライバーパッケージ30によって利用されるソフトウェアパッケージであり、Microsoft社によって開発され提供される。
OSコンフィグモジュール311はGPDファイル303に定義された情報に基づいてプリンタードライバーのユーザーインターフェースを表示したり、XPS(XML Paper Specification)に含まれる印刷設定データであるPrintTicketを生成したりする。
OSフィルターモジュール312には、Microsoft社によって開発された印刷処理が組み込まれている。
図4は、本発明の印刷処理に関わるソフトウェアモジュールがRAM102にロードされCPU101によって実行された際の、動的なプログラムオブジェクトの配置を示す図である。
アプリケーション401は文書を作成し、作成した文書を元にプリンタードライバーに印刷処理を行わせるためのソフトウェアである。ユーザーによって印刷指示が与えられると、アプリケーション401は文書をXPSに変換し、OS112の提供する印刷APIを通じてXPSをフィルターパイプラインマネージャー402に送信する。
V4(Version4)プリンタードライバーでは、XPSプリントフィルターパイプラインと呼ばれるプログラミングモデルに従って印刷処理が実行される。
XPSプリントフィルターパイプラインにおける印刷処理を行うモジュールはフィルターと呼ばれる。そして、複数のフィルターはフィルターパイプラインマネージャー402によって順にデータを処理する。具体的には、あるフィルターの出力がその次に連結されたフィルターの入力となり、各フィルターが入力に対し順次処理を実行することによってプリンター20に送信するPDL(Printer Description Language)を生成する仕組みになっている。
なお、本明細書ではフィルター間でやりとりされるデータ(XPSやPCL)や、後述するプロパティバッグに格納されるバイパスオブジェクトを印刷データとも呼ぶ。
フィルターパイプラインマネージャー402はXPSを受信すると、パイプラインコンフィグファイル304を読み込み、記述されたフィルター構成情報にしたがってフィルターをロードし、フィルター間の入出力インターフェースを連結する。
図4では画像化フィルター403、XPS標準フィルター404、コマンドフィルター405はフィルターパイプラインマネージャー402によってロードされたフィルターである。そのうち、画像化フィルター403とコマンドフィルター405はベンダーフィルターモジュール305に組み込まれているフィルターである。一方、XPS標準フィルター404はOSフィルターモジュール312に組み込まれているMicrosoft社のフィルター(MSxpsPCL6.dll)である。
なお、XPS標準フィルター404は画像コマンドとして、非可逆圧縮の画像コマンドを可逆圧縮の画像形式であるDelta Row Compressionを適用した画像コマンドに変換してPCL(Printer Command Language)を出力する。その結果、非可逆圧縮の画像コマンドから構成されたPCLよりも、XPS標準フィルター404によって出力されたPCLのデータサイズの方が大きくなる特性がある。
本明細書では受信したXPSはXPS標準フィルター404又はコマンドフィルター405によりPCLに変換されて出力される。フィルターによって出力されたPCLは、スプーラー406によってバッファリングされ、ポートモニター407によってプリンター20に送信される。
パイプラインプロパティバッグ408は、すべてのフィルターがアクセスすることができるデータ管理用の保存領域である。互いに入出力のインターフェースが連結されていないフィルター同士であっても、パイプラインプロパティバッグ408に対してデータを登録したり取得したりできるため、画像化フィルター403からコマンドフィルター405に対して、間にあるXPS標準フィルターを介さず情報を送信することが可能である。
バイパスオブジェクト409はパイプラインプロパティバッグ408を通じて送受信されるデータオブジェクトである。また、バイパスオブジェクト409には後述する画像オブジェクト411とページ設定オブジェクト412が格納される。
図5は、第1の実施形態における画像化フィルター403の印刷処理を示すフローチャートである。
はじめに、画像化フィルター403は、フィルターパイプラインマネージャー402によってロードされると、画像オブジェクト411とページ設定オブジェクト412が存在しない空のバイパスオブジェクト409を生成し、パイプラインプロパティバッグ408に登録する(S101)。
次に、画像化フィルター403は、フィルターパイプラインマネージャー402が提供するAPIを通じて、アプリケーション401から入力されたXPSを構成するパーツにアクセスし、Job−level PrintTicketを取得し、解析する(S102)。
図8にXPSのデータ例を模式図で示す。
XPSはパーツと呼ばれるデータを構成要素とする文書フォーマットである。そして、パーツ同士はXPS内で互いに関連付けられている。
XPSの文書構造を構成するパーツにはFixedDocumentSequence、FixedDocument、FixedPageがあり、それぞれジョブ、ドキュメント、ページという文書の階層構造を表現している。ここで、FixedPageは、XPSで規定された様々な描画コマンドが記述されたXML形式のデータである。さらに各文書構造のパーツには印刷設定をXML形式で表現したPrintTicketと呼ばれるパーツが関連付けられる。
PrintTicketは、どの文書構造のパーツに関連付けられているかによってそれぞれJob−level PrintTicket、Document−level PrintTicket、Page−level PrintTicketと呼び分けられる。Job−level PrintTicketはジョブ全体に渡る印刷設定を表現し、Document−level PrintTicketはページの集まりであるドキュメントに対する印刷設定を表現する。Page−level PrintTicketは各ページ固有の印刷設定を表現する。
そして、画像化処理を適用した印刷方法を有効にするかどうかを示す情報はJob−level PrintTicketに記述される。以降、この情報がJob−level PrintTicketに記述されるまでの流れを説明する。
本発明におけるV4プリンタードライバーの機能を定義するGPDファイル303には、画像化処理を適用した印刷方法を有効にするか否か、という機能情報が記述されている。これにより、GPDファイル303を元にOSコンフィグモジュール311によって表示された印刷設定画面では、ユーザーが画像化処理適用の有効または無効を選択的に入力することができる。アプリケーション401で印刷指示が行われると、OSコンフィグモジュール311は、前述の印刷設定画面によって画像化処理を有効にするか否か、すなわち画像化処理を行うか否かの設定を受け付け、受け付けた設定をPrintTicket形式に変換する。変換されたPrintTicketは、アプリケーション401がXPSを生成する際にJob−level PrintTicketとしてXPS内に書き込まれる。
再度図5に戻り説明を続ける。
画像化フィルター403は、Job−level PrintTicketを解析した結果、画像化処理の印刷設定が有効化されていればステップS104に進み、そうでなければS110に進む(S103)。
以降、先に画像化処理有効時のフローであるS104〜S109の説明を行う。
画像化フィルター403は、フィルターパイプラインマネージャー402が提供するAPIを通じて、FixedPageのパーツを取得することができるかどうかを判断する(S104)。パーツが取得できたときはS105に進む。次のFixedPageがAPIを通じて取得できなかったときは、それは画像化フィルター403がジョブに含まれる全ページを処理し終わったことを表すので、画像化フィルター403の処理を終了する。
次に、画像化フィルター403は、後述するコマンドフィルター405による取得イベントが発生するまで待機し(S105)、取得イベントが発生したら次に進んで取得したFixedPageを画像化し(S106)、画像をバイパスオブジェクト上の画像オブジェクト411として登録する(S107)。
本実施形態において、バイパスオブジェクト上の画像オブジェクト411とページ設定オブジェクト412は、ある1つのページに関する情報だけを保存するよう設計されている。また、画像化フィルター403とコマンドフィルター405は、それぞれ別のスレッドにおいて非同期に実行されるプログラムである。したがって、画像化された1ページの画像を画像化フィルター403が登録してからコマンドフィルター405が取得し、取得が終わってから、画像化された次のページの画像を画像化フィルター403が登録、というようにタイミングを合わせる必要がある。
ここで用いられるのが、取得イベントと登録イベントという2つのイベントである。
取得イベントはコマンドフィルター405が画像オブジェクト411とページ設定オブジェクト412を取得することで発生する。そして、画像化フィルター403は取得イベントが発生するまで画像オブジェクト411とページ設定オブジェクト412を登録することができない。よって、取得イベントが発生するまで、換言すればコマンドフィルター405による画像オブジェクト411とページ設定オブジェクト412の取得が完了するまで、画像化フィルター403による画像オブジェクト411とページ設定オブジェクト412の登録を待機させることができる。
一方の登録イベントは取得イベントと対になるイベントであり、画像化フィルター403が画像オブジェクト411とページ設定オブジェクト412を登録することで発生する。そして、コマンドフィルター405は登録イベントが発生するまで画像オブジェクト411とページ設定オブジェクト412を取得することができない。
なお、本実施例では取得イベントと登録イベントとしてはWindows(登録商標)のイベントを、待機処理はWaitforMultipleObjectのAPIを、待機状態解除の処理はSetEventのAPIを用いるものとする。
また、S106のFixedPageの画像化とは、FixedPageに含まれるXPSの描画コマンド(文字コマンド、図形コマンド、画像コマンド)をラスター画像に変換することである。本実施例では、画像化はOS112の提供するXPS Rasterization Serviceを用いて、FixedPage全体を1枚のラスター画像に変換するものとする。また、ラスター画像は高速かつ高画質な印刷が可能なJPEG圧縮形式を採用するものとする。これによってS106で印刷データのページがラスター画像に変換されて、S107で印刷データとして保存領域に保存される。
次に、画像化フィルター403は、フィルターパイプラインマネージャー402が提供するAPIを通じて、Page−level PrintTicketのパーツを取り出し、バイパスオブジェクト上のページ設定オブジェクト412として登録する(S108)。
次に、画像化フィルター403は登録イベントを発生させる(S109)。
S109を実行したら次のページを処理するために画像化処理有効時フローの先頭であるS104に戻る。
一方、S110〜S111は画像化処理無効時のフローである。
画像化フィルター403は、S104と同様の方法で次のFixedPageを取得できるか判断し(S110)、画像化処理は不要なのでFixedPageが取得できた場合は取得したFixedPageをそのまま次のフィルターであるXPS標準フィルター404に送信する(S111)。次のFixedPageが取得できなかったとき、すなわち全ページの処理が終わったら、フィルターの処理を終了する。
図5のフローチャートの説明から明らかなように、第1の実施形態においてXPS標準フィルター404が動作するのは画像化処理が無効でかつS111が実行されたときに限定される。
以降、XPS標準フィルター404の動作について説明する。
XPS標準フィルター404は印刷データを変換してコマンドフィルター405に送信する。具体的には、XPS標準フィルター404はXPSを変換し、PCLを出力する。よって、まず最初に図9(a)を用いてPCLのデータ構造を説明する。
PCLのデータ構造もXPSと同様に文書構造を表す階層を有しており、上からPJL、Session、Pageとなっている。PageはOrientationやMediaSizeといった印刷設定コマンドと、Text、Graphics、Imageの各種描画コマンドから構成される。
図6は、第1の実施形態におけるXPS標準フィルター404の印刷処理を示すフローチャートである。
はじめに、XPS標準フィルター404は、Job−level PrintTicketを解析し(S201)、解析結果を元にPCLにおけるPJLとSessionを生成し(S202)、コマンドフィルター405に送信する(S203)。
次に、XPS標準フィルター404は、次のFixedPageが存在するか判定し(S204)、次のFixedPageが存在すれば、次のFixedPageをPCLのPageに変換し(S205)、コマンドフィルター405に送信する(S206)。
次のFixedPageが取り出せなかったとき、すなわち全ページの処理が終わったら、フィルターの処理を終了する。
図7は、第1の実施形態におけるコマンドフィルター405の印刷処理を示すフローチャートである。
はじめに、Job−level PrintTicketに記述された印刷設定を解析して(S302)、画像化処理が有効かどうか判断する(S303)。画像化処理が有効である場合はステップS304に進み、そうでない場合はS313に進む。
画像化処理が有効である場合、コマンドフィルター405は、PCLのPJLとSessionをJob−level PrintTicketから生成し(S304)、フィルターパイプラインマネージャーに送信する(S305)。
次に、各ページに対する処理として、S306〜S312において、バイパスオブジェクトから取得した情報を元にPCLのPageを生成、送信する。
より詳細には、まず画像化フィルター403による登録イベントが発生するまで待機する(S306)。
登録イベントが発生したら、バイパスオブジェクトから次の画像オブジェクト411が取得可能か判断し(S307)、あれば画像オブジェクト411を取得し(S308)、なければ処理を終了する。すなわち、S308によってコマンドフィルター405は保存領域から印刷データを取得する。
また、画像オブジェクト411に関連付けられたページ設定オブジェクト412(Page−level PrintTicket)を取得する(S309)。
画像オブジェクト411を元にPCLのImageコマンドを生成し、ページ設定オブジェクト412(Page−level PrintTicket)を元にOrientationやMediaSizeのコマンドを生成し、それらの情報を元にPCLのPageを生成する(S310)。そして、生成したPageをパイプラインマネージャーに送信する(S311)。
Pageの送信が終わるたびに、画像化フィルター403に画像オブジェクト411とページ設定オブジェクト412を登録させるために取得イベントを発生させる(S312)。
S307ですべての画像を取得したと判断されたらフィルターの処理を終了する。
S306〜S312で生成されるPCLは、画像化処理を適用したPCLであり、各Pageの描画コマンドは、画像化されたページ全体を描画するための1つのImageコマンドだけから構成される(図9(b)に例を示す)。
一方、S303で画像化処理が無効であると判断された場合、コマンドフィルター405は、XPS標準フィルターから送信されたPCLコマンドを取得し、フィルターパイプラインマネージャーに送信する(S313〜S315)。取得するPCLコマンドがなくなったらコマンドフィルター405の処理を終了する。
なお、図5と図7のフローチャートに示した処理において、バイパスオブジェクト409上には1ページ分だけの情報を登録したが、複数ページ分登録するよう構成しても良い。
ところで、Windows(登録商標) 8ではPCLだけでなくPS(Post Script)をサポートする標準XPSフィルター(MSxpsPS.dll)も提供されているが、本実施例で述べた方法がPCLと同様に適用可能であることは言うまでもない。
以上、本発明を実施するための第1の実施形態では、画像とページ設定の情報を、XPS標準フィルター404を経由せずコマンドフィルター405に送信することにより、画像化処理を適用したPCLが生成可能であることを示した。
[第2の実施形態]
次に、図10と図11を用いて、本発明を実施するための第2の実施形態について説明する。
第1の実施形態では画像化処理有効時はXPS標準フィルター404にデータを何も送信しなかったが、第2の実施形態では白紙のFixedPageから構成されるXPSを送信する方法を示す。
図10は第2の実施形態における、画像化フィルター403の処理の流れを示すフローチャートである。
S401〜S407は、S101〜S107と同一である。
すなわち、画像化処理有効時にFixedPageを画像化し、画像をバイパスオブジェクト409に登録するところまでは第1の実施形態と同じである。
次に、画像化フィルター403は、白紙のFixedPageをXPS標準フィルター404に送信し(S408)、登録イベントを発生させる(S409)。
白紙のFixedPageとは、FixedPage内に描画コマンドを何も含まないFixedPageを指す。
描画コマンドを何も含まないFixedPageをXPS標準フィルター404に送信すれば、XPS標準フィルター404は描画コマンドを何も含まないPCLのPageを生成し、コマンドフィルター405に送信する。
ただし、画像化フィルター403は、送信する白紙のFixedPageに、元のFixedPageのPage−level PrintTicketを関連付けてXPS標準フィルター404に送信する。よって、XPS標準フィルター404が出力するPCLには、図9(c)に示すように、PageにOrientationやMediaSizeといったページ設定コマンドが含まれる。
後述するが、コマンドフィルター405はページ設定コマンドを含むが描画コマンドは含まないこのPageに画像オブジェクト411をImageコマンドとして挿入することにより、図9(b)に示すPCLを生成することが可能となる。
画像化処理無効時の処理S410〜S411は、S110〜S111と同様である。
図11は第2の実施形態における、コマンドフィルター405の処理の流れを示すフローチャートである。
S502〜S503は、S302〜S303と同様である。
すなわち、画像化処理が有効であるか判断するところまでは第1の実施形態と同じである。
次に、コマンドフィルター405は、XPS標準フィルター404から送信されたPCLコマンドが存在すれば取得する(S504〜S505)。
次に取得したPCLコマンドが白紙のPageであるか判断し(S507)、白紙のPage以外のコマンドであればそのままフィルターパイプラインマネージャー402に送信し(S508)、新たなPCLコマンドをXPS標準フィルター404から受信するステップ(S504)に戻る。白紙のPageが取得できた場合は、登録イベントが発生するまで待機し(S509)、登録イベントが発生したら、バイパスオブジェクトから画像オブジェクト411を取得し(S510)、描画コマンドを何も含まない白紙のPage内に、S510で取得したバイパスオブジェクトの画像オブジェクト411をImageコマンドとして挿入する(S511)。
Imageコマンドが挿入された新たなPageができたらフィルターパイプラインマネージャー402に送信し(S512)、取得イベントを発生させる(S513)。
画像化処理無効時の処理S514〜S516は、S313〜S315と同一である。
以上により、第2の実施形態における印刷処理でも、図9(b)と同じ、ページ設定のコマンドと、ページの画像を表す1つのImageコマンドを含むPageからなるPCLを生成可能であることを示した。
第2の実施形態における方法では、ページ設定のOrientationやMediaSizeのページ設定コマンドをXPS標準フィルター404に行わせるため、コマンドフィルター405におけるページ設定コマンドの生成処理を省略できるという特徴がある。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。

Claims (8)

  1. 印刷データを処理するために複数のフィルターを実行可能な情報処理装置であって、
    第1の印刷データのページをラスター画像に変換する画像化処理を行うか否かの設定を受け付けるモジュールを有し、
    前記複数のフィルターは、前記画像化処理を実行する第1のフィルター、前記第1の印刷データを所定のページ記述言語の第2の印刷データに変換する変換処理を実行する第2のフィルターと第3のフィルターを含み、
    前記画像化処理を行う設定を受け付けている場合、前記第1のフィルターが前記第1の印刷データの各ページを前記ラスター画像に変換し、前記ラスター画像を記憶領域に第3の印刷データとして保存し、前記第3のフィルターが前記第2のフィルターによる前記変換処理が行われていない前記第3の印刷データを前記記憶領域から取得して、
    前記画像化処理を行わない設定を受け付けている場合、前記第1のフィルターが前記第1の印刷データを前記第2のフィルターに送信し、前記第2のフィルターは前記第1の印刷データを前記第2の印刷データに変換し、前記第3のフィルターが前記第2の印刷データを取得することを特徴とする情報処理装置。
  2. 前記モジュールは前記画像化処理を行うか否かの設定を受け付ける印刷設定画面を表示することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第1のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に、前記第1の印刷データのページを前記ラスター画像に変換して前記第3の印刷データとして前記記憶領域に保存し、白紙のページを前記第2のフィルターに送信し、
    前記第3のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に、前記第3の印刷データを前記白紙のページに挿入することを特徴とする請求項1又は請求項2に記載の情報処理装置。
  4. 前記第1のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に第1のイベントが発生するまで待機し、前記第1のイベントが発生した場合は、前記第3の印刷データを前記記憶領域に保存し、第2のイベントを発生させ、
    前記第3のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に前記第2のイベントが発生するまで待機し、前記第2のイベントが発生した場合は、前記記憶領域から前記第3の印刷データを取得し、前記第1のイベントを発生させることを特徴とする請求項1乃至のいずれか1項に記載の情報処理装置。
  5. 印刷データを処理するために複数のフィルターを実行可能なコンピュータにおいて実行されるプログラムであって、
    前記コンピュータに、第1の印刷データのページをラスター画像に変換する画像化処理を行うか否かの設定を受け付けるモジュールを実行させ、
    前記複数のフィルターは、前記画像化処理を実行する第1のフィルター、前記第1の印刷データを所定のページ記述言語の第2の印刷データに変換する変換処理を実行する第2のフィルターと、第3のフィルターを含み、
    前記画像化処理を行う設定を受け付けている場合、前記第1のフィルターが前記第1の印刷データの各ページを前記ラスター画像に変換し、前記ラスター画像を記憶領域に第3の印刷データとして保存し、前記第3のフィルターが前記第2のフィルターによる前記変換処理が行われていない前記第3の印刷データを前記記憶領域から取得して、
    前記画像化処理を行わない設定を受け付けている場合、前記第1のフィルターが前記第1の印刷データを前記第2のフィルターに送信し、前記第2のフィルターは前記第1の印刷データを前記第2の印刷データに変換し、前記第3のフィルターが前記第2の印刷データを取得することを特徴とするプログラム。
  6. 前記モジュールは前記画像化処理を行うか否かの設定を受け付ける印刷設定画面を表示することを特徴とする請求項5に記載のプログラム。
  7. 前記第1のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に、前記第1の印刷データのページを前記ラスター画像に変換して前記第3の印刷データとして前記記憶領域に保存し、白紙のページを前記第2のフィルターに送信し、
    前記第3のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に、前記第3の印刷データを前記白紙のページに挿入することを特徴とする請求項5又は請求項6に記載のプログラム。
  8. 前記第1のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に第1のイベントが発生するまで待機し、前記第1のイベントが発生した場合は、前記第3の印刷データを前記記憶領域に保存し、第2のイベントを発生させ、
    前記第3のフィルターは、前記画像化処理を行う設定を前記モジュールが受け付けた場合に前記第2のイベントが発生するまで待機し、前記第2のイベントが発生した場合は、前記記憶領域から前記第3の印刷データを取得し、前記第1のイベントを発生させることを特徴とする請求項5乃至7のいずれか1項に記載のプログラム。
JP2014151195A 2014-07-24 2014-07-24 情報処理装置、プログラム及び制御方法 Active JP6376876B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014151195A JP6376876B2 (ja) 2014-07-24 2014-07-24 情報処理装置、プログラム及び制御方法
US14/802,855 US9766839B2 (en) 2014-07-24 2015-07-17 Information processing apparatus, control method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014151195A JP6376876B2 (ja) 2014-07-24 2014-07-24 情報処理装置、プログラム及び制御方法

Publications (3)

Publication Number Publication Date
JP2016024788A JP2016024788A (ja) 2016-02-08
JP2016024788A5 JP2016024788A5 (ja) 2017-08-31
JP6376876B2 true JP6376876B2 (ja) 2018-08-22

Family

ID=55166984

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014151195A Active JP6376876B2 (ja) 2014-07-24 2014-07-24 情報処理装置、プログラム及び制御方法

Country Status (2)

Country Link
US (1) US9766839B2 (ja)
JP (1) JP6376876B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10540129B2 (en) * 2016-09-15 2020-01-21 Ricoh Company, Ltd. Information processing device, information processing system, and information processing method for executing script included in print information

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999710A (en) * 1997-06-17 1999-12-07 Hewlett-Packard Company Merge plane generation for a data processing pipeline
US6661526B1 (en) * 1999-05-04 2003-12-09 Hewlett-Packard Development Company, L.P. Printer drivers using filters that are operating system-independent and printer-independent
JP3700561B2 (ja) * 2000-08-30 2005-09-28 松下電器産業株式会社 バッファ制御装置
JP2006215879A (ja) 2005-02-04 2006-08-17 Canon Inc 画像処理装置
US20080117453A1 (en) * 2006-11-21 2008-05-22 Yoshiyuki Toda Image processor, image processing method, and linked printing control screen generation method
JP4891052B2 (ja) * 2006-12-20 2012-03-07 キヤノン株式会社 情報処理装置、プレビュー方法、プログラム、及び記憶媒体
US8537408B2 (en) * 2006-12-20 2013-09-17 Canon Kabushiki Kaisha Information processing apparatus, information processing method, program, and storage medium
JP4363463B2 (ja) * 2007-06-22 2009-11-11 ブラザー工業株式会社 印刷制御装置およびプリンタドライバのプログラム
JP2009083265A (ja) * 2007-09-28 2009-04-23 Konica Minolta Business Technologies Inc 画像形成方法及び画像形成装置
JP5145871B2 (ja) * 2007-10-30 2013-02-20 株式会社リコー 画像処理装置およびアプリケーション実行方法
JP4619399B2 (ja) * 2007-12-11 2011-01-26 キヤノンItソリューションズ株式会社 情報処理装置及び処理方法、並びにプログラム
KR101219428B1 (ko) * 2008-03-24 2013-01-11 삼성전자주식회사 필터를 동적으로 호출 가능한 인쇄방법, 상기 인쇄방법을수행할 수 있는 프로그램이 수록된 기록매체 및 호스트장치
JP5121563B2 (ja) * 2008-05-13 2013-01-16 キヤノン株式会社 情報処理装置および情報処理方法、プログラム
US20100214599A1 (en) * 2009-02-26 2010-08-26 Konica Minolta Systems Laboratory, Inc. Method for printing with XPSDrv printer driver
JP5478937B2 (ja) * 2009-05-19 2014-04-23 キヤノン株式会社 情報処理装置、制御方法、プログラム
JP2012104002A (ja) * 2010-11-12 2012-05-31 Konica Minolta Business Technologies Inc 印刷システム及びプリンタドライバ並びに画像形成装置
JP5734089B2 (ja) * 2011-05-20 2015-06-10 キヤノン株式会社 情報処理装置および制御方法およびプログラム

Also Published As

Publication number Publication date
US20160026903A1 (en) 2016-01-28
JP2016024788A (ja) 2016-02-08
US9766839B2 (en) 2017-09-19

Similar Documents

Publication Publication Date Title
JP5793830B2 (ja) 情報処理装置、印刷制御プログラム、および記憶媒体
JP5531531B2 (ja) 画像処理システム及び画像処理プログラム
US9304727B2 (en) Non-transitory computer-readable storage medium and method of adding print feature to output of printer driver
JP6454213B2 (ja) 画像出力システム、画像処理装置、画像出力装置、これらにおける方法及びプログラム
US8625133B2 (en) Print data processing apparatus, print data processing method, and storage medium
JP2007249860A (ja) 情報処理装置におけるプリンタドライバ変更方法とプログラム
US9928018B2 (en) Information processing apparatus and control method thereof, for a drawing control technique of a printer driver
US20080018933A1 (en) Image forming apparatus, image forming method and recording medium
JP6632424B2 (ja) 情報処理装置、プログラム及び制御方法
JP2007157121A (ja) 情報処理装置及びプレビュー表示方法
JP6447564B2 (ja) 画像形成装置、プログラム及び情報処理システム
US10078798B2 (en) Method of generating transformed print jobs
JP6376876B2 (ja) 情報処理装置、プログラム及び制御方法
CN101751237B (zh) 信息处理装置及信息处理方法
US10310788B2 (en) Control method for generating data used for printing and information processing apparatus
US9626131B2 (en) Print data processing method, print data processing apparatus, and storage medium for processing print data according to print setting information in the print data
US9253343B2 (en) Information processing apparatus, control method, and storage medium for providing a preview and/or display of a main display document generated from all parts of a print document
JP6234417B2 (ja) 情報処理装置及びその制御方法とプログラム
JP6437076B2 (ja) 情報処理装置及びその制御方法とプログラム
US9613301B2 (en) Print data processing apparatus and non-transitory computer readable medium storing program for deforming image elements of a watermark from intermediate print data
US9858510B2 (en) Information processing apparatus, method for controlling the same, and storage medium for conversion processing using plural geometric transformations on image data
JP6007015B2 (ja) 画像形成装置及び画像形成プログラム
JP2012113591A (ja) ジョブ結合印刷制御装置および方法およびプログラム
JP5611014B2 (ja) 情報処理装置、その制御方法及びプログラム
JP2016134045A (ja) 印刷制御装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170714

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170714

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180508

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180626

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180724

R151 Written notification of patent or utility model registration

Ref document number: 6376876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151