JP2012118824A - 印刷プログラム、情報処理装置および記録媒体 - Google Patents

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

Info

Publication number
JP2012118824A
JP2012118824A JP2010268840A JP2010268840A JP2012118824A JP 2012118824 A JP2012118824 A JP 2012118824A JP 2010268840 A JP2010268840 A JP 2010268840A JP 2010268840 A JP2010268840 A JP 2010268840A JP 2012118824 A JP2012118824 A JP 2012118824A
Authority
JP
Japan
Prior art keywords
page
print
gdi
data
drawing page
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
JP2010268840A
Other languages
English (en)
Inventor
Koji Kobayashi
紘士 小林
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 JP2010268840A priority Critical patent/JP2012118824A/ja
Priority to US13/297,468 priority patent/US20120140269A1/en
Publication of JP2012118824A publication Critical patent/JP2012118824A/ja
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/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/1245Job translation or job parsing, e.g. page banding by conversion to intermediate or common 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/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/1242Image or content composition onto a page
    • 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/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1211Improving printing performance

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)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Record Information Processing For Printing (AREA)

Abstract

【課題】アプリケーションにより作成された印刷データ上に描画データを印刷することができる印刷プログラム、情報処理装置および記録媒体を提供する。
【解決手段】印刷データが描画された第1描画ページ、および印刷データ上に付加されることが指定された描画データが描画された第2描画ページを生成する生成部と、第1描画ページの次に、前記第2描画ページを送信する送信部と、第1描画ページおよび第2描画ページをそれぞれ開始する指示、および、第1描画ページおよび第2描画ページをそれぞれ終了する指示を受信する受信部と、第1描画ページを終了する指示、および第2描画ページを開始する指示を実行しないことにより、第1描画ページ上に第2描画ページを付加して出力する出力制御部と、を備えた。
【選択図】図14

Description

