JP2015176231A - 情報処理装置、情報処理方法及び情報処理システム - Google Patents

情報処理装置、情報処理方法及び情報処理システム Download PDF

Info

Publication number
JP2015176231A
JP2015176231A JP2014050457A JP2014050457A JP2015176231A JP 2015176231 A JP2015176231 A JP 2015176231A JP 2014050457 A JP2014050457 A JP 2014050457A JP 2014050457 A JP2014050457 A JP 2014050457A JP 2015176231 A JP2015176231 A JP 2015176231A
Authority
JP
Japan
Prior art keywords
data
information processing
unit
processing apparatus
emf
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
JP2014050457A
Other languages
English (en)
Inventor
将幸 佐伯
Masayuki Saeki
将幸 佐伯
輝壮 高橋
Terumasa Takahashi
輝壮 高橋
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 JP2014050457A priority Critical patent/JP2015176231A/ja
Priority to US14/641,790 priority patent/US20150262043A1/en
Publication of JP2015176231A publication Critical patent/JP2015176231A/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/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
    • 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

Abstract

【課題】 プリンタドライバが適切に処理可能な印刷用データを生成できるようにする。【解決手段】 一時メモリ描画部153が、所定の形式のグラフィックデータであるEMFデータに含まれる特定種類の描画要素を、ビットマップイメージとして描画して一時メモリ描画データ163を生成する。その後、印刷用データ描画部154が、上記EMFデータに基づきプリンタ描画領域164に描画処理を行って印刷用データを生成する際に、上記特定種類の描画要素については、一時メモリ描画データ163を構成するビットマップイメージのうち、その描画要素を配置すべき座標のイメージを、その描画要素に関する描画結果として用いるようにした。【選択図】 図10

Description

