JP2013025412A - 印刷制御プログラム、情報処理装置及び記録媒体 - Google Patents

印刷制御プログラム、情報処理装置及び記録媒体 Download PDF

Info

Publication number
JP2013025412A
JP2013025412A JP2011157176A JP2011157176A JP2013025412A JP 2013025412 A JP2013025412 A JP 2013025412A JP 2011157176 A JP2011157176 A JP 2011157176A JP 2011157176 A JP2011157176 A JP 2011157176A JP 2013025412 A JP2013025412 A JP 2013025412A
Authority
JP
Japan
Prior art keywords
command
alpha
bitmap
print
image
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.)
Granted
Application number
JP2011157176A
Other languages
English (en)
Other versions
JP5849485B2 (ja
Inventor
Yoshihiko Shimodaira
佳彦 下平
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2011157176A priority Critical patent/JP5849485B2/ja
Priority to US13/485,121 priority patent/US9030709B2/en
Publication of JP2013025412A publication Critical patent/JP2013025412A/ja
Application granted granted Critical
Publication of JP5849485B2 publication Critical patent/JP5849485B2/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/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1208Improving or facilitating administration, e.g. print management resulting in improved quality of the output result, e.g. print layout, colours, workflows, print preview
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/62Semi-transparency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

【課題】プリンタドライバ側で適切にアルファブレンド処理をすることで、アルファブレンド処理をサポートしていないプリンタであっても、適切なアルファブレンド画像を印刷する。
【解決手段】印刷制御プログラムは、ページ開始命令及び描画命令をOSから受信する描画受信ステップと、ページ開始命令が受信された場合、ビットマップを生成する生成ステップと、描画命令に従ってビットマップに描画する場合、描画命令がアルファチャンネル付きイメージを含むとき、アルファチャンネル付きのイメージに対してアルファブレンドしてビットマップに描画し、アルファブレンドされた透過領域を複製する透過処理ステップと、描画命令を印刷コマンドに変換する場合、アルファチャンネル付きイメージの描画命令に対しては透過領域を描画するための印刷コマンドに変換する描画処理ステップと、をコンピュータに実行させる。
【選択図】図5

Description

本発明は、透過処理を制御する印刷制御プログラム、情報処理装置及び記録媒体に関する。
従来から、二つの画像を係数(アルファ値)により合成するアルファブレンドという技術が知られている。このアルファ値は、一般的には画素の不透明度を示す。例えば、このアルファ値は、各ピクセルに対し、色表現のデータとは別に持たせた補助データに保持される。この補助データは、一般的にアルファチャンネルと呼ばれている。
図1は、アルファチャンネル付きビットマップをサポートしているPDL(Page Description Language)を使用した場合の印刷制御処理の一例を示すシーケンス図である。
アプリケーションは、アルファチャンネル付きビットマップ(透過イメージ)を描画し、透過イメージをOS(Operating System)に出力する(S101)。プリンタドライバは、OSからアルファチャンネル付きビットマップを受信し(S102)、プリンタにアルファチャンネルが付いたままのビットマップを送信する(S103)。
プリンタは、アルファチャンネル付きビットマップをサポートしているのでアルファチャンネルに基づいて透過処理を行い、印刷する。
一方で、プリンタドライバが、アルファチャンネル付きのビットマップをサポートしていない場合がある。このとき、プリンタドライバは、OSにアルファチャンネル付きビットマップを処理できない(サポートしていない)ことを通知する。OSは、アルファブレンドの必要がない形式の描画命令をプリンタドライバに出力する。
図2は、アルファチャンネル付きビットマップをサポートしていないPDLを使用した場合の印刷制御処理の一例を示すシーケンス図である。
この例でのプリンタは、アルファチャンネル付きビットマップをサポートしていないため、プリンタドライバからアルファチャンネル付きビットマップを受信することができない。そのため、プリンタドライバもアルファチャンネル付きビットマップを受信することができない。そこで、プリンタドライバは、OSにアルファチャンネル付きビットマップをサポートしていないことを通知しておく。
アプリケーションは、アルファチャンネル付きビットマップ(透過イメージ)を描画し、透過イメージをOSに出力する(S201)。
OSは、プリンタドライバがアルファチャンネル付きビットマップをサポートしていない場合、アルファブレンドが必要ない形式に変換する(S202)。OSは、変換後のビットマップ(通常イメージ)に対する描画命令を、プリンタドライバに出力する(S203)。ここで、プリンタドライバに出力される描画命令は、たいていの場合、通常のビットマップ形式を使用した描画命令になる。
プリンタドライバは、アルファブレンドが必要ない描画命令を受信し、その描画命令をPDLコマンドに変換してプリンタに送信する(S204)。
また、プリンタドライバからアルファチャンネル付きビットマップの描画コマンドを受信した場合に、アルファブレンドの処理を行うことができないプリンタは、適切な透過処理を行うことができない。
これに対し、特許文献1には、プリンタ側で、アルファブレンド指定をアルファ値に応じた面積情報に置換し、描画コマンドを、面積情報に応じた処理を行う描画コマンドに変換することが開示されている。
しかし、従来技術では、プリンタで描画される、アルファブレンドが必要ない形式の描画コマンドによるビットマップが、アプリケーション画面に表示されるビットマップと異なってしまう場合がある。
つまり、従来技術では、擬似的に透過を行っているだけで、アプリケーションが期待する透過イメージを適切に描画できていないという問題があった。例えば、画素ごとにアルファ値が異なる場合には、従来技術では忠実なアルファブレンドを行うことができない。
そこで本発明は、上記問題に鑑みてなされたものであり、プリンタドライバ側で適切にアルファブレンド処理をすることで、アルファブレンド処理をサポートしていないプリンタであっても、適切なアルファブレンド画像を印刷することができる印刷制御プログラム、情報処理装置及び記録媒体を提供することを目的とする。
本発明の一態様における印刷制御プログラムは、ページ開始命令及び描画命令をOSから受信する描画受信ステップと、前記ページ開始命令が受信された場合、ビットマップを生成する生成ステップと、前記描画命令に従って前記ビットマップに描画する場合、前記描画命令がアルファチャンネル付きイメージを含むとき、前記アルファチャンネル付きのイメージに対してアルファブレンドして前記ビットマップに描画し、アルファブレンドされた透過領域を複製する透過処理ステップと、前記描画命令を印刷コマンドに変換する場合、前記アルファチャンネル付きイメージの描画命令に対しては前記透過領域を描画するための印刷コマンドに変換する描画処理ステップと、をコンピュータに実行させる。
また、本発明の他の態様における情報処理装置は、ページ開始命令及び描画命令をOSから受信する描画受信手段と、前記ページ開始命令が受信された場合にビットマップを生成し、前記描画命令に従って前記ビットマップに描画する場合、前記描画命令がアルファチャンネル付きイメージを含むとき、前記アルファチャンネル付きのイメージに対してアルファブレンドして前記ビットマップに描画し、アルファブレンドされた透過領域を複製する透過処理手段と、前記描画命令を印刷コマンドに変換する場合、前記アルファチャンネル付きイメージの描画命令に対しては前記透過領域を描画するための印刷コマンドに変換する描画処理手段と、を備える。
また、本発明は、本発明のプログラムを記録した記録媒体をコンピュータに読み取らせて実現することも可能である。
本発明によれば、プリンタドライバ側で適切にアルファブレンド処理をすることで、アルファブレンド処理をサポートしていないプリンタであっても、適切なアルファブレンド画像を印刷することができる。
アルファチャンネル付きビットマップをサポートしているPDLを使用した場合の印刷制御処理の一例を示すシーケンス図。 アルファチャンネル付きビットマップをサポートしていないPDLを使用した場合の印刷制御処理の一例を示すシーケンス図。 実施例1における印刷制御システムの一例を示す図。 実施例1における情報処理装置のハードウェアの一例を示すブロック図。 実施例1におけるプリンタドライバのモジュール構成の一例を示す図。 実施例1における印刷制御処理の一例を示すシーケンス図。 印刷コマンドの一例を示す図。 実施例2におけるプリンタドライバのモジュール構成の一例を示すブロック図。 EMFデータの一例を示す図。 実施例2における印刷制御処理の一例を示すシーケンス図。 実施例2における印刷制御処理の概要を示す図。
以下、本発明の各実施例を図面に基づいて説明する。
[実施例1]
<システムとハードウェア>
図3は、実施例1における印刷制御システムの一例を示す図である。図3に示すように、印刷制御システムは、情報処理装置10とプリンタ20とがネットワークを介して接続されている。接続される機器の数は図1に示す例に限られない。
図3に示す情報処理装置10は、例えばWordなどのアプリケーション101、例えばWindows(登録商標)などのOS102、印刷制御を行うプリンタドライバ103を備える。
アプリケーション101は、印刷したい内容を、OS102が用意するAPI(Application Program Interface)を使用して描画する。
OS102は、アプリケーション101からの描画命令をプリンタドライバ103用の描画命令(DDI(Device Driver Interface)命令)に変換する。
プリンタドライバ103は、OS102から受信した描画命令をプリンタ20が解釈できる印刷コマンド(PDLコマンド)に変換して、プリンタ20に送信する。
プリンタ20は、受信した印刷コマンド(PDLコマンド)を解析し、印刷コマンドに従って描画した画像を印刷する。
次に、実施例1における情報処理装置10のハードウェアについて説明する。図4は、実施例1における情報処理装置10のハードウェアの一例を示すブロック図である。図4に示すように、情報処理装置10は、制御部11、主記憶部12、補助記憶部13、外部記録装置I/F部14、ネットワークI/F部15、入力部16、表示部17を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
制御部11は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPU(Central Processing Unit)である。また、制御部11は、主記憶部12に記憶されたプログラムを実行する演算装置であり、入力装置や記憶装置からデータを受け取り、演算、加工した上で、出力装置や記憶装置に出力する。
主記憶部12は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部11が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
補助記憶部13は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
外部記録装置I/F部14は、USB(Universal Serial Bus)などのデータ伝送路を介して接続された記録媒体18(例えば、フラッシュメモリなど)と情報処理装置10とのインタフェースである。
また、記録媒体18に、所定のプログラムを格納し、この記録媒体18に格納されたプログラムは外部記録装置I/F部14を介して情報処理装置10にインストールされる。インストールされた所定のプログラムは、情報処理装置10により実行可能となる。
ネットワークI/F部15は、有線及び/又は無線回線などのデータ伝送路により構築されたLAN(Local Area Network)、WAN(Wide Area Network)などのネットワークを介して接続された通信機能を有する周辺機器と情報処理装置10とのインタフェースである。
入力部16は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部17の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部16は、ユーザが制御部11に操作指示を与えたり、データを入力したりするためのユーザインタフェースである。
表示部17は、CRTやLCD(Liquid Crystal Display)等を含み、制御部11から入力される表示データに応じた表示が行われる。
<モジュール構成>
次に、情報処理装置10のモジュール構成について説明する。図5は、実施例1におけるプリンタドライバ103のモジュール構成の一例を示す図である。プリンタドライバ103は、例えば補助記憶部13に記憶される印刷制御プログラムが制御部11により実行されることで機能する。
プリンタドライバ103は、UI(User Interface)部201、描画部202を含む。描画部202は、描画命令受信部203、透過処理部204、描画処理部205を含む。
UI部201は、ユーザに対し、印刷設定用にUIを提供する。また、UI部201は、アプリケーション101と印刷設定に関するネゴシエーションを行う。
描画命令受信部203は、OS102からのページ開始命令及び描画命令を受信し、受信したページ開始命令及び描画命令を描画処理部205に出力する。ページ開始命令は、印刷ページの開始を知らせる命令である。
描画処理部205は、描画命令受信部203から取得したページ開始命令及び描画命令を透過処理部204に出力する。また、描画処理部205は、描画命令受信部203から取得した描画命令を印刷コマンド(PDLコマンド)に変換し、プリンタ20に送信する。
また、描画処理部205は、取得した描画命令が、アルファチャンネル付きビットマップの描画命令である場合、後述する透過処理部204により複製された透過領域を描画する印刷コマンドに変換する。以下、アルファチャンネル付きビットマップを、アルファチャンネル付きイメージ又は透過イメージとも呼ぶ。
透過処理部204は、描画処理部205からページ開始命令を受けた場合、24BPP(Bits Per Pixel)ビットマップを生成する。作成されたビットマップは、例えば透過処理部204の内部メモリに保存される。また、透過処理部204は、描画処理部205から取得した描画命令に従ってビットマップに描画する。
透過処理部204は、アルファチャンネル付きビットマップに必要な背景色を保持する。透過処理部204は、描画命令がアルファチャンネル付きのビットマップの描画命令である場合、アルファブレンドしてビットマップに描画する。透過処理部204は、アルファブレンドされた領域を示す透過領域を複製する。
これにより、プリンタドライバ103は、既にアルファブレンドされた領域に対する印刷コマンドをプリンタ20に送信するので、プリンタ20は、アルファブレンドに対応していなくても、適切にアルファブレンドされた画像を印刷することができる。
<動作>
次に、実施例1における情報処理装置10の動作について説明する。図6は、実施例1における印刷制御処理の一例を示すシーケンス図である。図1に示す印刷制御処理では、アルファチャンネル付きビットマップをサポートしていないPDLのプリンタドライバ103を用いて、適切にアルファブレンド処理された印刷結果を得るための処理である。
図6に示すシーケンス図は、説明を分かりやすくするため、透過処理部204とプリンタ20とでそれぞれ描画される画像(イメージ)を記載する。
ステップS301で、OS102は、描画命令受信部203にページ開始命令を通知する。
ステップS302で、描画命令受信部203は、ページ開始命令を受信し、描画処理部205にページ開始命令を通知する。
ステップS303で、描画処理部205は、取得したページ開始命令を、透過処理部204に通知する。
ステップS304で、透過処理部204は、ページ開始命令を取得すると、ページサイズ分のビットマップを生成する。ビットマップは、例えば、24BPPビットマップである。ビットマップ31は、このとき生成されるイメージである。
ステップS305で、OS102は、描画命令受信部203に矩形(例えば黄色の矩形)の描画命令を通知する。
ステップS306で、描画命令受信部203は、矩形の描画命令を受信し、この矩形の描画命令を描画処理部205に通知する。
ステップS307で、描画処理部205は、取得した矩形の描画命令を、透過処理部204に通知する。
ステップS308で、透過処理部204は、矩形の描画命令を取得すると、ビットマップ31に矩形を描画する。ビットマップ32は、このとき描画されるイメージであり、矩形が描画される。
ステップS309で、描画処理部205は、取得した矩形の描画命令を印刷コマンド(PDLコマンド)に変換し、この印刷コマンドをプリンタ20に送信する。ビットマップ36は、ステップS309の印刷コマンドで描画されるイメージであり、矩形が描画される。
ステップS310で、OS102は、描画命令受信部203に文字列(例えば赤色の文字列「あいうえお」)の描画命令を通知する。
ステップS311で、描画命令受信部203は、文字列の描画命令を受信し、この文字列の描画命令を描画処理部205に通知する。
ステップS312で、描画処理部205は、取得した文字列の描画命令を、透過処理部204に通知する。
ステップS313で、透過処理部204は、文字列の描画命令を取得すると、ビットマップ32に文字列を描画する。ビットマップ33は、このとき描画されるイメージであり、ビットマップ32に文字列が描画される。
ステップS314で、描画処理部205は、取得した文字列の描画命令を印刷コマンド(PDLコマンド)に変換し、この印刷コマンドをプリンタ20に送信する。ビットマップ37は、ステップS314の印刷コマンドで描画されるイメージであり、ビットマップ36に文字列が描画される。
ステップS315で、OS102は、描画命令受信部203にグラフィック(例えばオレンジ色の丸)の描画命令を通知する。
ステップS316で、描画命令受信部203は、グラフィックの描画命令を受信し、このグラフィックの描画命令を描画処理部205に通知する。
ステップS317で、描画処理部205は、取得したグラフィックの描画命令を、透過処理部204に通知する。
ステップS318で、透過処理部204は、グラフィックの描画命令を取得すると、ビットマップ33にグラフィックを描画する。ビットマップ34は、このとき描画されるイメージであり、ビットマップ33にグラフィックが描画される。
ステップS319で、描画処理部205は、取得したグラフィックの描画命令を印刷コマンド(PDLコマンド)に変換し、この印刷コマンドをプリンタ20に送信する。ビットマップ38は、ステップS319の印刷コマンドで描画されるイメージであり、ビットマップ37にグラフィックが描画される。
ステップS320で、OS102は、描画命令受信部203にアルファチャンネル付きのビットマップ(例えば文字列「あい」上の透過率50%の透過イメージ)の描画命令を通知する。
ステップS321で、描画命令受信部203は、アルファチャンネル付きのビットマップの描画命令を受信し、このアルファチャンネル付きのビットマップの描画命令を描画処理部205に通知する。
ステップS322で、描画処理部205は、取得したアルファチャンネル付きの描画命令を、透過処理部204に通知する。
ステップS323で、透過処理部204は、アルファチャンネル付きのビットマップの描画命令を取得すると、ビットマップ34に透過イメージをアルファブレンドして描画する。ビットマップ35は、このとき描画されるイメージであり、ビットマップ34に透過イメージがアルファブレンド(透過処理)される。アルファブレンドされた後のビットマップ35は、アルファチャンネルが付いていない通常のイメージである。
ステップS324で、透過処理部204は、アルファブレンドした領域を示す透過領域を複製し、切り取る。
ステップS325で、透過処理部204は、複製し、切り取った透過領域を描画処理部205に出力する。この透過領域は、アルファチャンネルが付いていない通常イメージである。
ステップS326で、描画処理部205は、取得した透過領域に対し、この透過領域を描画するための印刷コマンドに変換し、この印刷コマンドをプリンタ20に送信する。ビットマップ39は、ステップS326の印刷コマンドで描画されるイメージであり、ビットマップ38に透過領域が描画される。
また、描画処理部205は、OS102から取得した描画命令にクリップ範囲が含まれる場合には、このクリップ範囲も印刷コマンドに変換してプリンタ20に送信する。クリップ範囲とは、有効な描画範囲を指定する領域である。クリップ領域があることで、矩形領域だけでなく、様々な形の透過領域を印刷可能とすることができる。
ステップS327で、OS102は、描画命令受信部203にページ終了命令を通知する。
ステップS328で、描画命令受信部203は、取得したページ終了命令を、描画処理部205に通知する。
ステップS329で、描画処理部205は、取得したページ終了命令を、透過処理部204に通知する。
ステップS330で、透過処理部204は、描画していたビットマップを削除する。
これにより、アルファブレンド処理に対応していないプリンタ20は、適切にアルファブレンドされた領域を含む印刷結果を得ることができる。
ここで、イメージ(画像)30は、アプリケーション101が期待する印刷結果を示す。印刷結果のイメージ39は、イメージ30と実質的に同じであると言え、プリンタ20は、正しくアルファブレンドされた画像を印刷することができる。
なお、透過処理部204は、ステップS322で取得したアルファチャンネル付きのビットマップに対し、アルファチャンネルが不透過を示す場合は、ステップS324の複製処理を行わない。
この場合、ステップS326で、描画処理部205は、複製された透過領域を描画するための印刷コマンドに変換するのではなく、OS102から取得された描画命令に対し、アルファチャンネルを削除したビットマップの描画命令を印刷コマンドに変換する。
これにより、プリンタドライバ103は、アルファチャンネル付きでも透過しないビットマップ(イメージ)であれば、複製、切り取り処理を省略することができる。
<印刷コマンド>
次に、描画処理部205で変換される印刷コマンド(PDLコマンド)について説明する。図7は、印刷コマンドの一例を示す図である。図7に示す印刷コマンド41は、図6に示すステップS309の印刷コマンドに対応し、印刷コマンド42は、ステップS314の印刷コマンドに対応し、印刷コマンド43は、ステップS319に対応し、印刷コマンド44は、ステップS326の印刷コマンドに対応する。
図7に示す印刷コマンドのカッコ内は、パラメータの例を示している。なお、図7に示す印刷コマンド44が、アルファブレンド後の透過領域(通常イメージ)を示す印刷コマンドである。
以上、実施例1によれば、プリンタドライバ側で適切にアルファブレンド処理をすることで、アルファブレンド処理をサポートしていないプリンタであっても、適切なアルファブレンド画像を印刷することができる。また、実施例1によれば、画素ごとにアルファ値が異なる場合などにも対応できる。また、実施例1によれば、RAWデータ、EMFデータのどちらにも対応できる。
[実施例2]
次に、実施例2における印刷制御システムについて説明する。実施例2では、プリントプロセッサを用いてアルファブレンドする領域を特定し、プリンタドライバは、その領域だけのビットマップを生成し、描画する。これにより、プリンタドライバ内で、アルファブレンドするためのビットマップを記憶するメモリ領域を削減することができる。
実施例2におけるシステム構成、ハードウェア構成は、実施例1と同様であるため、その説明を省略する。
<モジュール>
図8は、実施例2におけるプリンタドライバ300のモジュール構成の一例を示すブロック図である。図8に示すプリンタドライバ300は、UI部301、プリントプロセッサ302、描画部310を含む。UI部301は、実施例1と同様の機能である。
プリントプロセッサ302は、OS102から印刷命令を受信し、EMF(拡張メタファイル)データを解析(パース)して、面付け処理などを行う。プリントプロセッサ302は、印刷受信部303、検知部304、EMF処理部305、記憶部306を含む。
印刷受信部303は、OS102からEMFデータ形式で印刷命令を受信し、EMF処理部305に、EMF処理を要求する。
EMF処理部305は、EMFデータに基づき、必要であれば、集約、拡大などの面付け処理を行う。また、EMF処理部305は、検知部304に対し、透過検知命令を通知する。
検知部304は、EMF処理部305から透過検知命令を取得すると、EMFデータからアルファブレンド命令を検知する。検知部304は、EMFデータ内にアルファブレンド命令が含まれていた場合、アルファチャンネル付きビットマップの印字位置、幅、高さなどの描画情報と、ページ番号とを含む領域情報を、記憶部306に記憶する。つまり、領域情報は、アルファブレンドされる領域に関する情報である。
検知部304は、アルファブレンド命令を複数検知した場合、複数のアルファブレンド命令に対応する領域情報を記憶部306に記憶する。
検知部304は、EMF処理部305により面付け処理などが行われ、ページのレイアウトが変更された場合は、レイアウト変更(面付け処理)後の透過領域の領域情報を記憶部306に記憶する。
図9は、EMFデータの一例を示す図である。図9に示すEMFデータの部分50は、アプリケーション101がコールしたAPIを示す。この部分50には、引数で指定されたパラメータ(座標など)も格納される。
EMFデータには、ヘッダー51、文字列描画命令52、透過イメージ描画命令(アルファブレンド命令)53が含まれる。検知部304は、EMFデータ内に、透過イメージ描画命令53が含まれる場合に、アルファブレンド命令があると検知する。
図8に戻り、記憶部306は、検知部304で検知されたアルファブレンド命令に対応する領域情報を記憶する。例えば、記憶部306は、アルファブレンド付きビットマップの領域を1又は複数記憶する。記憶部306は、プリントプロセッサ302外部にあってもよい。
描画部310は、描画命令受信部311、透過処理部312、描画処理部313を含む。描画命令受信部311、描画処理部313は、実施例1と同様の機能であるため、説明を省略する。
透過処理部312は、ページ開始を取得した場合に、記憶部306から領域情報を取得し、領域情報が示すサイズのビットマップを生成する。また、透過処理部312は、領域情報が複数存在する場合、複数の領域のビットマップを生成する。また、透過処理部312は、領域情報が示す領域が少なくとも1部重なる場合、重なる複数の領域を含むサイズのビットマップを生成する。例えば、透過処理部312は、複数の領域を含む最小の矩形サイズのビットマップを生成する。
透過処理部312は、描画処理部313から描画命令を取得した場合、生成したビットマップ領域に重なる領域であれば、ビットマップに描画し、生成したビットマップ領域に重ならない領域であれば、ビットマップに描画をしない。
例えば、透過処理部312は、描画命令が、生成したビットマップ領域を含む領域への描画命令であれば、ビットマップに描画をする。
透過処理部312は、アルファチャンネル付きビットマップの描画命令を取得した場合、アルファブレンドしてビットマップ上に描画する。透過処理部312は、アルファブレンドされたビットマップ領域を示す透過領域を複製して、描画処理部313に出力する。
これにより、プリンタドライバ300は、プリンタドライバ内で描画するビットマップの領域を必要最小限にすることができる。
<動作>
次に、実施例2における情報処理装置の動作について説明する。図10は、実施例2における印刷制御処理の一例を示すシーケンス図である。
ステップS401で、OS102は、印刷受信部303に対し、ページ開始命令を通知する。
ステップS402で、印刷受信部303は、EMF処理部305に対し、EMFデータをEMF処理するよう命令する。EMF処理とは、例えば、面付け処理などである。このとき、EMF処理部305は、必要であればEMF処理を行う。
ステップS403で、EMF処理部305は、検知部304に対し、透過検知命令を送る。
ステップS404で、検知部304は、EMFデータを解析(パース)し、アルファブレンド命令を検索する。検知部304は、アルファブレンド命令を検知した場合、アルファチャンネル付きビットマップの印字位置、幅、高さなどの描画情報とページ番号とを含む領域情報を記憶部306に記憶する。
記憶部306は、1又は複数の領域情報を記憶する。例えば、記憶部306は、アルファチャンネル付きビットマップの描画情報をページ番号と関連付けて記憶する。アルファブレンド命令が複数ある場合、つまり、透過領域が複数ある場合は、ステップS404を繰り返す。
ステップS405で、プリントプロセッサ302のページ処理が終わると、OS102は、プリンタドライバ300の描画部310に描画命令を通知する。ページ処理とは、EMF処理や領域情報の記憶処理などを含む処理である。
ステップS406で、描画部310は、OS102からページ開始を受信すると記憶部306から領域情報を取得する。例えば、描画部310は、そのページに含まれているアルファチャンネル付きビットマップの描画情報を取得する。
ステップS407で、描画部310の透過処理部312は、記憶部306から取得した描画情報から、アルファチャンネル付きビットマップのサイズ(幅、高さ)分のビットマップ61を生成する。図10に示す例では1つであるが、透過処理部312は、領域情報が複数ある場合は複数のビットマップを作成する。また、透過処理部312は、複数の領域が重なる場合は、複数の領域が収まる最小サイズのビットマップを作成する。
図10に示すイメージ(画像)60は、アプリケーション101が期待する印刷結果を示す。イメージ60内のアルファブレンドされる領域がビットマップ61として、透過処理部312に生成される。
ステップS408で、描画部310は、命令変換処理、描画処理を行う。命令変換処理は、描画命令を印刷コマンドに変換する処理である。描画処理は、ビットマップの生成処理、ビットマップに対する描画処理を含む。描画部310による描画処理は、以下の2点を除いて実施例1と同様である。
1点目は、透過処理部312が、描画命令を受信した場合、描画命令の描画領域と、ステップS407で生成したビットマップ61の領域とが重なる場合はビットマップ61上に描画命令に対する描画を行う。透過処理部312は、描画命令の描画領域とビットマップ61の領域とが重ならない場合は、ビットマップ61上に描画をしない。
2点目は、透過処理部312は、アルファチャンネル付きビットマップ(透過イメージ)の描画命令を受信した場合は、描画領域が重なるビットマップ61上にアルファチャンネル付きビットマップを描画する。
以上の処理により、プリンタドライバ300内部で生成されるビットマップのサイズを削減することができる。
<処理概要>
図11は、実施例2における印刷制御処理の概要を示す図である。
(1)アプリケーション101は、OS(GDI:Graphic Device Interface)102に対して描画を行う。
(2)OS102は、EMFデータ(EMFスプールファイルともいう)を生成し、Spooler(スプーラ)は、EMFデータを読み込む。
(3)プリントプロセッサ302は、EMFデータを使用して面付け処理などの描画を行う。
(4)プリントプロセッサ302は、EMFデータからアルファブレンド描画命令を検知し、透過領域の領域情報を記憶部306に保存する。このとき、面付け処理などで、レイアウトが変更されていれば、レイアウト変更後の透過領域を示す領域情報が保存される。
(5)OS(GDI)は、描画部310にDDI(Device Driver Interface)描画命令を送る。
(6)描画部310は、記憶部306に記憶された領域情報を参照して、領域情報が示す領域サイズのビットマップを生成する。
(7)描画部310は、OS102からの描画命令を、PDLコマンド(印刷コマンド)に変換してSpoolerに出力する。描画部310は、生成したビットマップに、必要に応じて描画する。描画部310は、描画されたビットマップをアルファブレンドした場合は、アルファブレンドされた領域に対するPDLコマンドに変換する。
(8)Spoolerは、PDLコマンドをプリンタに送信する。
以上、実施例2によれば、プリンタドライバ内で、アルファブレンドするためのビットマップ領域を削減し、このビットマップを記憶するメモリ領域を削減することができる。
[変形例]
各実施例におけるプリンタドライバ103、300は、アルファチャンネル付きビットマップのPDLをサポートしていないが、OS102にアルファチャンネル付きビットマップを受信できることを通知する。これにより、プリンタドライバ103、300は、OS102からアルファチャンネル付きビットマップの描画命令を受信することができる。
しかし、プリンタドライバ103、300内部で、ビットマップを生成するためのメモリ消費や処理遅延を避けたい場合がある。この場合とは、例えば、高速に印刷制御処理を行いたい場合である。このとき、プリンタドライバ103、300は、OS102から取得した描画命令を印刷コマンドに変換するだけにしたい。
よって、プリンタドライバ103、300は、OS102に対し、アルファブレンド付きビットマップを受信可能か否かのいずれを通知するかを、事前に設定できるようにするとよい。プリンタドライバ103、300が、OS102に対し、アルファブレンド付きビットマップを受信できないと通知した場合には、例えば、図2に示す印刷制御処理のように、アルファブレンドが必要ない描画命令がOS102から送られればよい。
これにより、プリンタドライバ103でアルファブレンド付きビットマップを処理するか否かを、ユーザに事前に選択させることができる。
実施例1、2の情報処理装置で実行される印刷制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、実施例1、2の情報処理装置で実行される印刷制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、実施例1、2の情報処理装置で実行される印刷制御プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、実施例1、2の情報処理装置で実行される印刷制御プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
実施例1、2の情報処理装置で実行される印刷制御プログラムは、前述した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部11(プロセッサ)が補助記憶部13からプログラムを読み出して実行することにより上記各部のうち1又は複数の各部が主記憶部12上にロードされ、1又は複数の各部が主記憶部102上に生成されるようになっている。
なお、本発明は、上記各実施例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施例に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施例に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施例にわたる構成要素を適宜組み合わせても良い。
10 情報処理装置
20 プリンタ
11 制御部
12 主記憶部
13 補助記憶部
14 外部記憶装置I/F部
15 ネットワークI/F部
16 入力部
17 表示部
101 アプリケーション
102 OS
103、300 プリンタドライバ
201、301 UI部
202、310 描画部
203、311 描画命令受信部
204、312 透過処理部
205、313 描画処理部
302 プリントプロセッサ
303 印刷受信部
304 検知部
305 EMF処理部
306 記憶部
特開2002−7102

Claims (8)

  1. ページ開始命令及び描画命令をOSから受信する描画受信ステップと、
    前記ページ開始命令が受信された場合、ビットマップを生成する生成ステップと、
    前記描画命令に従って前記ビットマップに描画する場合、前記描画命令がアルファチャンネル付きイメージを含むとき、前記アルファチャンネル付きのイメージに対してアルファブレンドして前記ビットマップに描画し、アルファブレンドされた透過領域を複製する透過処理ステップと、
    前記描画命令を印刷コマンドに変換する場合、前記アルファチャンネル付きイメージの描画命令に対しては前記透過領域を描画するための印刷コマンドに変換する描画処理ステップと、
    をコンピュータに実行させる印刷制御プログラム。
  2. 前記OSからEMFデータの印刷命令を受信する印刷受信ステップと、
    前記EMFデータからアルファブレンド命令を検知する検知ステップと、
    検知されたアルファブレンド命令に基づき、アルファブレンドされる領域に関する情報を示す領域情報を記憶手段に記憶する記憶ステップと、をさらに実行させ、
    前記生成ステップは、
    記憶された前記領域情報が示す領域のみのビットマップを生成する請求項1記載の印刷制御プログラム。
  3. 前記記憶ステップは、
    前記検知ステップにより複数のアルファブレンド命令が検知された場合、複数の前記領域情報を前記記憶手段に記憶し、
    前記生成ステップは、
    記憶された複数の前記領域情報が示す領域の少なくとも1部が重なる場合、複数の領域を含む矩形のビットマップを生成する請求項2記載の印刷制御プログラム。
  4. 前記EMFデータに基づく面付け処理を行う面付けステップをさらに実行させ、
    前記記憶ステップは、
    面付け処理後の領域情報を前記記憶手段に記憶する請求項2又は3記載の印刷制御プログラム。
  5. 前記透過処理ステップは、
    全画素のアルファチャンネルが不透過を示す場合、前記透過領域を複製せず、
    前記描画処理ステップは、
    前記アルファチャンネル付きイメージの描画命令に対し、アルファチャンネルを削除したイメージの描画命令に対する印刷コマンドに変換する請求項1乃至4いずれか一項に記載の印刷制御プログラム。
  6. 前記OSに対し、前記アルファチャンネル付きイメージについて受信可能か否かのいずれかを通知することを予め設定可能な請求項1乃至5いずれか一項に記載の印刷制御プログラム。
  7. ページ開始命令及び描画命令をOSから受信する描画受信手段と、
    前記ページ開始命令が受信された場合にビットマップを生成し、前記描画命令に従って前記ビットマップに描画する場合、前記描画命令がアルファチャンネル付きイメージを含むとき、前記アルファチャンネル付きのイメージに対してアルファブレンドして前記ビットマップに描画し、アルファブレンドされた透過領域を複製する透過処理手段と、
    前記描画命令を印刷コマンドに変換する場合、前記アルファチャンネル付きイメージの描画命令に対しては前記透過領域を描画するための印刷コマンドに変換する描画処理手段と、
    を備える情報処理装置。
  8. 請求項1乃至6いずれか一項に記載の印刷制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2011157176A 2011-07-15 2011-07-15 印刷制御プログラム、情報処理装置及び記録媒体 Active JP5849485B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2011157176A JP5849485B2 (ja) 2011-07-15 2011-07-15 印刷制御プログラム、情報処理装置及び記録媒体
US13/485,121 US9030709B2 (en) 2011-07-15 2012-05-31 Information processing apparatus, information processing method, and computer readable recording medium for print control

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011157176A JP5849485B2 (ja) 2011-07-15 2011-07-15 印刷制御プログラム、情報処理装置及び記録媒体

Publications (2)

Publication Number Publication Date
JP2013025412A true JP2013025412A (ja) 2013-02-04
JP5849485B2 JP5849485B2 (ja) 2016-01-27

Family

ID=47518778

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011157176A Active JP5849485B2 (ja) 2011-07-15 2011-07-15 印刷制御プログラム、情報処理装置及び記録媒体

Country Status (2)

Country Link
US (1) US9030709B2 (ja)
JP (1) JP5849485B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9380300B1 (en) * 2013-10-31 2016-06-28 Crimson Corporation Encoding location information in alpha channels for HTML remote control
JP2019185365A (ja) * 2018-04-09 2019-10-24 キヤノン株式会社 情報処理装置、プリンタドライバ、情報処理方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11355588A (ja) * 1998-06-04 1999-12-24 Canon Inc 画像処理装置およびその方法、並びに、記録媒体
JP2001071602A (ja) * 1999-06-29 2001-03-21 Canon Inc 情報処理装置、情報処理方法、および記憶媒体
JP2003196049A (ja) * 2001-12-26 2003-07-11 Canon Inc 印刷処理方法及びその装置
JP2004070521A (ja) * 2002-08-02 2004-03-04 Canon Inc カラーモノクロ分散印刷制御方法、プログラム、記憶媒体及び装置
JP2006341457A (ja) * 2005-06-08 2006-12-21 Canon Inc 印刷装置
US20070133019A1 (en) * 2005-12-13 2007-06-14 Microsoft Corporation Transparency printing
US20090185222A1 (en) * 2004-05-03 2009-07-23 Microsoft Corporation Planar Mapping of Graphical Elements

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3349805B2 (ja) 1993-11-30 2002-11-25 株式会社リコー 画像形成装置
US6515675B1 (en) * 1999-11-22 2003-02-04 Adobe Systems Incorporated Processing opaque pieces of illustration artwork
JP3728183B2 (ja) 2000-06-23 2005-12-21 キヤノン株式会社 印刷制御装置および描画制御装置およびデータ処理方法および記憶媒体
JP4522290B2 (ja) * 2005-03-01 2010-08-11 キヤノン株式会社 印刷制御装置及びその制御方法とプログラム
EP1732308A2 (en) * 2005-06-08 2006-12-13 Canon Kabushiki Kaisha Imaging device, control method, and program
US7583410B1 (en) * 2005-12-13 2009-09-01 Adobe Systems Incorporated System to create image transparency in a file generated utilizing a print stream
US8314951B2 (en) * 2008-09-26 2012-11-20 Kyocera Document Solutions Inc. Image processing apparatus, and computer-readable recording medium
JP5600925B2 (ja) 2009-11-20 2014-10-08 株式会社リコー サーバ装置、プリントシステム、プログラムおよび記録媒体

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11355588A (ja) * 1998-06-04 1999-12-24 Canon Inc 画像処理装置およびその方法、並びに、記録媒体
JP2001071602A (ja) * 1999-06-29 2001-03-21 Canon Inc 情報処理装置、情報処理方法、および記憶媒体
JP2003196049A (ja) * 2001-12-26 2003-07-11 Canon Inc 印刷処理方法及びその装置
JP2004070521A (ja) * 2002-08-02 2004-03-04 Canon Inc カラーモノクロ分散印刷制御方法、プログラム、記憶媒体及び装置
US20090185222A1 (en) * 2004-05-03 2009-07-23 Microsoft Corporation Planar Mapping of Graphical Elements
JP2006341457A (ja) * 2005-06-08 2006-12-21 Canon Inc 印刷装置
US20070133019A1 (en) * 2005-12-13 2007-06-14 Microsoft Corporation Transparency printing

Also Published As

Publication number Publication date
US9030709B2 (en) 2015-05-12
JP5849485B2 (ja) 2016-01-27
US20130016373A1 (en) 2013-01-17

Similar Documents

Publication Publication Date Title
JP2011242997A (ja) 情報処理装置、印刷制御プログラム、および記憶媒体
JP2018147259A (ja) 情報処理装置、プログラム、記憶媒体、情報処理方法
JP5261250B2 (ja) ページ記述言語を処理する印刷データ処理装置、方法及びコンピュータ可読媒体
JP2019201240A (ja) 印刷制御装置、印刷制御プログラム及び印刷制御方法
JP5490757B2 (ja) プリンタドライバ及びこれを用いた印刷方法
JP2011237901A (ja) プレビュー画面表示制御装置およびプログラム
JP5849485B2 (ja) 印刷制御プログラム、情報処理装置及び記録媒体
JP6085982B2 (ja) プログラム、情報処理装置およびシステム
AU2015218517B2 (en) Image forming apparatus, image forming method, and program
JP6163961B2 (ja) プログラム、情報処理装置および画像処理システム
JP4144369B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP6234417B2 (ja) 情報処理装置及びその制御方法とプログラム
JP7318351B2 (ja) 制御プログラム、および情報処理装置
JP2004188865A (ja) 画像形成装置およびプログラム
JP2012060401A (ja) 画像形成装置及び描画制御方法
JP2017097463A (ja) 印刷制御システム、印刷制御装置およびプログラム
JP4973821B1 (ja) 印刷制御装置およびプログラム
JP2014029633A (ja) 情報処理装置および印刷システム
JP2013122661A (ja) 画像処理装置、画像処理方法、およびプログラム
JP2011170850A (ja) 情報処理装置及びその制御方法
JP7152879B2 (ja) 情報処理装置及びその制御方法およびプログラム
JPWO2018142695A1 (ja) サーバー装置及び情報処理システム
JP2019001083A (ja) 情報処理装置、プログラム、及び端末装置
US9507551B2 (en) Changing the name of a print job when a print instruction is for a pass-through mode
JP2015146125A (ja) 情報処理装置及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150421

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150721

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150917

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: 20151104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151117

R151 Written notification of patent or utility model registration

Ref document number: 5849485

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151