本発明は、印刷プログラム、情報処理装置および記録媒体に関する。
従来、プリンタドライバには、アプリケーションから印刷したデータに、文字データ、図形データ、画像データを付加するというスタンプ(Water Mark)機能があることが既に知られている。
例えば、アプリケーションが生成した印刷データにスタンプを付加する際に、印刷性および利便性を向上する印刷システムが開示されている(例えば、特許文献1参照。)。特許文献1の印刷システムは、プリンタドライバから追加する描画データ、および印刷開始の印刷イベントを受け取ると、アプリケーションに代わってスタンプ等の描画データを生成する。そして、印刷システムは、生成した描画データをスプールファイルに付加し、プリントプロセッサによりスプールファイルから印刷データのページと描画データのページを抜き出して、印刷データに描画データを合成する。
しかしながら、特許文献1の方法では、アプリケーションにより作成された印刷データに対して、プリントプロセッサでスタンプ等の描画データを付加すると、アプリケーションで作成された印刷データの前面に描画データを印刷することができないという問題があった。
本発明は、上記に鑑みてなされたものであって、アプリケーションにより作成された印刷データ上に描画データを印刷することができる印刷プログラム、情報処理装置および記録媒体を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明にかかる印刷プログラムは、コンピュータを、アプリケーションにより作成された印刷データが描画された第1描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第2描画ページを生成する生成部と、前記第1描画ページの次に、前記第2描画ページを送信する送信部と、前記第1描画ページおよび前記第2描画ページをそれぞれ開始する指示、および、前記第1描画ページおよび前記第2描画ページをそれぞれ終了する指示を受信する受信部と、前記第1描画ページを終了する指示、および、前記第2描画ページを開始する指示を実行しないことにより、前記第1描画ページ上に前記第2描画ページを付加して出力する出力制御部、として機能させるための印刷プログラムであることを特徴とする。
また、本発明にかかる情報処理装置は、アプリケーションにより作成された印刷データが描画された第1描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第2描画ページを生成する生成部と、前記第1描画ページの次に、前記第2描画ページを送信する送信部と、前記第1描画ページおよび前記第2描画ページをそれぞれ開始する指示、および、前記第1描画ページおよび前記第2描画ページをそれぞれ終了する指示を受信する受信部と、前記第1描画ページを終了する指示、および、前記第2描画ページを開始する指示を実行しないことにより、前記第1描画ページ上に前記第2描画ページを付加して出力する出力制御部と、を備えたことを特徴とする。
また、本発明にかかる記憶媒体は、コンピュータを、コンピュータを、アプリケーションにより作成された印刷データが描画された第1描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第2描画ページを生成する生成部と、前記第1描画ページの次に、前記第2描画ページを送信する送信部と、前記第1描画ページおよび前記第2描画ページをそれぞれ開始する指示、および、前記第1描画ページおよび前記第2描画ページをそれぞれ終了する指示を受信する受信部と、前記第1描画ページを終了する指示、および、前記第2描画ページを開始する指示を実行しないことにより、前記第1描画ページ上に前記第2描画ページを付加して出力する出力制御部、として機能させるための印刷プログラムを記憶したコンピュータ読み取り可能な記憶媒体であることを特徴とする。
本発明によれば、アプリケーションにより作成された印刷データ上に描画データを印刷することができるという効果を奏する。
図1は、アプリケーションにより作成された印刷データの一例を示す図である。 図2は、スタンプの描画データの一例を示す図である。 図3は、アプリケーションにより作成された印刷データの前面にスタンプを載せた際に期待される印刷結果の一例を示す図である。 図4は、アプリケーションにより作成された印刷データにスタンプを付加した際に発生する印刷結果の一例を示す図である。 図5は、本発明の第1の実施の形態にかかる情報処理装置が接続された印刷システムの全体構成図である。 図6は、Windows(登録商標)プリントアーキテクチャの動作順序を示す流れ図である。 図7は、プリントプロセッサの印刷動作の流れを示すシーケンス図である。 図8は、アプリケーションによる印刷動作の流れを示すシーケンス図である。 図9は、プリントプロセッサによる印刷指示処理の流れを示すシーケンス図である。 図10は、プリントプロセッサによる印刷指示処理の流れを示すシーケンス図である。 図11は、アプリケーションからプリンタドライバへの印刷指示の送信順序を変更する処理の流れを示すシーケンス図である。 図12は、プリンタドライバに対する通知を送信するタイミングを示すシーケンス図である。 図13は、プリンタドライバに対する通知を送信するタイミングを示すシーケンス図である。 図14は、PCの構成を示すブロック図である。 図15は、アプリケーションにより作成された印刷データの一例を示す図である。 図16は、プリントプロセッサの機能ブロック図である。 図17は、生成部により生成された第1描画ページおよび第2描画ページの一例を示す図である。 図18は、送受信部によるコマンド送信順序を示す図である。 図19は、GDIにより送信される通常のコマンド送信順序を示す図である。 図20は、本実施の形態にかかるGDIによるコマンド送信順序を示す図である。 図21は、プリンタドライバの機能ブロック図である。 図22は、プリンタドライバからプリンタに送信される出力ページの一例を示す図である。 図23は、PCによる描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。 図24は、本実施の形態にかかるPCの構成を示すブロック図である。 図25は、プリンタドライバの機能ブロック図である。 図26は、PCによる描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。 図27は、第1または第2の実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。
まず、従来の情報処理装置により描画データが付加された印刷データの例を説明する。図1は、アプリケーションにより作成された印刷データ(以下、印刷データという。)の一例を示す図であり、図2は、スタンプの描画データの一例を示す図である。図3は、アプリケーションにより作成された印刷データの前面にスタンプを付加した際に期待される印刷結果の一例を示す図である。
従来の技術で、プリントプロセッサが使用できるAPIを使用して描画データを追加すると、アプリケーションにより作成された印刷データの背面に、付加したいスタンプの描画データ(以下、スタンプという。)が印刷されてしまい図4のように印刷されてしまう現象が発生していた。
図4は、アプリケーションにより作成された印刷データにスタンプを付加した際に発生する印刷結果の一例を示す図である。図4で、アプリケーションにより作成された印刷データの中央部のグラフが描かれた図のスタンプに着目すると、グラフが描かれた図がスタンプよりも前面に印刷されている。このように、従来の技術では、アプリケーションにより作成された印刷データに描画データを付加すると、描画データを印刷データの前面に印刷できない現象が発生していた。
この問題を解決すべく、以下に添付図面を参照して、この発明にかかる印刷プログラム、情報処理装置および記録媒体の最良な実施の形態を詳細に説明する。
(第1の実施の形態)
図5は、本発明の第1の実施の形態にかかる情報処理装置が接続された印刷システムの全体構成図である。図5に示すように、印刷システムは、情報処理装置としてのPC(Personal Computer)100と、プリンタ200aと、プリンタ200b(以下、プリンタ200と総称する。)とがネットワーク180により接続されている。
PC100は、ユーザから印刷データに描画データを付加する指示を受け付け、指示に従って描画データを生成し、プリンタ200に印刷データと生成した描画データと共に印刷指示を送信し、印刷させる。
プリンタ200は、PC100から印刷データに描画データを付加する印刷指示を受信した場合、PC100からの印刷指示に従って印刷データおよび描画データを印刷する。
まず、Windows(登録商標)プリントアーキテクチャを用いたPC100による印刷動作の流れの概要を説明する。図6は、Windows(登録商標)プリントアーキテクチャの動作順序を示す流れ図である。図6に示すように、PC100は、ユーザから印刷設定を受け付けるプリンタドライバのUI部106aと、ユーザから印刷命令を受け付けるアプリケーション104と、プリントプロセッサからの命令をプリンタドライバ106に送信するGDI(Graphic Device Interface)105aと、データの言語形式を変換するプリンタドライバ106と、印刷データを蓄積するスプーラ105bと、スプーラ105bから受け取った印刷データを編集するプリントプロセッサ107を備え、プリンタ200と接続されている。なお、各部の機能および構成の詳細については後述する。
まず、UI部106aは、ユーザから印刷設定の変更を受け付ける(ステップS1)。アプリケーション104は、ユーザから印刷命令を受け付ける(ステップS2)。アプリケーション104は、UI部106aおよびDEVMODEと呼ばれる印刷設定が入っている構造体(不図示)とやり取りすることによりユーザの印刷設定を受け付ける(ステップS3、ステップS4)。ここで、アプリケーション104は、印刷設定とともに、印刷対象となる印刷データの指定を受け付ける。なお、印刷データは、アプリケーション104によりEMF(Enhanced Metafile Format)形式で作成されたものである。
アプリケーション104は、GDI105aに印刷データの印刷命令をGDIコールとして伝える(ステップS5)。GDI105aは、スプールデータとしてEMF形式の印刷データをスプーラ105bに渡す(ステップS6)。スプーラ105bは、アプリケーション104により作成された印刷データを全てスプールすると、プリントプロセッサ107に印刷データをデスプールする通知を送信した上で、プリントプロセッサ107に印刷データをデスプールする(ステップS7)。
プリントプロセッサ107は、スプーラ105bから受信した印刷データを読み取ってページ毎に編集し、編集した内容をGDI105aにGDIコールとして伝える(ステップS8)。ここで、プリントプロセッサ107は、UI部106aが受け付けた印刷設定に従って印刷データをデバイスコンテキストに描画し編集する。なお、プリントプロセッサ107が印刷データを編集する単位は1ページ分のデータ毎であり、ページ中の描画オブジェクト毎には編集しない。
GDI105aは、プリンタドライバ106にプリントプロセッサ107から受信したGDIコールをDDI(Device Driver Interface)コールとして伝える(ステップS9)。
プリンタドライバ106は、GDI105aから受信したDDIコールを受信すると、印刷命令の対象となるEMF形式の印刷データをRAW形式に変換し、変換したRAWデータをスプーラ105bに送信する(ステップS10)。
スプーラ105bは、プリンタドライバ106から受信したRAWデータをプリンタ200に送信する(ステップS11)。
次に、以上のような概要による通常のプリントプロセッサ107による印刷動作の詳細について説明する。図7は、プリントプロセッサ107の印刷動作の流れを示すシーケンス図である。
スプーラ105bは、プリントプロセッサ107に印刷開始要求を送信する(ステップS101)。ここで、スプーラ105bは、プリントプロセッサ107にOpen Print Processor()関数をコールし、プリントプロセッサ107は、これに応答する。
スプーラ105bは、プリントプロセッサ107に印刷準備前通知を送信する(ステップS102)。ここで、スプーラ105bは、プリントプロセッサ107にPrint Document On Print Processor()関数をコールする。
プリントプロセッサ107は、GDI105aに印刷準備前通知を送信する(ステップS103)。ここで、プリントプロセッサ107は、GDI105aにWindows(登録商標)におけるGDI(以下、GDIという。)であるGdi Get Spool File Handle()関数をコールする。これにより、GDI105aは、スプーラ105bにスプールされている印刷データへのハンドルを取得する。
GDI105aは、プリンタドライバ106に印刷準備要求を送信する(ステップS104〜ステップS106)。ここで、GDI105aは、プリンタドライバ106にWindows(登録商標)におけるDDI(以下、DDIという。)であるDrv Enable Driver()関数、Drv Enable PDEV()関数、およびDrv Complete PDEV()関数をコールする。
プリントプロセッサ107は、GDI105aに印刷開始通知を送信する(ステップS107、ステップS108)。ここで、プリントプロセッサ107は、GDI105aにGDIであるGdi Get DC()関数をコールし、印刷データの出力先であるデバイスコンテキストを取得する。また、プリントプロセッサ107は、GDIであるGdi Start Doc EMF()関数をコールし、GDI105aに印刷開始を通知する。
GDI105aは、プリンタドライバ106に印刷開始通知を送信する(ステップS109、ステップS110)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Enable Surface()関数と、DDIであるDrv Start Doc()関数をコールする。
プリントプロセッサ107は、GDI105aに印刷データを送信し、ページ開始およびページ終了を通知する(ステップS111〜ステップS114)。ここで、プリントプロセッサ107は、GDI105aに各種GDIをコールする。
例えば、プリントプロセッサ107は、GDIであるGdi Start Page EMF()関数をコールし、印刷用紙のページ開始を通知する。また、プリントプロセッサ107は、GDIであるGdi Get Page Handle()関数をコールし、印刷データの1ページ分のデータを取得する。この際、プリントプロセッサ107は、印刷データのうちページ番号を指定することができる。また、プリントプロセッサ107は、GDIであるGdi Play Page EMF()関数をコールし、GDI105aに印刷データを送信する。さらに、プリントプロセッサ107は、GDIであるGdi End Page EMF()関数をコールし、印刷用紙への割り付け終了(以下、ページ終了という。)を通知する。
GDI105aは、ページ処理開始要求および印刷データをプリンタドライバ106に送信する(ステップS115〜ステップS117)。ここで、GDI105aは、プリンタドライバ106に各種DDIをコールする。例えば、GDI105aは、Drv Start Page()関数、描画関数()、およびDrv Send Page()関数をコールする。なお、印刷データの送信は、通常この関数の順序によりコールされる。
プリントプロセッサ107は、GDI105aに印刷終了準備要求を送信する(ステップS118)。ここで、プリントプロセッサ107は、GDI105aにGDIであるGdi End Doc EMF()関数をコールする。
GDI105aは、プリンタドライバ106に印刷終了準備要求を送信する(ステップS119)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv End Doc()関数を送信する。
プリントプロセッサ107は、GDI105aに印刷終了要求を通知する(ステップS120)。ここで、プリントプロセッサ107は、GDI105aにGDIであるGdi Delete Spool File Handle()関数をコールし、スプーラ105bにスプールされている印刷データへのハンドルを破棄する。
GDI105aは、プリンタドライバ106に印刷終了要求を通知する(ステップS121)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Disable PDEV()関数をコールする。
スプーラ105bは、プリントプロセッサ107に印刷完了を通知する(ステップS122)。ここで、スプーラ105bは、プリントプロセッサ107にGDIであるClose Print Processor()関数をコールする。
プリントプロセッサ107とGDI105aの間でのやり取りの仕組みは上記のとおりであるため、プリントプロセッサ107でページの割り付けを行うためには、Gdi Start Page EMF()関数、Gdi Get Page Handle()関数、Gdi Play Page EMF()関数、Gdi End Page EMF()関数の各種GDIを用いることで実現することができる。
次に、通常のアプリケーション104による印刷動作の流れについて説明する。図8は、アプリケーション104による印刷動作の流れを示すシーケンス図である。ここでは、アプリケーション104は、API(Application Program Interface)を用いてGDI105aにコールするが、GDIを用いた場合と同様にデバイスコンテキストに対して描画処理を行う。
まず、通常のアプリケーションで実際に描画処理を行うAPIの例を示す。例えば、Text Out()関数、Bit Blt()関数、Stretch Blt()関数、Line To()関数、Rectangle()関数等が用いられる。これらのAPIは、Start Page()関数と、End Page()関数の間に呼ぶことで、そのページ内に文字・画像・図形を描画することができる。また、描画先はデバイスコンテキストなので、プリントプロセッサ107においてもこれらのAPIを使用することで描画処理をすることが可能である。
アプリケーション104は、GDI105aに印刷開始要求および印刷データを送信する(ステップS131、ステップS132)。ここで、アプリケーション104は、GDI105aにCreate DC()関数、およびStart Doc()関数をコールする。
次に、アプリケーション104は、GDI105aにページ開始要求を送信する(ステップS133)。ここで、ページ開始要求とは、1ページ分の印刷データを描画するページを準備する要求のことである。アプリケーション104は、GDI105aにStart Page()関数をコールする。
続いてアプリケーション104は、GDI105aに描画データを送信する(ステップS134)。ここで、アプリケーション104は、GDI105aにText Out()関数をコールする。なお、描画データが複数ある場合、アプリケーション104は、当該コールを複数回行ってもよい。
描画データを送信したアプリケーション104は、GDI105aにページ終了要求を送信する(ステップS135)。ここで、ページ終了要求とは、ページ開始要求によって準備されたページを終了する要求のことである。アプリケーション104は、GDI105aにEnd Page()関数をコールする。なお、印刷データが複数ページある場合、アプリケーション104がステップS133からステップS135の処理を複数回繰り返すことにより、プリンタ200により複数ページの印刷が可能である。
アプリケーション104は、GDI105aに印刷終了要求を送信する(ステップS136、ステップS137)。ここで、アプリケーション104は、GDI105aにEnd Doc ()関数、およびDelete DC()関数をコールする。
次に、通常のプリントプロセッサ107による印刷指示処理の流れについて説明する。図9は、プリントプロセッサ107による印刷指示処理の流れを示すシーケンス図である。
まず、GDI105aおよびプリントプロセッサ107による処理の概要を説明する。まず、GDI105aは、プリンタドライバ106のDDIであるページ処理開始命令(Drv Start Page())を呼び出し、その後すぐに、GDI105aはプリントプロセッサ107が呼び出した描画APIに対応するプリンタドライバ106側の描画処理DDIをコールする。
また、プリントプロセッサ107は、描画APIをコールしない時は、プリントプロセッサ107がGdi End Page EMF()関数をコールするまでプリンタドライバ106に何も通知が渡らない。しかし、プリントプロセッサ107が描画APIをコールすると、その命令がすぐにプリンタドライバ106に伝わるようにOSが動作してしまう。
ステップS141からステップS153までの処理については、図7のシーケンス図で説明したステップS101からステップS113までの処理と同様である。
ステップS154において、プリントプロセッサ107は、描画データを送信する(ステップS154)。ここで、プリントプロセッサ107は、GDI105aにText Out()関数をコールする。
ここで、コールする関数の順序に着目すると、プリントプロセッサ107は、1つ前の処理(ステップS153)でコールしたGDIであるGdi Play Page EMF()関数の次に、Text Out()関数をコールしている。
GDI105aは、プリンタドライバ106にページ処理開始要求および描画データを送信する(ステップS155、ステップS156)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Start Page()関数、およびDrv Text Out()関数をコールする。
ステップS157の処理は、図7のシーケンス図で説明したステップS114の処理と同様である。
ステップS158において、GDI105aはプリンタドライバ106に印刷データを送信する(ステップS158)。ここで、GDI105aは、プリンタドライバ106にDDIである描画関数()をコールする。
ここで、ステップS156およびステップS158の処理に着目すると、GDI105aはステップS156で描画データを先に送信し、描画データを送信した後にステップS158で印刷データを送信している。これは、ステップS153およびステップS154でプリントプロセッサ107がGDI105aに対して印刷データの後に描画データを送信した順序と逆になっている。つまり、プリンタドライバ106は、プリントプロセッサ107からGDI105aに送信した順序と逆の順序で印刷データと描画データを受信している。このため、描画データが印刷データの背面に印刷される現象が生じる。
ステップS159からステップS164までの処理は、図7のシーケンス図で説明したステップS117からステップS122までの処理と同様である。
次に、通常のプリントプロセッサ107によるAPIコールによる印刷指示処理の他の例について説明する。図10は、プリントプロセッサ107による印刷指示処理の流れを示すシーケンス図である。
ステップS171からステップS182までの処理については、図9のシーケンス図で説明したステップS141からステップS152までの処理と同様である。
ステップS183において、プリントプロセッサ107は、GDI105aに描画データを送信する(ステップS183)。ここで、プリントプロセッサ107は、GDI105aにText Out()関数をコールする。
ステップS184は、図7のシーケンス図で説明したステップS115と同様である。ステップS185において、GDI105aは、プリンタドライバ106に印刷データを送信する(ステップS185)。次に、プリントプロセッサ107は、GDI105aに印刷データを送信する(ステップS186)。ここで、プリントプロセッサ107は、GDI105aにGDIであるGdi Play Page EMF()関数をコールする。
ステップS187において、プリントプロセッサ107は、GDI105aにページ終了要求を送信する(ステップS187)。ここで、プリントプロセッサ107は、GDI105aにGDIであるGdi End Page EMF()関数をコールする(ステップS187)。GDI105aは、プリンタドライバ106に印刷データを送信する(ステップS188)。ここで、GDI105aは、プリンタドライバ106に描画関数()をコールする。
ここで、ステップS183とステップS186の順序に着目すると、プリントプロセッサ107はステップS183で描画データを先に送信し、印刷データを描画データの後から送信している。これは、図9のシーケンス図のステップS153およびステップS154で、プリントプロセッサ107が描画データを印刷データの後から送信した順番と異なる。
しかし、GDI105aがプリンタドライバ106にデータ送信する順序は、図9と同様に、ステップS185で描画データが先、ステップS188で印刷データが後となってしまう。つまり、図9および図10に示したように、プリントプロセッサ107からGDI105aへの印刷指示の送信順序を変更するだけでは、描画データが印刷データの背面に付加されてしまうという問題を解決できないこととなる。
なお、ステップS189からステップS194までの処理は、図9のシーケンス図で説明したステップS159からステップS164と同様である。
次に、アプリケーション104がプリンタドライバ106に通知(Escape)を送信する通知送信処理について説明する。ここで、Escapeとは、アプリケーション104が、GDI105aを介してプリンタドライバ106に送信する通知である。ここでは、アプリケーション104は、Escape関数を用いてコマンドをキャンセルする処理に変更する通知(以下、変更通知という。)をプリンタドライバ106に送信する。図11は、アプリケーション104からプリンタドライバ106への通知送信処理の流れを示すシーケンス図である。
アプリケーション104はGDI105aを介してプリンタドライバ106にEscapeを送信する。また、GDI105aは、プリンタドライバ106にDDIであるDrv Escape()関数をコールする。ここで、Escape()関数もデバイスコンテキストに対する処理であり、アプリケーション104は、印刷しているプリンタドライバ106と情報のやり取りを行うことができる。なお、このやり取りは、マイクロソフト(登録商標)のmsdnライブラリの記述に従ったものである。
アプリケーション104は、GDI105aに印刷データ生成要求を送信する(ステップS201)。ここで、アプリケーション104は、GDI105aにCreate DC()関数をコールする。
GDI105aは、プリンタドライバ106に印刷開始指示を送信する(ステップS202)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Enable PDEV()関数をコールする。
次に、アプリケーション104は、GDI105aに通知(Escape)を送信する(ステップS203)。GDI105aは、プリンタドライバ106に通知(Escape)を送信する(ステップS204)。
ここで、アプリケーション104は、プリンタドライバ106に通知を送信するための関数として、Escape()関数に限定せず、Ext Escape()関数を用いて通知を送信してもよい。
次に、プリントプロセッサ107による通知送信のタイミングについて説明する。ここでは、プリンタドライバ106は、プリントプロセッサ107からの通知の受信により、GDI105aから受信した指示の一部をキャンセルする。図12は、プリンタドライバ106に対する通知を送信するタイミングを示すシーケンス図である。図12では、図7のシーケンス図を基本とするシーケンス図に、通知が送信されるタイミングが追加されている。
ステップS211からステップS221までの処理は、図7のシーケンス図で説明したステップS101からステップS111と同様である。
ステップS222において、プリントプロセッサ107は、GDI105aに通知を送信する(ステップS222)。ここで、プリントプロセッサ107は、GDI105aにExt Escape()関数をコールする。ここで、プリントプロセッサ107は、通知を、ステップS221においてページ開始要求を送信した後のタイミングでGDI105aに送信しているが、送信タイミングはこれに限定されない。
GDI105aは、プリンタドライバ106に通知を送信する(ステップS223)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Escape()関数をコールする。
ステップS224からステップS234までの処理は、図7のシーケンス図で説明したステップS112からステップS122と同様である。ここでも同様に、プリントプロセッサ107はEscape()関数をコールすることにより、GDI105aを介してプリンタドライバ106と即座に情報をやり取りすることができる。
次に、プリントプロセッサ107による通知の送信タイミングの他の例について説明する。図13は、プリンタドライバ106に対する通知を送信するタイミングを示すシーケンス図である。図13も図12と同様に、図7のシーケンス図を基本とするシーケンス図に、通知が送信されるタイミングが追加されている。
ステップS241からステップS253までの処理は、図7のシーケンス図で説明したステップS101からステップS113までの処理と同様である。
ステップS254において、プリントプロセッサ107は、GDI105aに通知を送信する(ステップS254)。ここで、プリントプロセッサ107は、GDI105aにExt Escape()関数をコールする。ここで、プリントプロセッサ107は、通知を、ステップS253において印刷データを送信した後のタイミングでGDI105aに送信しているが、図12と同様に送信タイミングはこれに限定されず、任意のタイミングで送信可能である。
GDI105aは、プリンタドライバ106に通知を送信する(ステップS255)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Escape()関数をコールする。
ステップS256からステップS264までの処理は、図7のシーケンス図で説明したステップS114からステップS122までの処理と同様である。
図14は、PC100の構成を示すブロック図である。図14に示すように、PC100は、処理部101と、記憶部102と、通信部103とを備えている。処理部101は、図示しない制御手段としてのCPU(Central Processing Unit)と、ROMおよびメインメモリとなるRAMを有するメモリ群とを含んで構成されている。PC100の起動・実行時には、ROMおよび記憶部102からアプリケーション104と、OS105と、各種ドライバ(図14においては、プリンタドライバ106のみ記載)と、プリントプロセッサ107とが、メインメモリ上にロードされ展開されて、これらがCPUにより実行される。
なお、PC100は、キーボードやマウスなどの入力装置やディスプレイなどの出力装置等を備える通常のコンピュータを利用したハードウェア構成を有するが、図14においては説明の簡潔化のため省略している。
図14に示す処理部101内の機能ブロック(後述)は、プリンタ200に対する印刷制御を実現するための主要部となる機能または手段である。
記憶部102は、様々な情報を記憶する記憶手段である。具体的にはHDD等である。記憶される情報には、プリンタドライバ106が有する機能を実現するための処理に関する情報(処理に用いる設定値や、設定値の変更をするための表示情報など、処理に必要なあらゆる情報)を定義した設定情報がある。
通信部103は、ネットワーク180を介して接続されたプリンタ200と情報の送受信を行うネットワークI/Fである。
アプリケーション104は、ユーザが印刷指示をすることができるソフトウェア(例えば、ワードプロセッサ)とする。ユーザはアプリケーション104で編集したデータを印刷したい場合、アプリケーション104が、ユーザによる印刷指示を受け付ける。この場合、アプリケーション104は、単体でプリンタ200に対する印刷データの生成を行わず、上記印刷指示に応じた印刷要求と共に、印刷対象の情報を、例えばGDI(Graphics Device Interface)コールでOS105のGDI105aに渡す。
例えば、アプリケーション104は印刷データを作成する。図15は、アプリケーション104により作成された印刷データの一例を示す図である。図15に示すように、アプリケーション104は、1ページ目から順にページデータを生成している。
OS105は、PC100のハードウェアとソフトウェアとを管理するプログラムである。OS105は、プログラムの起動、情報の読み込みや保存の制御等を行う。OSのうち代表的なものとしては、MS Windows(登録商標)等が知られている。また、OS105のGDI105aは、アプリケーション104からGDIコールで渡された設定情報を含む印刷要求と共に、印刷対象の情報(テキストデータ、グラフィック・データ、イメージ・データ等)を、DDI(Device Driver Interface)コールでプリンタドライバ106に渡す。そして、プリンタドライバ106で生成された印刷データをスプーラ105bに蓄え、順次通信部103に供給してプリンタ200に送る。
プリントプロセッサ107は、スプーラ105bからスプールされた印刷データを受け取る。また、プリントプロセッサ107は、アプリケーション104により受付けたユーザ指示に従って、印刷データに付加する描画データを生成する。
次に、プリントプロセッサ107の詳細を説明する。図16は、プリントプロセッサ107の機能ブロック図である。図16に示すように、プリントプロセッサ107は、生成部107aと、送受信部107bを備える。
生成部107aは、第1描画ページと第2描画ページを生成する。ここで、第1描画ページとは、印刷データが描画されたページであり、第2描画ページとは、印刷データ上に描画される描画データが描画されたページである。なお、生成部107aは、第1描画ページについては、スプーラ105bからデスプールしたページデータをそのまま描画データとしてもよい。なお、UI部106aにより、印刷データに付加する描画データが複数指定された場合、生成部107aは、指定された複数の描画データをそれぞれ異なるページに描画して複数の第2描画ページを生成してもよい。また、この場合、生成部107aは、指定された複数の描画データを1つのページに描画して1つの第2描画ページを生成してもよい。
ここで、生成部107aによる第2描画ページを生成する例について説明する。図17は、生成部107aにより生成された第1描画ページおよび第2描画ページの一例を示す図である。
図17では、生成部107aは、1ページ目にスプーラ105bからデスプールした印刷データの1ページ目をリプレイし第1描画ページを生成する。そして、生成部107aは、2ページ目に印刷データの1ページ目に付加する第2描画ページを印刷するページとして架空のページを用意し、用意した架空のページに描画データを載せて第2描画ページを生成する。
同様に、生成部107aは、3ページ目にスプーラ105bからデスプールした印刷データの2ページ目をリプレイし第1描画ページを生成する。そして、生成部107aは、4ページ目に印刷データの2ページ目に付加する第2描画データを印刷するページとして架空のページを用意し、用意した架空のページに描画データを載せて第2描画ページを生成する。また、生成部107aは、5ページ目および6ページ目についても同様に、5ページ目に印刷データの3ページ目を、6ページ目に印刷データの3ページ目に付加する描画データを配置する。生成部107aは、この処理を印刷データの最終ページに付加される描画データのページまで繰り返す。
なお、生成部107aは、第2描画ページを複数生成した場合、第1描画ページに付加する描画データを第1描画ページに続くページに配置する。例えば、生成部107aは、第2描画ページを2ページ生成した場合は、1ページ目に第1描画ページを生成し、2ページ目と3ページ目に第2描画ページの描画データを生成する。
送受信部107bは、第1描画ページの次に、第2描画ページを送信する送信部としての機能を有し、生成部107aにより生成された第1描画ページおよび第2描画ページを所定のコマンドにより、GDI105aを介してプリンタドライバ106に送信する。
また、送受信部107bは、第1描画ページおよび第2描画ページをそれぞれ開始する指示、および第1描画ページおよび第2描画ページをそれぞれ終了する指示を、GDI105aを介してプリンタドライバ106に送信する。
ここで、送受信部107bによる描画ページを送信する際のコマンドの一例を説明する。図18は、送受信部107bによるコマンド送信順序を示す図である。図18に示すように、送受信部107bは、第1描画ページをプリンタドライバ106に送信するコマンドとして、GDIであるGdi Start Page EMF()関数、Gdi Play Page EMF()関数、Gdi End Page EMF()関数を順にGDI105aにコールする。また、送受信部107bは、第2描画ページを送信するコマンドとして、GDIであるGdi Start Page EMF()関数、Text Out()関数、Gdi End Page EMF()関数を順にGDI105aに送信する。
次に、送受信部107bからコマンドを受信したGDI105aが、プリンタドライバ106に送信するコマンド送信順序について説明する。図19は、GDI105aにより送信される通常のコマンド送信順序を示す図である。通常は、GDI105aは、プリンタプロセッサ107から受信したコマンドどおりにプリンタドライバ106にコマンドを送信する。例えば、図19に示すように、まず、1ページ目として、DDIであるDrv Start Page()関数をコールし、印刷データを送信し、Drv Send Page()関数をコールする。次に、2ページ目として、Drv Start Page()関数をコールし、描画データを送信し、Drv Send Page()関数をコールする。
しかし、このように、GDI105aが通常のコマンド送信順序によりプリンタドライバ106にコマンドを送信すると、1ページ目に付加される2ページ目の描画データ(架空のページ)が、1ページ目のページと異なるページとして出力されてしまうこととなる。
そこで、本実施の形態では、GDI105aは、2ページ目の描画データが1ページ目の印刷データ上に付加して出力されるようにコマンドの一部を実行し、一部をキャンセルする。
図20は、本実施の形態にかかるGDI105aによるコマンド送信順序を示す図である。図20に示すように、GDI105aは、1ページ目として、DDIであるDrv Start Page()関数のコールによりページを開始し、印刷データを送信する。ここで、GDI105aは、Drv Send Page()関数、およびDrv Start Page()関数をコールする。GDI105aは、印刷データの送信に続いて、描画データを送信し、Drv Send Page()関数をコールし、ページを終了する。
これにより、第2描画ページが描画された架空のページは、新しいページとして送信されることがない。このため、第2描画ページが描画された架空のページは、第1描画ページに描画された印刷データと同一のページに印刷データ上に付加されることとなる。
プリンタドライバ106は、プリントプロセッサ107からの指示に応じて印刷データおよび描画データをプリンタ200に送信する。
このように、プリントプロセッサ107は、Escape関数を用いてコマンドをキャンセルする処理に変更することをプリンタドライバ106に通知する。プリンタドライバ106はこれに応答し、GDI105aから送信された印刷データのページ終了通知とプリントプロセッサ107が追加した架空のページのページ開始通知をキャンセルする。これにより、架空のページはプリンタ200により出力されないこととなる。なお、生成部107aにより第2描画ページが複数生成された場合は、プリンタドライバ106は、生成された第2描画ページ分の架空のページのページ開始をキャンセルすることとなる。
次に、プリンタドライバ106の詳細を、図21を用いて説明する。図21は、プリンタドライバ106の機能ブロック図である。図21に示すように、プリンタドライバ106は、UI部106aと、描画部106bと、出力制御部106cと、送受信部106dとを備える。なお、本実施の形態では、プリンタドライバ106には、ベンダー開発用のモノリシックドライバが用いられる。
UI部106aは、ユーザによる印刷設定を受け付けるユーザインタフェース(UI)を制御する。
描画部106bは、アプリケーション104で作成された印刷データをプリンタが理解可能な形式に変換する。例えば、描画部106bは、アプリケーション104からEMF形式で作成された印刷データを、RAW形式に変換する。
送受信部106dは、プリントプロセッサ107から第1描画ページおよび第2描画ページを、GDI105aを介して受信する。また、送受信部106dは、GDI105aからコマンドを受信する。
また、送受信部106dは、第1描画ページおよび第2描画ページをそれぞれ開始する指示、および第1描画ページおよび第2描画ページをそれぞれ終了する指示を、GDI105aを介してプリントプロセッサ107から受信する受信部としての機能を有する。
出力制御部106cは、プリントプロセッサ107から第1描画ページおよび第2描画ページを受信し、GDI105aから受信したコマンドに従って、第2描画ページを追加した第1描画ページをプリンタ200に出力させる。例えば、出力制御部106cは、送受信部106dにより受信した第1描画ページの開始および第2描画ページの終了を実行し、第1描画ページの終了および第2描画ページの開始を実行しないことにより、第2描画ページを上から付加した第1描画ページをプリンタ200に出力させる。
図22は、プリンタドライバ106からプリンタ200に送信される出力ページの一例を示す図である。ここで、出力ページとは、プリンタ200により印刷用紙1ページに印字される印刷データ(描画データを含む)が描画されたページである。図22に示すように、プリンタドライバ106は、GDI105aから送信されたコマンドに従い、第1描画ページに描画された印刷データ上に第2描画ページに描画された描画データを追加した出力ページをプリンタ200に送信する。
次に、以上のように構成されたPC100による描画データが付加された印刷データの印刷処理の手順について説明する。図23は、PC100による描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。
ステップS301からステップS310までの処理は、図7のシーケンス図で説明したステップS101からステップS110の処理と同様である。
ステップS311において、プリントプロセッサ107は、GDI105aに印刷開始指示を送信する(ステップS311)。ここで、プリントプロセッサ107は、GDI105aにExt Escape()関数をコールする。これにより、プリントプロセッサ107は、GDI105aに描画データを含む印刷をする情報を通知する。
GDI105aは、プリンタドライバ106に通知を送信する(ステップS312)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Escape()関数をコールし、これにより以降の動作を印刷データ上に描画データを付加する印刷処理に変更する。
ステップS313からステップS316までの処理は、図7のシーケンス図で説明したステップS111、およびステップS113からステップS115までの処理と同様である。
プリンタドライバ106は、GDI105aからのページ開始要求に応答して、ページ開始を実行する(ステップS317)。ここで、プリンタドライバ106は、GDI105aからのDDIであるDrv Start Page()関数を実行する。これにより、プリントプロセッサ107から送信された印刷ページ(奇数ページ)ではページ開始要求が実行されることとなる。
ステップS318およびステップS319の処理は、図7のシーケンス図で説明したステップS116およびステップS117の処理と同様である。なお、ステップS318で、GDI105aは、プリンタドライバ106に印刷データを送信する。
プリンタドライバ106は、Escape関数を用いた変更通知に応答し、GDI105aからのページ終了要求をキャンセルし、ページ終了を行わない(ステップS320)。ここで、プリンタドライバ106は、プリントプロセッサ107から変更通知を受信したか否かに応じてコマンドのキャンセル等を行う。変更通知を受信したプリンタドライバ106は、GDI105aからのDDIであるDrv Send Page()関数のコールをキャンセルする。
これにより、プリンタドライバ106は、ステップS318で送信された印刷データが描画された出力ページは終了せず、続いて送信される描画データの受信を待つ。なお、プリントプロセッサ107からプリンタドライバ106に通知できる方法であれば他の方法、他の関数であってもよい。
ステップS321からステップS323までの処理は、図10のシーケンス図で説明したステップS181からステップS185までの処理と同様である。なお、ステップS321で、プリントプロセッサ107は描画ページが描画された架空のページをプリンタドライバ106に送信する。
プリンタドライバ106は、GDI105aからのページ開始要求をキャンセルし、ページ開始を行わない(ステップS324)。ここで、プリンタドライバ106は、GDI105aからのDDIであるDrv Start Page()関数のコールをキャンセルする。これにより、プリンタドライバ106は、新たなページを開始しない。
ステップS325からステップS327までの処理は、図9のシーケンス図で説明したステップS156およびステップS157の処理と同様である。なお、GDI105aはステップS325で描画データをプリンタドライバ106に送信する。プリンタドライバ106は、受信した描画データをステップS318で受信した印刷データを描画した出力ページ上に受信した描画データを付加する。
GDI105aは、プリンタドライバ106にページ終了要求を送信する(ステップS327)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Send Page()関数をコールする。
プリンタドライバ106は、GDI105aからのページ終了要求に応答し、ページ終了を実行する(ステップS328)。ここで、プリンタドライバ106は、GDI105aからのDDIであるDrv Send Page()関数を実行する。プリンタドライバ106は、印刷データ上に描画データを付加した出力ページをプリンタ200に出力する。
ステップS329からステップS333までの処理は、図7のシーケンス図で説明したステップS118からステップS122の処理と同様である。
このように、本実施の形態によれば、PCは印刷データ上に描画データを付加する設定を受け付けた場合、プリンタプロセッサが印刷データが描画される第1描画ページと描画データが描画される第2描画ページを生成し、プリンタドライバは生成された2ページを受信順に上から付加して1ページに出力するので、描画データを印刷データの前面に付加して印刷することができる。
(第2の実施の形態)
第1の実施の形態では、PC100が備えるプリンタドライバは、モノシリックドライバが用いられた。これに対し、本実施の形態では、プリンタドライバに、マイクロソフト(登録商標)のフレームワークを利用した開発用のミニドライバが用いられる。
まず、本実施の形態にかかるPC300の構成を説明する。なお、第2の実施の形態にかかる情報処理装置が接続された印刷システムの全体構成については、第1の実施の形態と同様である。図24は、本実施の形態にかかるPC300の構成を示すブロック図である。図24に示すように、PC300は、処理部101と、記憶部102と、通信部103とを備えている。処理部101は、図示しない制御手段としてのCPUと、ROMおよびメインメモリとなるRAMを有するメモリ群とを含んで構成されている。PC300の起動・実行時には、ROMおよび記憶部102からアプリケーション104と、OS105と、プリンタドライバ306と、プリントプロセッサ107とが、メインメモリ上にロードされ展開されて、これらがCPUにより実行される。なお、プリンタドライバ306以外の各部の機能および構成は第1の実施の形態と同様であるので、説明を省略する。
図25は、プリンタドライバ306の機能ブロック図である。なお、本実施の形態では、プリンタドライバ306には、マイクロソフト(登録商標)のフレームワークを利用したミニドライバが用いられる。
図25に示すように、プリンタドライバ306は、ミニドライバであるPscriptドライバ307と、Pscriptドライバ307に機能を追加するためのPscriptプラグイン308を備える。なお、ここでは、ミニドライバとしてPscriptドライバを用いる例を説明するが、ミニドライバはこれに限定されず、例えばUnidrv等であってもよい。
まず、Pscriptドライバ307は、UI部307aと、描画部307bと、送受信部307cとを備える。
UI部307aは、ユーザによる印刷設定を受け付けるユーザインタフェース(UI)を制御する。
描画部307bは、アプリケーション104で作成された印刷データをプリンタが理解可能な形式に変換する。例えば、描画部307bは、アプリケーション104からEMF形式で作成された印刷データを、RAW形式に変換する。
送受信部307cは、プリントプロセッサ107から第1描画ページおよび第2描画ページを、GDI105aを介して受信する。また、送受信部307cは、GDI105aからコマンドを受信する。
また、Pscriptプラグイン308は、UI部308aと、描画部308bと、出力制御部308cと、送受信部308dとを備える。
UI部308aは、ユーザによる印刷設定を受け付けるユーザインタフェース(UI)を制御する。
描画部308bは、アプリケーションで作成された印刷データをプリンタが理解可能な形式に変換する。例えば、描画部308bは、アプリケーションからEMF形式で作成された印刷データを、RAW形式に変換する。
送受信部308dは、プリントプロセッサ107から第1描画ページおよび第2描画ページを、Pscriptドライバ307を介して受信する。また、送受信部308dは、GDI105aからコマンドを受信する。
出力制御部308cは、Pscriptドライバ307から第1描画ページおよび第2描画ページを受信し、Pscriptドライバ307から受信したコマンドに従って、第2描画ページを追加した第1描画ページをプリンタ200に出力させる。例えば、出力制御部308cは、ページ開始、第1描画ページ(印刷データ)の呼び出し、第2描画ページ(描画データ)の呼び出し、ページ終了の処理によりプリンタ200に第2描画ページを付加した第1描画ページが描画された出力ページをプリンタ200に出力させる。
次に、以上のように構成されたPC300による描画データが付加された印刷データの印刷処理の手順について説明する。図26は、PC300による描画データが付加された印刷データの印刷処理の流れを示すシーケンス図である。
ステップS341からステップS352までの処理は、図23のシーケンス図で説明したステップS301からステップS312までの処理と同様である。なお、ステップS341からステップS352までの処理のうちPscriptドライバ307の処理は、図23におけるプリンタドライバ106の処理に相当する。
ステップS353において、Pscriptドライバ307は、Pscriptプラグイン308に通知を送信する(ステップS353)。Pscriptドライバ307は、Pscriptプラグイン308にDDIであるescape()関数をコールする。これにより、Pscriptプラグイン308は以降の動作を印刷データ上に描画データを付加する印刷処理に変更する。
ステップS354からステップS355までの処理は、図7のシーケンス図で説明したステップS111からステップS115までの処理と同様である。
ステップS359において、Pscriptドライバ307は、Pscriptプラグイン308にページ開始要求を送信する(ステップS359)。ここで、Pscriptドライバ307は、Pscriptプラグイン308にDDIであるstart Page()関数をコールする。Pscriptプラグイン308は、Pscriptドライバ307に応答し、ページ開始を実行する(ステップS360)。ここで、Pscriptドライバ307は、Pscriptプラグイン308にDDIであるDrv Start Page()関数をコールする。
ステップS361およびステップS362の処理は、図23のシーケンス図で説明したステップS318およびステップS319と同様である。
Pscriptドライバ307は、Pscriptプラグイン308にページ終了要求を送信する(ステップS363)。ここで、Pscriptドライバ307は、Pscriptプラグイン308にDDIであるsend Page()関数を送信する。
ここで、Pscriptプラグイン308は、Pscriptドライバ307からのページ終了要求に応答せず、ページ終了を実行しない。
ステップS364からステップS366までの処理は、図23のシーケンス図で説明したステップS321からステップS323までの処理と同様である。
ステップS367において、Pscriptドライバ307は、Pscriptプラグイン308にページ開始要求を送信する(ステップS367)。ここで、Pscriptドライバ307は、Pscriptプラグイン308にDDIであるStart Page()関数をコールする。
ここで、Pscriptプラグイン308は、Pscriptドライバ307からのページ開始要求に応答せず、ページ開始を実行しない。
ステップS368からステップS370までの処理は、図23のシーケンス図で説明したステップS325からステップS327までの処理と同様である。
ステップS371において、Pscriptドライバ307は、Pscriptプラグイン308にページ終了要求を送信する。ここで、Pscriptドライバ307は、Pscriptプラグイン308にDDIであるsend Page()関数を送信する(ステップS371)。
Pscriptプラグイン308は、これに応答し、ページ終了を実行する(ステップS372)。ここで、Pscriptプラグイン308は、Pscriptドライバ307に、DDIであるDrv Send Page()関数をコールする(ステップS372)。
ステップS373およびステップS374までの処理は、図23のシーケンス図で説明したステップS329およびステップS330の処理と同様である。
ステップS375において、Pscriptドライバ307は、Pscriptプラグイン308に印刷終了準備要求を送信する(ステップS375)。ここで、Pscriptドライバ307は、Pscriptプラグイン308にDDIであるend Doc()関数をコールする。
ステップS376からステップS377、およびステップS379の処理は、図23のシーケンス図で説明したステップS331からステップS333までの処理と同様である。
ステップS378において、Pscriptドライバ307は、Pscriptプラグイン308に印刷完了要求を送信する(ステップS378)。ここで、Pscriptドライバ307は、Pscriptプラグイン308にDDIであるDisable PDEV()関数をコールする。
ステップS311において、プリントプロセッサ107は、GDI105aに印刷開始指示を送信する(ステップS311)。ここで、プリントプロセッサ107は、GDIにExt Escape()関数をコールし、これにより、プリントプロセッサ107からプリンタドライバ106に描画データを含む印刷をする情報を通知する。
GDI105aは、プリンタドライバ106に通知を送信する(ステップS312)。ここで、GDI105aは、プリンタドライバ106にDDIであるDrv Escape()関数をコールし、これにより以降の動作を変更する。
このように、本実施の形態によれば、PCは印刷データ上に描画データを付加する設定を受け付けた場合、プリンタプロセッサが印刷データが描画される第1描画ページと描画データが描画される第2描画ページを生成し、Pscriptプラグインは生成された2ページを受信順に上から付加して1ページに出力するので、描画データを印刷データの前面に付加して印刷することができる。
次に、第1および第2の実施の形態にかかる情報処理装置のハードウェア構成について図27を用いて説明する。図27は、第1または第2の実施の形態にかかる情報処理装置のハードウェア構成を示す説明図である。
第1または第2の実施の形態にかかる情報処理装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(RANDOM Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、HDD(Hard Disk Drive)、CD(Compact Disc)ドライブ装置などの外部記憶装置と、ディスプレイ装置などの表示装置と、キーボードやマウスなどの入力装置と、各部を接続するバス61を備えており、通常のコンピュータを利用したハードウェア構成となっている。
第1または第2の実施の形態にかかる情報処理装置で実行される印刷プログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されてコンピュータプログラムプロダクトとして提供される。
また、第1または第2の実施の形態にかかる情報処理装置で実行される印刷プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1または第2の実施の形態にかかる情報処理装置で実行される印刷プログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
また、第1または第2の実施の形態の印刷プログラムを、ROM等に予め組み込んで提供するように構成してもよい。
第1または第2の実施の形態にかかる情報処理装置で実行される印刷プログラムは、上述した各部(生成部、描画部、出力制御部、送受信部)を含むモジュール構成となっており、実際のハードウェアとしてはCPU51(プロセッサ)が上記記憶媒体から印刷プログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、上述した各部が主記憶装置上に生成されるようになっている。
100、300 情報処理装置
101 処理部
102 記憶部
103 通信部
104 アプリケーション
105 OS
106、306 プリンタドライバ
106a、308a UI部
106b、307b、308b 描画部
106c、308c 出力制御部
106d、107b、307c、308d 送受信部
107 プリントプロセッサ
107a 生成部
180 ネットワーク
200a、200b プリンタ
307 Pscriptドライバ
308 Pscriptプラグイン
特開2002−333959号公報

Claims (7)

  1. コンピュータを、
    アプリケーションにより作成された印刷データが描画された第1描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第2描画ページを生成する生成部と、
    前記第1描画ページの次に、前記第2描画ページを送信する送信部と、
    前記第1描画ページおよび前記第2描画ページをそれぞれ開始する指示、および、前記第1描画ページおよび前記第2描画ページをそれぞれ終了する指示を受信する受信部と、
    前記第1描画ページを終了する指示、および、前記第2描画ページを開始する指示を実行しないことにより、前記第1描画ページ上に前記第2描画ページを付加して出力する出力制御部、
    として機能させるための印刷プログラム。
  2. 前記出力制御部は、前記送信部から前記第1描画ページを開始する指示を受信した場合に、前記第1描画ページの出力を開始して前記印刷データを前記第1描画ページに描画し、前記第1描画ページの次に前記第2描画ページを終了する指示を受信した場合に、前記第1描画ページの出力を終了せずに前記第2描画ページに描画された前記描画データを前記第1描画ページに描画し、前記第2描画データを描画した後に前記第1描画ページの出力を終了すること、
    を特徴とする請求項1に記載の印刷プログラム。
  3. 前記コンピュータを、プリンタドライバと、アプリケーションにより作成された印刷データのページを前記プリンタドライバに送信する処理を制御するページ制御部として機能させ、
    前記ページ制御部は、
    前記生成部と、
    前記描画部と、
    前記送信部と、を備え、
    前記プリンタドライバは、
    前記受信部と、
    前記出力制御部、
    を備えたことを特徴とする請求項1に記載の印刷プログラム。
  4. アプリケーションにより作成された印刷データが描画された第1描画ページ、および前記印刷データ上に付加されることが指定された描画データが描画された第2描画ページを生成する生成部と、
    前記第1描画ページの次に、前記第2描画ページを送信する送信部と、
    前記第1描画ページおよび前記第2描画ページをそれぞれ開始する指示、および、前記第1描画ページおよび前記第2描画ページをそれぞれ終了する指示を受信する受信部と、
    前記第1描画ページを終了する指示、および、前記第2描画ページを開始する指示を実行しないことにより、前記第1描画ページ上に前記第2描画ページを付加して出力する出力制御部と、
    を備えたことを特徴とする情報処理装置。
  5. 前記出力制御部は、前記送信部から前記第1描画ページを開始する指示を受信した場合に、前記第1描画ページの出力を開始して前記印刷データを前記第1描画ページに描画し、前記第1描画ページの次に前記第2描画ページを終了する指示を受信した場合に、前記第1描画ページの出力を終了せずに前記第2描画ページに描画された前記描画データを前記第1描画ページに描画し、前記描画データを描画した後に前記第1描画ページの出力を終了すること、
    を特徴とする請求項4に記載の情報処理装置。
  6. 前記情報処理装置は、プリンタドライバと、アプリケーションにより作成された印刷データのページを前記プリンタドライバに送信する処理を制御するページ制御部と、を備え、
    前記ページ制御部は、
    前記生成部と、
    前記描画部と、
    前記送信部と、を備え、
    前記プリンタドライバは、
    前記受信部と、
    前記出力制御部、
    を備えたことを特徴とする請求項4に記載の情報処理装置。
  7. 請求項1に記載の印刷プログラムを記憶したコンピュータ読み取り可能な記憶媒体。
JP2010268840A 2010-12-01 2010-12-01 印刷プログラム、情報処理装置および記録媒体 Pending JP2012118824A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010268840A JP2012118824A (ja) 2010-12-01 2010-12-01 印刷プログラム、情報処理装置および記録媒体
US13/297,468 US20120140269A1 (en) 2010-12-01 2011-11-16 Information processing device, information processing method, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010268840A JP2012118824A (ja) 2010-12-01 2010-12-01 印刷プログラム、情報処理装置および記録媒体

Publications (1)

Publication Number Publication Date
JP2012118824A true JP2012118824A (ja) 2012-06-21

Family

ID=46161979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010268840A Pending JP2012118824A (ja) 2010-12-01 2010-12-01 印刷プログラム、情報処理装置および記録媒体

Country Status (2)

Country Link
US (1) US20120140269A1 (ja)
JP (1) JP2012118824A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5821399B2 (ja) 2011-08-17 2015-11-24 株式会社リコー 印刷制御プログラム、情報処理装置及び記録媒体
JP5857611B2 (ja) 2011-10-13 2016-02-10 株式会社リコー 情報処理装置、システム、プログラム
JP5919930B2 (ja) 2012-03-21 2016-05-18 株式会社リコー プログラム、情報処理装置、記憶媒体
JP6115340B2 (ja) 2012-08-29 2017-04-19 株式会社リコー 情報処理装置、プリントシステムおよびプログラム
JP6331910B2 (ja) 2013-09-17 2018-05-30 株式会社リコー 情報処理装置、情報処理システム、及びプログラム
JP6447215B2 (ja) 2014-03-10 2019-01-09 株式会社リコー 情報配信システム、情報処理装置、情報配信方法及びプログラム
JP6531581B2 (ja) 2015-09-10 2019-06-19 株式会社リコー 情報配信システム、情報処理装置、情報配信方法及びプログラム
JP2017102901A (ja) 2015-11-19 2017-06-08 株式会社リコー プログラム、情報処理装置、設定方法および情報処理システム
JP6661409B2 (ja) * 2016-03-01 2020-03-11 キヤノン株式会社 自動設置システム、情報処理装置、情報処理装置の制御方法、及びプログラム
US10275192B2 (en) 2016-09-08 2019-04-30 Ricoh Company, Ltd. Information processing apparatus, image processing system, and printer driver
US10338857B2 (en) 2016-11-24 2019-07-02 Ricoh Company, Ltd. Information processing apparatus, information processing system, and information processing method
JP6834402B2 (ja) 2016-11-24 2021-02-24 株式会社リコー 情報処理装置、情報処理システム、情報処理方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182755A (ja) * 2003-11-27 2005-07-07 Canon Inc 印刷システム、印刷データ生成方法、及びプログラム
JP2008134960A (ja) * 2006-11-29 2008-06-12 Brother Ind Ltd 画像データ処理装置、プログラム、及び記録媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6268927B1 (en) * 1997-11-17 2001-07-31 Ricoh Company, Ltd. Computer-related form overlay method and apparatus
US6429947B1 (en) * 2000-01-10 2002-08-06 Imagex, Inc. Automated, hosted prepress application
US7298510B2 (en) * 2001-05-10 2007-11-20 Canon Kabushiki Kaisha Image enlargement through poster printing by combining pattern data with image data
JP4314052B2 (ja) * 2002-04-26 2009-08-12 キヤノン株式会社 情報処理装置、印刷処理方法、及びプログラム
JP4485293B2 (ja) * 2003-09-08 2010-06-16 株式会社リコー 情報処理装置、クライアント端末、画像形成装置、データ加工方法およびその方法をコンピュータに実行させるプログラム
US20060088160A1 (en) * 2004-10-27 2006-04-27 Lexmark International, Inc. Method and apparatus for generating and printing a security stamp with custom logo on an electrophotographic printer
CN100349159C (zh) * 2005-01-18 2007-11-14 北京北大方正电子有限公司 一种在页面光栅化时刻附加标记的方法
CN101089807A (zh) * 2006-06-16 2007-12-19 光宝科技股份有限公司 浮水印打印方法及打印装置
JP5121563B2 (ja) * 2008-05-13 2013-01-16 キヤノン株式会社 情報処理装置および情報処理方法、プログラム
US8848232B2 (en) * 2008-09-29 2014-09-30 Xerox Corporation Method and system of performing prepress operations using a shell document
JP2011098500A (ja) * 2009-11-05 2011-05-19 Canon Inc 画像形成装置、および画像形成装置制御方法、およびプログラム。

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005182755A (ja) * 2003-11-27 2005-07-07 Canon Inc 印刷システム、印刷データ生成方法、及びプログラム
JP2008134960A (ja) * 2006-11-29 2008-06-12 Brother Ind Ltd 画像データ処理装置、プログラム、及び記録媒体

Also Published As

Publication number Publication date
US20120140269A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
JP2012118824A (ja) 印刷プログラム、情報処理装置および記録媒体
US10032096B2 (en) Terminal and method to access an intelligent module adapted to connect to a printer, and to access a web server in which a web application is maintained
JP5072676B2 (ja) 情報処理装置、情報処理方法及び印刷システム
JP2004326603A (ja) 印刷制御システム、印刷制御装置、機能提供装置、印刷機能表示方法、コンピュータプログラム、及びコンピュータ読み取り可能な記録媒体
JP6381319B2 (ja) 情報処理装置、処理方法、及びプログラム
JP2018147259A (ja) 情報処理装置、プログラム、記憶媒体、情報処理方法
US20120140249A1 (en) Information processing device, information processing method, and computer program product
US8320001B2 (en) Information processing method and apparatus for banner printing
JP2014203391A (ja) 情報処理装置、情報処理方法及びプログラム
JP2011237901A (ja) プレビュー画面表示制御装置およびプログラム
JP2012146240A (ja) アプリケーションプログラムとプリンタードライバー間のデータ通信方法およびプログラム
JP2007011515A (ja) 印刷システム、印刷システムの制御方法及びプログラム
JP6773139B2 (ja) サーバー装置及び情報処理システム
JP2017130080A (ja) 印刷制御プログラムおよび印刷制御装置
JP6362423B2 (ja) リアルタイムコンフリクト処理システム
JP7395334B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP2014029633A (ja) 情報処理装置および印刷システム
JP5526863B2 (ja) プリンタドライバ、及び印刷制御装置
JP6639570B2 (ja) アプリケーションプログラム
JP2012168750A (ja) 印刷制御プログラム、情報処理装置、記録媒体、印刷システム及び印刷装置
JP2007334720A (ja) データ処理装置、印刷制御装置、印刷システム、データ処理方法、データ処理プログラム、及びそのプログラムを記録した記録媒体
JP2020017304A (ja) アプリケーション及び情報処理装置
JP2006251853A (ja) 印刷条件自動設定システム
JP2012098956A (ja) 情報処理装置、画像形成システム及びプログラム
JP2009093241A (ja) 印刷設定用プログラム及び印刷制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140708

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140709

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140905

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141014