この発明は、所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する情報処理装置、情報処理方法及び情報処理システムに関する。
ある文書を印刷する際、印刷すべき画像を示すデータをMicrosoft Windows(登録商標)の画像ファイルフォーマットのグラフィックデータであるEMF(Enhances Metafile)形式でスプールし印刷することが従来から知られている。この場合、印刷に用いるプリンタを制御するプリンタドライバは、EMF形式のデータ(以下「EMFデータ」という)を、プリンタが解釈可能なページ記述言語(PDL)のデータに変換してプリンタに送信し、印刷を実行させる。
また、近年のオフィス環境においては、MFP(Multi-Function Peripheral)やレーザプリンタ、プリントサーバなどがネットワークに接続され、複数の出力装置が利用可能とされていることが多くなっている。そして、このような環境下において、特許文献1に記載のように、仮想プリンタドライバを介してスプールされたEMFデータを他のプリンタドライバに適宜に振り分けて出力する技術も知られている。
ところで、特許文献1に記載の技術においては、振り分け先のプリンタドライバは、ベンダや使用するページ記述言語も含めて、様々なものになり得る。そして、プリンタドライバによっては、EMFデータに含まれ得る一部の種類のレコードを適切に解釈できない場合がある。そして、適切に解釈できないレコードをプリンタドライバに処理させた場合、その部分が黒塗りになってしまう等、望んだ印刷結果を得ることができない。
このような問題は、EMFデータ以外のグラフィックデータを用いる場合にも同様に発生し得るものである。また、特許文献1に記載のような仮想プリンタドライバを用いるアーキテクチャ以外でも、発生し得るものである。
この発明は、このような事情に鑑みてなされたものであり、プリンタドライバが適切に処理可能な印刷用データを生成できるようにすることを目的とする。
以上の目的を達成するため、この発明の情報処理装置は、所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第1描画手段と、上記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第2描画手段であって、上記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、上記第1描画手段により上記一時描画領域に描画されたビットマップイメージのうち、その描画要素を配置すべき座標のイメージを、その描画要素に関する描画結果として用いる第2描画手段とを設けたものである。
上記構成によれば、プリンタドライバが適切に処理可能な印刷用データを生成することができる。
この発明を適用する環境におけるPCとプリンタとの関係の一例を示す図である。 図1に示したPCのハードウェア構成を示す図である。 図1に示したPCが備える、プリンタに印刷ジョブの実行を指示するための機能の構成を示す図である。 プリンタドライバによるEMFデータの処理の特性について説明するための図である。 その別の図である。 EMFデータにより記述する画像の例を示す図である。 図6の画像を記述するEMFデータの例を示す図である。 その別の例を示す図である。 印刷結果に生じる不具合の例を示す図である。 EMFデータの加工のために出力データ生成部に設けた機能の構成を示す図である。 差し替え矩形データの例を示す図である。 印刷用データ生成処理のフローチャートである。 図12の続きのフローチャートである。 比較例における出力データ生成部の機能構成を示す、図10と対応する図である。 比較例における、図12及び図13と対応する印刷用データ生成処理のフローチャートである。 第1変形例における、図12と対応する印刷用データ生成処理のフローチャートである。 第2変形例における出力データ生成部の機能構成を示す、図10と対応する図である。
以下、この発明を実施するための形態について、具体的に説明する。
〔実施形態:図1乃至図13〕
図1に、この発明を適用する環境におけるPCとプリンタとの関係の一例を示す。
図1に示す環境において、複数のPC10(10a〜10c)はそれぞれ、ネットワーク30を介して複数のプリンタ20(20a〜20c)と接続される。
これらのうちPC10a〜10cはそれぞれこの発明の情報処理装置の実施形態であり、図3に示すジョブ振り分け部100の機能により、後述のプリンタドライバ220に対して、画像形成(ここでは印刷とする)の実行を指示する。
このとき、ジョブ振り分け部100は、アプリケーションから受け付けたジョブ実行要求に係る印刷ジョブについて、そのジョブをどのプリンタ20に実行させるかを選択し、そのプリンタと対応するプリンタドライバ220に、必要なデータを供給してプリンタ20への印刷実行指示を行わせる。
PC10a〜PC10cは、共通の機種であることは必須ではないが、この実施形態において特徴的な機能については装置間で特に差がないので、以後の説明においては、1台を代表してPC10としてその機能について説明する。
また、プリンタ20a〜20cはそれぞれ、プリンタドライバ220からの印刷実行指示に従い印刷により用紙に画像を形成する画像形成装置である。プリンタ20a〜20cは互いに異なる機種であっても、同じ機種のものが複数含まれていてもよい。また、プリンタ20a〜20cの全部又は一部が、ネットワーク30を介さずにPC10のローカルのプリンタポートに接続されていても構わない。
ネットワーク30は、有線無線を問わず、任意の規格のものを使用可能である。
次に、図2に、PC10のハードウェア構成を示す。
PC10は、ハードウェアとしては一般的なコンピュータでよい。すなわち、PC10は、CPU11、ROM12、RAM13、HDD(ハードディスクドライブ)14、通信I/F(インタフェース)15、表示部16、及び操作部17を備え、それらをシステムバス18により接続した構成としている。
そして、CPU11が、RAM13をワークエリアとしてROM12又はHDD14に記憶されたプログラムを実行することにより、PC10全体を制御し、プリンタ20の制御や印刷用データの生成等の後述する各種機能を実現する。
HDD14は、不揮発性記憶媒体(記憶手段)であり、CPU11が実行する各種プログラムや後述する各種データを格納している。
通信I/F15は、プリンタ20をはじめとする外部装置と通信するためのインタフェースである。使用する通信規格は、有線、無線を問わず、任意でよい。
表示部16は、ディスプレイ等の、オペレータに情報を提示するための表示手段である。
操作部17は、キーボード、マウス、タッチパネル等の、オペレータから操作を受け付けるための操作手段である。
なお、表示部16や操作部17が外付けであったり、ネットワーク30を介してPC10等の外部の端末装置から操作を受け付けることができるようにしたりしてもよい。
次に、図3に、PC10が備える、プリンタ20に印刷ジョブの実行を指示するための機能の構成を示す。
図3に示すように、PC10は、ジョブ振り分け部100と、アプリケーション150、プリンタドライバ220(220a〜220c)とを備える。
このうちジョブ振り分け部100は、アプリケーション150から受信した印刷ジョブの実行要求に基づき、複数のプリンタ20a〜20cのいずれを印刷に使用するかを、出力先選択部132により選択する。
そして、印刷ジョブの実行要求に基づき、その選択したプリンタ20に印刷を実行させるためのプリンタドライバ220が扱える形式のイメージデータ及び印刷設定データを生成し、これをそのプリンタドライバ220に渡す。
そして、プリンタドライバ220がその受け取ったイメージデータ及び印刷設定データに基づきプリンタ20を制御して印刷を実行させる。
このことにより、アプリケーション150が出力した印刷ジョブの実行要求に基づき、自動的に適切なプリンタ20を選択し、そのプリンタ20に印刷を実行させることができる。プリンタの選択の基準は、ユーザ名、クライアント名、アドレス情報、印刷設定の内容、文書のページ数、機密ワードの有無など、種々の情報を用いて定めることができる。
なお、アプリケーション150は、アプリケーションソフトウェアにより実現される機能であり、ユーザの操作に従って文書を編集又は操作する機能を備える。このアプリケーション150が実現する機能としては、ワードプロセッサ、画像作成・編集・加工、表計算等が考えられる。
ジョブ振り分け部100の機能構成についてより具体的に説明すると、ジョブ振り分け部100は、仮想ドライバ110、出力データ生成部131、出力先選択部132、およびデータ発送部133を備える。
これらのうち仮想ドライバ110は、Unidrv(Microsoft Universal Printer Driver Library)ベースのminiドライバであり、PublicのDEVMODE相当の印刷設定が可能なプリンタドライバである。そして、仮想ドライバ110は、アプリケーション150からの印刷ジョブ実行要求を受け付ける受付手段として機能する。さらに、印刷ジョブ実行要求と共に受け取った印刷ジョブのデータであるEMF(Enhanced Metafile)スプールファイルから、印刷内容を示す所定の形式のグラフィックデータであるEMFデータを抽出し、中間ファイル120に、EMFデータ(描画イメージデータ)121として保存する機能を備える。
また、仮想ドライバ110は、印刷ジョブ実行要求と共に受信した印刷設定(これも印刷ジョブのデータの一部である)を、中間ファイル120にジョブ情報(印刷設定データ)122として保存する機能も備える。なお、ジョブ情報122はシステム情報も含む。
また、仮想ドライバ110は、印刷ジョブ実行要求を受け取ると、出力データ生成部131を起動する。
この出力データ生成部131は、中間ファイル120に保存されたEMFデータ121及びジョブ情報122を取得し、これらに基づいて、プリンタドライバ220に印刷を実行させるためのデータを生成する機能を備える。
この生成に当たり、出力データ生成部131は、選択手段である出力先選択部132に、EMFデータ121及びジョブ情報122の中からプリンタの選択に必要な情報を渡し、EMFデータ121及びジョブ情報122に係る印刷ジョブを実行するプリンタを選択させる。この選択の基準や規則が種々考えられることは、上述の通りである。
そして、出力データ生成部131は、出力先選択部132が選択したプリンタ20における印刷を制御するためのプリンタドライバ220が解釈できる形式のイメージデータ及び印刷設定データを生成し、データ発送部133に渡す。このうちイメージデータが印刷用データに該当する。また、出力データ生成部131は、任意のプラグインを起動し、EMFデータ121及び/又はジョブ情報の加工を行うこともできる。
データ発送部133は、出力先選択部132が選択したプリンタドライバ220に対し、出力データ生成部131から渡されたイメージデータ及び印刷設定データを送信し、それらに基づく印刷ジョブの実行を要求する機能を備える。
以上により、PC10は、アプリケーション150が出力した印刷ジョブの実行要求に対し、必要な加工を行った上で、適当なプリンタ20にその加工後のジョブを実行させることができる。
この実施形態において特徴的な点の一つは、出力データ生成部131が印刷用データを生成する際に行う描画処理である。以下、この点について説明する。
まず、プリンタドライバ220によるEMFデータの処理の特性について、説明する。
図4に、プリンタドライバ220がアプリケーション150から仮想ドライバ110を介さずにEMFデータ163を受け取る場合の処理の流れを示す。なお、プリンタドライバは、ページ記述言語としてPostScriptを用いるドライバであるとする。そして、EMF形式において定義され、EMFデータに含まれ得るいくつかの描画要素(EMFデータにおいては「レコード」と呼ばれる描画内容の単位)は、PostScriptを用いて適切に解釈することができず、プリンタドライバ220では正常に処理することができない。
しかし、この場合でも、アプリケーション150からのEMFデータの渡し先がプリンタドライバ220である場合、OS(オペレーティングシステム、ここではMicrosoft Windows(登録商標)であるとする)は、プリンタドライバ220がPostScriptを用いるプリンタであると把握できる。そして、アプリケーション150がOSのAPI(Application Programming Interface)に対して出力した印刷内容を示すデータを、APIが、PostScriptが解釈可能な描画要素のみを用いたEMFデータ201に変換してプリンタドライバ220に渡す。
従って、プリンタドライバ220は、渡されたEMFデータ201を適切に処理してPostScriptによるページ記述に変換することができる。そして、これをプリンタ20に渡して印刷を実行させ、適切な印刷結果を得ることができる。
しかし、図3に示すように、アプリケーション150から仮想ドライバ110を介してプリンタドライバ220にEMFデータを渡す場合には、問題がある。
図5に、この場合の処理の流れを示す。
図5の場合、アプリケーション150からのEMFデータの渡し先は、仮想ドライバ110となる。ここで、仮想ドライバ110がページ記述言語としてPostScript以外の言語を用いるとする。この場合も、図4の場合と同様に、OSは、仮想ドライバ110が用いるページ記述言語を把握することができる。そして、OSのAPIは、アプリケーション150が出力した印刷内容を示すデータを、仮想ドライバ110が用いる(PostScript以外の)ページ記述言語により解釈可能な描画要素のみを用いたEMFデータ202に変換して仮想ドライバ110に渡す。このEMFデータ202には、PostScriptでは正しく解釈できない描画要素が含まれ得る。
仮想ドライバ110は、このEMFデータ202に対して独自に加工を施して、出力データ生成部131の機能によりいずれかのプリンタドライバ220に渡す。このとき、EMFデータ202をPostScriptに対応させるための特段の対応をしないとすると、プリンタドライバ220に渡る段階でも、EMFデータ202にはPostScriptでは正しく解釈できない描画要素が含まれ得る。
このため、プリンタドライバ220が渡されたEMFデータ202を処理しても、適切にPostScriptによるページ記述に変換できない可能性がある。そして、これをプリンタ20に渡して印刷を実行させても、適切な印刷結果を得ることができない可能性がある。
PostScriptが正しく解釈できないEMFデータの描画要素は、例えば太字又は斜体のフォントスタイルを使用した場合に発生し得る。ここで、太字の場合を例としてPostScriptが正しく解釈できない描画要素の例を示す。
図6に示すような、3行の文字列「あいうえお」「かきくけこ」「さしすせそ」のうち、2行目の「かきくけこ」が太字である画像をEMFデータとして記述することを考える。
図6の画像を、PostScriptで正しく解釈可能なEMFデータで記述すると、図7のようになる。なお、ここではEMFデータの要部のみを示している。図8においても同様である。
図7のEMFデータでは、レコード1〜3で各1行の文字列を表している。符号51で示す「type=text」は、後に続くデータがテキストであることを示す情報である。符号52で示す「text=“文字列”」は、配置すべき文字列を示す情報である。符号53で示す「font_style=xxxx」は、該当のレコードに係るテキストを装飾なし(nomal)又は太字(bold)とすべきことを示す情報である。符号54で示す「(x1,y1,x2,y2)=xxxx」は、該当のレコードに係る描画オブジェクト(ここではテキスト)を配置する座標を示す情報である。この座標は、描画オブジェクトを配置する矩形領域の左上隅(x1,y1)及び右下隅(x2,y2)の座標である。
一方、図6の画像は、図8のように記述することもできる。
図8のEMFデータにおいても、レコード1とレコード3は図7の例と同じである。しかしながら、レコード2は異なる。符号55で示す「type=bitmap」は、後に続くデータがビットマップであることを示す情報である。符号56で示す「image=”(画像データ)”」は、配置すべきビットマップ画像を格納したファイルの位置及び名称を示す情報である。すなわち、この例では、2行目の文字列を画像として表現している。符号57で示す「ROP=PATINVERT」は、論理XOR演算子を使って、指定したパターン(ビットマップ)の色と、配置先領域の色(例えば背景)とを組み合わせるべきことを指定するラスタオペレーションコードである。座標の記載は、図7の例と同じである。
PostScriptを用いると、図8のEMFデータのうち「ROP=PATINVERT」を解釈することができない。このため、PostScriptを用いるプリンタドライバを用いて図8のEMFデータに基づく印刷を行うと、図9に示すように、レコード2と対応するオブジェクトが、黒塗りの状態で印刷される不具合が起きてしまう。
このような不具合の発生を防止するため、この実施形態では、仮想ドライバ110とプリンタドライバ220の間に位置する出力データ生成部131が、EMFデータ121に適切な加工を施すようにしている。
図10に、この加工のために出力データ生成部131に設けた機能の構成を示す。
出力データ生成部131には、EMFレコード抽出部151、差し替え矩形抽出部152、一時メモリ描画部153、および印刷用データ描画部154を設けている。EMFレコードデータ161、差し替え矩形データ162、および一時メモリ描画データ163は、これらの各部が動作する際に生成及び参照するデータである。プリンタ描画領域164は、印刷用データとしてプリンタドライバ220に渡すEMFデータを作成するためのメモリ領域である。
なお、図10の各部の機能は、グラフィックデータである、PostScriptで解釈可能か否か不明な(PostScriptに対応している保証がない)EMFデータに基づき、印刷用データである、PostScriptで解釈可能なEMFデータを生成する場合の例として説明する。しかし、出力データ生成部131が行う印刷用データ生成処理がこれに限られないことは、後述の通りである。ここで、グラフィックデータは、画像の内容を示すデータ、印刷用データは、印刷すべき画像の内容を示すデータであって、プリンタドライバ220に渡して印刷を実行させるためのデータである。
さて、図10の各部のうち、EMFレコード抽出部151は、処理対象のEMFデータから、EMFレコード(図7及び図8に示した「レコード」に相当するもの)を抽出し、それらをEMFレコードデータ161として保存する機能を備える。なお、処理対象のEMFデータは、中間ファイル120中のEMFデータ121に、出力データ生成部131において、図10の各部が行う印刷用データの生成を除く必要な加工を施した後のデータである。
差し替え矩形抽出部152は、EMFレコードデータ161から、PostScriptが解釈できない情報を含むレコードを抽出し、そのレコードと対応する描画オブジェクトが描画時に配置される領域の座標を、差し替え矩形データ162として保存する機能を備える。この差し替え矩形抽出部152が抽出するレコードが、特定種類の描画要素である。どの種類のレコードを抽出するかは、予め設定しておく。ここでは、図8を用いて説明した「PATINVERT」を含むレコードを抽出するものとするが、特定種類は1種類には限らない。また、各領域の形状は、PostScriptを考慮した場合に抽出されるレコードでは矩形であるが、抽出するレコードの種類によっては他の形状の場合もあり得る。
図11に差し替え矩形データの例を示すが、このデータには、特定種類の描画要素(図11では「差し替え矩形」)毎に、その描画要素と対応する描画オブジェクトの配置領域の座標のデータを含む。この例では領域の形状が矩形であるため、左上の頂点座標(X1,Y1)と右下の頂点座標(X2,Y2)により領域の座標を示している。
次に、一時メモリ描画部153は、差し替え矩形データ162を参照しつつ、差し替え矩形抽出部152が抽出した各EMFレコードを、ビットマップイメージとして後述の一時メモリ描画領域に描画し、一時メモリ描画データ163を生成する第1描画手段の機能を備える。この一時メモリ描画部153としては、EMFデータに含まれ得る全ての種類のレコードを適切に解釈し描画できるモジュールを用いる。例えば、ディスプレイ表示用のビットマップイメージを生成するための描画モジュールを利用することが考えられる。また、一時メモリ描画データ163は、印刷用データの生成の際にEMFレコードの差し替えに用いる画像を含むビットマップイメージである。
印刷用データ描画部154は、EMFレコードデータ161に基づき、プリンタ描画領域164に対して描画処理を行い、プリンタ描画領域164中に印刷用データを生成する第2描画手段の機能を備える。なお、この描画処理に際し、上記の特定種類以外の描画要素は、そのままプリンタ描画領域164に書き込む。上記特定種類の描画要素については、一時メモリ描画データ163のビットマップイメージのうち、該当の描画要素を配置すべき座標のイメージを、該当の描画要素に関する描画結果として用いる。そして、そのビットマップイメージを、プリンタ描画領域164のその座標に描画する。
以上の各部により、出力データ生成部131は、処理対象のEMFデータのうち、PostScriptが解釈できないレコードを、PostScriptが解釈できるビットマップ描画用のレコードに置き換えることができる。そして、このことにより、PostScriptで解釈可能なEMFデータを、印刷用データとして生成することができる。そして、処理対象のEMFデータと、生成した印刷用データとで、表す画像の内容は共通である。この印刷用データは、PostScriptに対応したプリンタドライバ220が適切に処理し、プリンタ20による印刷の制御に用いることできる。
次に、図10に示した各部の機能により印刷用データ生成の動作を行う場合の処理の流れについて説明する。図12及び図13が、その処理の流れを示すフローチャートである。これらの図に示す処理は、PC10のCPU11が、所要のプログラムを実行することにより行うものである。
CPU11は、出力データ生成部131の機能により、EMFデータ121に対し印刷用データの生成を除く必要な加工が完了したことを検出すると、その加工後のEMFデータを処理対象として図12の処理を開始する。
この処理において、CPU11はまず、処理対象のEMFデータからEMFレコードを抽出して、EMFレコードデータ161として記憶する(S11)。この処理は、EMFレコード抽出部151の機能と対応する処理である。
次に、CPU11は、EMFレコードデータ161のうち、予め設定された特定種類の描画要素に係るデータを描画すべき領域を特定し、その領域の座標を差し替え矩形データ162として記憶する(S12)。この処理は、EMFレコード抽出部151の機能と対応する処理である。
次に、CPU11はメモリ上にビットマップ領域を予約する(S13)。そして、予約したビットマップ領域のうち、差し替え矩形データ162が示す領域の描画に必要な領域を、一時描画領域である一時メモリ描画領域171として確保し、残りの領域を解放する(S14)。その後、CPU11は、確保した一時メモリ描画領域171に背景を描画する(S15)。
さらに、CPU11は、EMSレコードデータ161のうち特定種類の描画要素に係るデータが示す画像を一時メモリ描画領域にビットマップイメージとして描画して、一時メモリ描画データ163を生成する(S16)。特定種類の描画要素に係る描画が全て終了した後の一時メモリ描画領域171のデータが、一時メモリ描画データ163である。なお、Windows(登録商標)で用意されている描画用APIの仕様に従えば、ステップS16で参照するEMFレコードデータは、ステップS16の処理を行う際に、ステップS11の場合と同様にEMFデータから生成する。ここまでのステップS13〜S16の処理は、一時メモリ描画部153の機能と対応する第1描画手順の処理である。
なお、ステップS14で確保する領域のサイズは、差し替え矩形データ162が示す各描画要素の描画に必要なサイズである。このサイズは、各描画要素と対応する領域の広さの合計であり、描画要素1つ分の領域毎に、該領域の座標を示す情報を設ける。ステップS16では、各描画要素に係るデータが示す画像を、その描画要素を配置すべき座標が付された領域に描画する。
以上のステップS16の後、処理は図13に示す部分に進む。この部分の処理は、印刷用データ描画部154の機能と対応する第2描画手順の処理である。
そして、CPU11は、EMFレコードデータ161に含まれる未処理のEMFレコードの1つを処理対象とする(S21)。なお、Windows(登録商標)で用意されている描画用APIの仕様に従えば、ステップS21で参照するEMFレコードデータは、ステップS21の処理を行う際に、ステップS11の場合と同様にEMFデータから生成する。
そして、処理対象のEMFレコードが、特定種類の描画要素に当たるものであるか否か判断する(S22)。これがNoであれば、CPU11は、処理対象のEMFレコードに基づきプリンタ描画領域164に描画を行う(S23)。ステップS22でYesであれば、一時メモリ描画データ163のうち処理対象のEMFレコードの描画要素を配置すべき座標のビットマップイメージを取得し(S24)、取得したビットマップイメージをプリンタ描画領域164に描画する(S25)。
いずれの場合も、未処理のEMFレコードがある場合にはステップS21に戻り、次のEMFレコードを処理対象として処理を繰り返す(S26のYes)。全てのEMFレコードについて処理が完了すると(S26のNo)、図13の処理を終了する。
CPU11は、以上の処理により、PostScriptで解釈可能な印刷用データを生成することができる。
〔比較例:図14,図15〕
次に、比較例を用いて上述した実施形態の効果について説明する。
図14に、この比較例における出力データ生成部の機能構成を示す。
この比較例は、出力データ生成部におけるEMFデータ加工のための構成が図10に示したものではなく図14に示したものである点以外は、上述した実施形態と同じものである。
そして、出力データ生成部231は、EMFレコード抽出部151と、印刷用データ描画部194とを備える。
これらのうちEMFレコード抽出部151の機能は、図10に示したものと同じである。
印刷用データ描画部194は、EMFレコードデータ161に基づき、プリンタ描画領域164に対して描画処理を行い、プリンタ描画領域164中に印刷用データを生成する第2描画手段の機能を備える。なお、この描画処理に際し、全ての描画要素を、そのままプリンタ描画領域164に書き込む。
次に、図15に、図14に示した各部が印刷用データ生成の動作を行う場合の処理の流れを示す。図15は、図12及び図13と対応するフローチャートである。
そして、図15の処理は、図12のステップS11と、図13のステップS21、S23及びS26の処理を順次行うものである。
以上の処理でも、一応、プリンタドライバ220が処理可能な印刷用データを生成することができる。しかしながら、図15の処理で生成した印刷用データには、PoseScriptで解釈できない描画要素が含まれている可能性があり、この印刷用データを用いると印刷結果に図9に示したような不具合が発生する可能性がある。
これに対し、上述した実施形態における図12及び図13に示した処理で印刷用データを生成すれば、このような問題は起こらない。
〔第1変形例:図16〕
次に、上述した実施形態の第1変形例について説明する。
この第1変形例は、一時メモリ描画領域171の確保の仕方が上述の実施形態と異なり、これに伴って図12の処理に代えて図16の処理を実行する点が異なるのみである。そこで、この点についてのみ説明する。
図16の処理は、ステップS12がなく、また、ステップS14に代えてステップS14′の処理を行う点が図12の処理と異なる。ステップS14′では、CPU11は、ステップS13で予約したビットマップ領域のうち、処理対象のEMFデータ全体が示すイメージのサイズ分の領域を一時メモリ描画領域171として確保し、残りの領域を解放する。
そして、これに応じて、ステップS16で描画を行う際には、各描画要素に係るデータが示す画像を、その描画要素を配置すべき座標と対応するアドレスに描画すればよい。図13のステップS24でも、該当の描画要素を配置すべき座標と対応するアドレスから、ビットマップイメージを取得すればよい。
その他の点では、図16の処理は図12の処理と共通である。
なお、この構成を採る場合、差し替え矩形データ162は使用しないため、差し替え矩形抽出部152は不要である。
このような構成であっても、印刷用データの生成は、上述した実施形態の場合と同様に行うことができる。ただし、この変形例では、一時メモリ描画領域171として用いるメモリの容量が上述した実施形態の場合よりも多くなる。A4サイズの場合には120メガバイト程度である。したがって、メモリ容量を節約するためには、上述した実施形態の処理の方が好ましいと言える。
〔第2変形例:図17〕
次に、上述した実施形態の第2変形例について説明する。
この第2変形例は、特定種類とする描画要素の種類を変更することができるようにした点が、第1実施形態と異なるのみである。そこで、この点についてのみ説明する。
図17に、この第2変形例における出力データ生成部の機能の構成を示す。
図17に示す出力データ生成部131′は、図10に示した出力データ生成部131に、差し替え要素設定部155及び対応言語識別部156を追加したものである。
そして、差し替え要素設定部155は、差し替え矩形抽出部152、一時メモリ描画部153及び印刷用データ描画部154における、特定種類の描画要素の判断基準を変更する変更手段の機能を備える。
対応言語識別部156は、印刷用データの送信先となったプリンタドライバ220が取り扱うページ記述言語の形式を識別する識別手段の機能を備える。
プリンタドライバ220が用いるページ記述言語が異なれば、解釈が行えない描画要素の種類も異なる。したがって、ページ記述言語の種類と対応づけて、そのページ記述言語で解釈できない描画要素の種類の情報を用意しておくとよい。そして、対応言語識別部156による検出結果に応じて、差し替え要素設定部155が、特定種類とする描画要素の種類を、その検出結果のページ記述言語と対応する種類に変更するとよい。
このようにすれば、プリンタドライバ220a〜220cが取り扱うページ記述言語の種類がまちまちである場合も、出力先選択部132による出力先の選択結果によらず、出力先のプリンタドライバ220が解釈可能な印刷データを生成できる。PostScript以外のページ記述言語としては、例えばPCL(Printer Control Language)やPCL6が考えられる。
なお、差し替え要素設定部155が設定する特定種類の描画要素の判断基準は、ユーザが手動で編集可能としてもよい。出力データ生成部131′の運用中に、特定種類の描画要素とすべき描画要素を新たに発見した場合に、これを追加する等である。また、どのページ記述言語に対応した判断基準を用いるかを、ユーザが手動で切り替えられるようにしてもよい。使用するページ記述言語が決まっている場合は、この方が処理を高速化できる。
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成、装置の数、処理の手順、取り扱うデータの構成及び形式等は、実施形態で説明したものに限るものではない。
また、ユーザの操作に応じて又は何らかのトリガイベントの検出に応じて自動的に、出力データ生成部131における、ビットマップイメージの描画及び、特定種類の描画要素を描画したビットマップイメージに置き換える機能の有効/無効を切り替える切替手段を設けてもよい。使用するプリンタドライバ220が、仮想ドライバ110と同じページ記述言語を使用するものである場合には、上記の置き換え処理を行わなくても印刷に支障はないと考えられる。そこで、このような場合に置き換えの機能を無効にできれば、出力データ生成部131の処理を高速化するとともに、メモリ使用量を低減できる。
また、上述した実施形態におけるPC10の機能は、複数の情報処理装置に任意に分散して設け、それらの装置が協働して同様な機能を実現するようにしてもよい。特に、プリンタドライバ220は、PC10に設けず、別途プリントサーバを用意して、そのプリントサーバに設けてもよい。PC10自体あるいはこのような複数の情報処理装置により構成されるシステムが、この発明の情報処理システムの実施形態である。
また、以上説明してきた実施形態及び変形例の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることは勿論である。
10:PC、11:CPU、12:ROM、13:RAM、14:HDD、15:通信I/F、16:表示部、17:操作部、18:システムバス、20:プリンタ、30:ネットワーク、100:ジョブ振り分け部、110:仮想ドライバ、120:中間ファイル、121,201,202:EMFデータ、122:ジョブ情報、131,131′,231:出力データ生成部、132:出力先選択部、133:データ発送部、150:アプリケーション、151:EMFレコード抽出部、152:差し替え矩形抽出部、153:一時メモリ描画部、154,194:印刷用データ描画部、155:差し替え要素設定部、156:対応言語識別部、161:EMFレコードデータ、162:差し替え矩形データ、163:一時メモリ描画データ、164:プリンタ描画領域、171:一時メモリ描画領域、220:プリンタドライバ
特開2011−2881号公報

Claims (9)

  1. 所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第1描画手段と、
    前記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第2描画手段であって、前記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、前記第1描画手段により前記一時描画領域に描画されたビットマップイメージのうち、該描画要素を配置すべき座標のイメージを、該描画要素に関する描画結果として用いる第2描画手段とを備えることを特徴とする情報処理装置。
  2. 請求項1に記載の情報処理装置であって、
    前記第1描画手段は、前記グラフィックデータのうち前記特定種類の描画要素を選択して、前記ビットマップイメージとして前記一時描画領域に描画し、前記一時描画領域として、該特定種類の描画要素の描画に必要なサイズの領域を確保することを特徴とする情報処理装置。
  3. 請求項1又は2に記載の情報処理装置であって、
    前記特定種類とする描画要素の種類を変更する変更手段を備えたことを特徴とする情報処理装置。
  4. 請求項1乃至3のいずれか一項に記載の情報処理装置であって、
    前記第1描画手段の機能及び、前記第2描画手段が前記特定の描画要素の描画に前記一時描画領域のビットマップイメージを用いる機能の有効/無効を切り替える切替手段を備えることを特徴とする情報処理装置。
  5. 請求項1乃至4のいずれか一項に記載の情報処理装置であって、
    前記第2描画手段にどのページ記述言語に対応した印刷用データを生成させるかを選択する選択手段と、
    前記特定種類とする描画要素の種類を、前記選択手段が選択したページ記述言語に応じて設定する設定手段を備えたことを特徴とする情報処理装置。
  6. 請求項1乃至5のいずれか一項に記載の情報処理装置であって、
    前記第2描画手段が生成する印刷用データに基づき印刷を制御するプリンタドライバが取り扱うページ記述言語の形式を識別する識別手段と、
    前記特定種類とする描画要素の種類を、前記識別手段が識別したページ記述言語に応じて設定する設定手段とを備えたとを特徴とする情報処理装置。
  7. 請求項1乃至5のいずれか一項に記載の情報処理装置であって、
    前記第2描画手段が生成する印刷用データに基づき印刷を制御させるプリンタドライバを、所定の規則に従って選択する選択手段と、
    前記選択手段が選択したプリンタドライバが取り扱うページ記述言語の形式を識別する識別手段と、
    前記特定種類とする描画要素の種類を、前記識別手段が識別したページ記述言語に応じて設定する設定手段とを備えることを特徴とする情報処理装置。
  8. 所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第1描画手順と、
    前記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第2描画手順であって、前記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、前記第1描画手段により前記一時描画領域に描画されたビットマップイメージのうち、該描画要素を配置すべき座標のイメージを、該描画要素に関する描画結果として用いる第2描画手順とを備えることを特徴とする情報処理方法。
  9. 所定の形式のグラフィックデータを、ビットマップイメージとして一時描画領域に描画する第1描画手段と、
    前記所定の形式のグラフィックデータに基づき描画処理を行って印刷用データを生成する第2描画手段であって、前記所定の形式において定義される描画要素の種類のうち、予め定めた特定種類の描画要素については、前記第1描画手段により前記一時描画領域に描画されたビットマップイメージのうち、該描画要素を配置すべき座標のイメージを、該描画要素に関する描画結果として用いる第2描画手段とを備えることを特徴とする情報処理システム。
JP2014050457A 2014-03-13 2014-03-13 情報処理装置、情報処理方法及び情報処理システム Pending JP2015176231A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014050457A JP2015176231A (ja) 2014-03-13 2014-03-13 情報処理装置、情報処理方法及び情報処理システム
US14/641,790 US20150262043A1 (en) 2014-03-13 2015-03-09 Information processing apparatus, information processing method, and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014050457A JP2015176231A (ja) 2014-03-13 2014-03-13 情報処理装置、情報処理方法及び情報処理システム

Publications (1)

Publication Number Publication Date
JP2015176231A true JP2015176231A (ja) 2015-10-05

Family

ID=54069205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014050457A Pending JP2015176231A (ja) 2014-03-13 2014-03-13 情報処理装置、情報処理方法及び情報処理システム

Country Status (2)

Country Link
US (1) US20150262043A1 (ja)
JP (1) JP2015176231A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10043115B2 (en) * 2015-05-08 2018-08-07 Canon Kabushiki Kaisha Image forming apparatus for printing image data generated by reading document, method for controlling the same, and storage medium storing computer program for executing the method
CN114489910A (zh) * 2022-02-10 2022-05-13 北京字跳网络技术有限公司 一种视频会议数据显示方法、装置、设备及介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6870633B1 (en) * 1996-09-30 2005-03-22 Brother Kogyo Kabushiki Kaisha Printing device
JP2001036751A (ja) * 1999-05-20 2001-02-09 Canon Inc 画像処理装置および画像処理方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体
JP2001075772A (ja) * 1999-06-29 2001-03-23 Mitsubishi Electric Corp 画像表示装置および画像表示方法
US6853466B1 (en) * 1999-11-24 2005-02-08 Canon Kabushiki Kaisha Image processing apparatus and method
JP2006110861A (ja) * 2004-10-14 2006-04-27 Canon Inc 画像形成装置、画像形成方法及びそのプログラム
JP4661932B2 (ja) * 2008-09-25 2011-03-30 富士ゼロックス株式会社 画像形成装置および画像形成制御プログラム
JP5630061B2 (ja) * 2010-04-05 2014-11-26 ブラザー工業株式会社 情報処理装置及びプログラム
JP5377685B2 (ja) * 2012-01-31 2013-12-25 京セラドキュメントソリューションズ株式会社 画像形成装置及び画像形成プログラム

Also Published As

Publication number Publication date
US20150262043A1 (en) 2015-09-17

Similar Documents

Publication Publication Date Title
US7907313B2 (en) Management of multiple printer drivers
JP5621793B2 (ja) 印刷システム、印刷制御装置、および印刷制御プログラム
US9367266B2 (en) Information processing apparatus, control method, and storage medium
JP2020004158A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US8988715B2 (en) Information processing apparatus, control method, and storage medium
JP5704834B2 (ja) 情報処理装置および制御方法およびプログラム
JP2009230413A (ja) 情報処理装置、情報処理方法及び印刷システム
US20150015910A1 (en) Image processing apparatus, control method, and storage medium for executing print processing using a password
US20120140249A1 (en) Information processing device, information processing method, and computer program product
JP6575270B2 (ja) 印刷設定支援装置及びプログラム
JP2006215725A (ja) 印刷システムおよびプリンタ管理方法およびコンピュータが読み取り可能なプログラムを格納した記憶媒体およびプログラム
JP2015176231A (ja) 情報処理装置、情報処理方法及び情報処理システム
JP2023018114A (ja) プログラム、情報処理装置、及び情報処理装置の制御方法
JP5857594B2 (ja) 分散印刷システム及び印刷装置
JP6234417B2 (ja) 情報処理装置及びその制御方法とプログラム
JP2005018494A (ja) データ処理装置および印刷データ生成方法およびコンピュータが読取り可能なプログラムを格納した記憶媒体およびプログラム
JP5526863B2 (ja) プリンタドライバ、及び印刷制御装置
JP6007015B2 (ja) 画像形成装置及び画像形成プログラム
JP2008269260A (ja) データ処理装置、データ処理方法及びそのプログラム
US9256913B2 (en) Information processing apparatus, control method thereof, and program
JP2015045976A (ja) 印刷制御プログラム、情報処理装置及び印刷システム
JP2006338166A (ja) 情報処理装置及びその制御方法、プログラム
JP2015138368A (ja) ジョブ処理システム、ジョブ処理方法およびプログラム
JP6206207B2 (ja) 印刷制御装置の制御方法、印刷制御装置の制御プログラム、および印刷制御装置の制御プログラムを記録したコンピューター読み取り可能な記録媒体
JP2005159764A (ja) 記録方法及び装置及びプログラム及び記憶媒体