JP2009241524A - 画像出力装置 - Google Patents

画像出力装置 Download PDF

Info

Publication number
JP2009241524A
JP2009241524A JP2008093652A JP2008093652A JP2009241524A JP 2009241524 A JP2009241524 A JP 2009241524A JP 2008093652 A JP2008093652 A JP 2008093652A JP 2008093652 A JP2008093652 A JP 2008093652A JP 2009241524 A JP2009241524 A JP 2009241524A
Authority
JP
Japan
Prior art keywords
data
image
image data
intermediate language
output
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
JP2008093652A
Other languages
English (en)
Inventor
Nobuo Mizutani
宣夫 水谷
Kunihiko Sakurai
功仁彦 櫻井
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.)
Brother Industries Ltd
Original Assignee
Brother Industries 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 Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2008093652A priority Critical patent/JP2009241524A/ja
Priority to US12/405,107 priority patent/US20090244610A1/en
Priority to EP09250758.1A priority patent/EP2109066B1/en
Priority to CN200910128694.6A priority patent/CN101551866B/zh
Publication of JP2009241524A publication Critical patent/JP2009241524A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/1801Input data handling means
    • G06K15/181Receiving print data characterized by its formatting, e.g. particular page description languages
    • G06K15/1815Receiving print data in mixed format
    • 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/1801Input data handling means
    • G06K15/1818Adaptations for accepting data from more than one source
    • G06K15/1819Adaptations for accepting data from more than one source for a same print job
    • 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/1848Generation of the printable image
    • G06K15/1849Generation of the printable image using an intermediate representation, e.g. a list of graphical primitives
    • 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/1297Printer code translation, conversion, emulation, compression; Configuration of printer parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Record Information Processing For Printing (AREA)
  • Storing Facsimile Image Data (AREA)
  • Editing Of Facsimile Originals (AREA)

Abstract

【課題】 異なるPDLから作成される複数個の画像データを1ページの印刷媒体にインデックス印刷すること。
【解決手段】 プリンタ10は、複数種類のPDLで記述されたデータファイル150〜164のそれぞれについて、以下の処理を実行する。
(1)データファイルの先頭ページのPDLデータについて、当該PDLデータに対応する1個の画像データが配置されるべき印刷媒体120上の位置を特定する。
(2)データファイルの先頭ページのPDLデータから中間言語で記述された中間言語データを作成する。
(3)中間言語データから1個の画像データを作成し、当該画像データをバンドメモリ42に書き込む。画像データは、元のPDLデータについて特定された位置に対応するメモリ内位置に書き込まれる。
(4)バンドメモリ42の記憶内容に従って複数個の画像データを1ページの印刷媒体120に印刷する。
【選択図】 図6

Description

本発明は、複数個の画像データを1ページの出力画像として出力することが可能である画像出力装置に関する。
下記の特許文献1に開示されているように、多くのプリンタは、ページ記述言語で記述されたデータからビットマップ形式の画像データを作成する。画像データは、ページメモリ又はバンドメモリに書き込み、ページメモリ又はバンドメモリの記憶内容に従って、画像データを印刷媒体に印刷する。なお、以下では、ページ記述言語のことを「PDL(Page Description Language)」と呼ぶことがある。
また、複数個の画像データを1ページの印刷媒体に印刷する技術(いわゆるインデックス印刷)が知られている。例えば、下記の特許文献2には、インデックス印刷について開示されている。
特開2006−85551号公報 特開2007−264155号公報
近年、例えば、PDF(Portable document Format)、PS(PostScript)等の複数のPDLが存在する。従来のプリンタは、複数種類のPDLのそれぞれについて、当該PDLで記述されたデータから画像データを作成してメモリに書き込むためのモジュール(プログラム)を有している。これらの各モジュールは、独立したモジュールであり、排他的なメモリ書き込み処理を実行する。即ち、一方のモジュールに従って画像データを作成してメモリ(ページメモリやバンドメモリ)に書き込む処理が実行されている場合、他方のモジュールに従って画像データを作成して上記のメモリに書き込むことができない。従って、異なるPDLから作成される複数個の画像データが書き込まれているページメモリやバンドメモリを作成することはできない。このことは、異なるPDLから作成される複数個の画像データを、1ページの出力画像としてインデックス印刷することができないことを意味している。同じPDLから作成される複数個の画像データをインデックス印刷する技術は存在するが、異なるPDLから作成される複数個の画像データを1ページ上にインデックス印刷する技術は実現されていないものと思われる。
本明細書によって開示される技術は、異なるPDLから作成される複数個の画像データを1ページの出力画像として出力することを実現する。
本明細書によって開示される画像出力装置は、ページ記述言語で記述されたPDLデータからビットマップ形式の1個の画像データを作成することが可能であるとともに、複数個の画像データを1ページの出力画像として出力することが可能である。本明細書で使用する「ページ記述言語」という用語は、ページという概念を利用してデータを記述するためのあらゆる言語を含む概念である。上述したように、ページ記述言語の例として、PDF、PS等を挙げることができる。また、ワープロソフト、表計算ソフト、描画ソフト等で利用されている言語の中でページという概念を利用してデータを記述する言語も、ページ記述言語と呼ぶことができる。なお、「1ページの出力画像として出力する」という用語は、最も広義に解釈されるべきものであり、1ページの印刷媒体に印刷するということのみならず、1つの表示画面に表示することも含む概念である。後者の例の場合、「1ページ」という単位は、1つの表示画面を意味するものであってもよいし、1つのウィンドウを意味するものであってもよい。
画像出力装置は、データファイル入力手段と、位置特定手段と、中間言語データ作成手段と、メモリと、画像データ作成手段と、画像データ出力手段とを備える。データファイル入力手段は、異なる種類のページ記述言語で記述されたデータファイル群を入力する。例えば、データファイル群が他のデバイスから送信される場合、データファイル入力手段は、他のデバイス(パーソナルコンピュータ、サーバ、ポータブルメモリ等)から送信されたデータファイル群を入力してもよい。
位置特定手段は、データファイル入力手段に入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータに対応する1個の画像データが配置されるべき出力画像内位置を特定する。位置特定手段は、各画像データが配置されるべき絶対的位置を特定してもよい。例えば、位置特定手段は、第1画像データに対応する1ページのPDLデータについて座標Aを特定し、第2画像データに対応する1ページのPDLデータについて座標Bを特定してもよい。なお、この場合、例えば、画像データが四角形状を有する場合、出力画像内位置は、対角に存在する2つの頂点の座標によって表現されてもよいし、1つの頂点の座標と画像データの横方向及び縦方向のサイズによって表現されてもよい。また、画像データの横方向及び縦方向のサイズが決まっている場合には、出力画像内位置は、画像データの1つの座標(例えば1つの頂点の座標や画像データの中心の座標)のみによって表現されてもよい。一方において、位置特定手段は、各画像データが配置されるべき相対的な位置関係を特定してもよい。例えば、位置特定手段は、第1画像データに対応する1ページのPDLデータについて座標Aが特定された場合、第2画像データに対応する1ページのPDLデータについて座標Aを基準とする位置関係を特定してもよい(例えば座標AからプラスX方向に所定距離の位置等)。
中間言語データ作成手段は、データファイル入力手段に入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータから中間言語で記述された中間言語データを作成する。例えば、中間言語データ作成手段は、第1PDLで記述されたデータファイルを構成する少なくとも1ページのPDLデータから中間言語で記述された中間言語データを作成し、第2PDLで記述されたデータファイルを構成する少なくとも1ページのPDLデータから同じ中間言語で記述された中間言語データを作成する。なお、中間言語は、例えば、ベクタ形式のデータであってもよい。この場合、第1PDLがベクタ形式のデータである場合、第1PDLのベクタ形式のデータから中間言語のベクタ形式のデータが作成されてもよい。また、第2PDLがビットマップ形式のデータである場合、第2PDLのビットマップ形式のデータから中間言語のベクタ形式のデータが作成されてもよい。
メモリは、画像データを記憶するために利用される。メモリは、ページメモリであってもよいし、バンドメモリであってもよい。画像データ作成手段は、中間言語データ作成手段によって作成された中間言語データ毎に、当該中間言語データから1個の画像データを作成し、当該画像データの元のPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込む。画像データ出力手段は、上記のメモリの記憶内容に従って複数個の画像データを1ページの出力画像として出力する。
上記の構成によると、異なるPDLで記述されたデータファイル群を同じ中間言語に変換することができる。このために、複数種類のPDLにおいて、中間言語データから画像データを作成してメモリに書き込むためのモジュール(プログラム)を共通化することができる。共通のモジュールに従って各PDLから作成される画像データをメモリに書き込むことが可能であり、各PDLについて排他的なメモリ書き込み処理が行なわれない。異なるPDLから作成される複数個の画像データを同じメモリに書き込むことができる。このために、異なるPDLから作成される複数個の画像データを1ページの出力画像として出力することができる。
中間言語データ作成手段と画像データ作成手段は、中間言語データを作成し、その中間言語データから画像データを作成してメモリに書き込むという処理を実行する。この処理を実行するための単位は、特に限定されない。例えば、1ページの出力画像を単位とした場合、中間言語データ作成手段と画像データ作成手段は、1ページの出力画像に配置されるべき複数個の画像データの元となる全てのPDLデータから中間言語データを作成し、その後に画像データを作成してメモリに書き込むことを開始することになる。しかしながら、この手法では、1ページの出力画像に対応する全ての中間言語データを記憶するための大容量のメモリが必要になる。少ないメモリ容量で処理を実行するために、1ページの出力画像に対応する全ての中間言語データが作成される前に、作成済の中間言語データから画像データを作成し、その中間言語データを削除し、その画像データを圧縮して記憶しておく技術を採用することもできる。しかしながら、この手法でも、1ページの出力画像に対応する全ての中間言語データが作成されるまで、圧縮データを記憶しておく必要がある。より少ないメモリ容量で処理を実行するために、以下の構成を採用してもよい。
即ち、中間言語データ作成手段と画像データ作成手段は、1つのPDLデータを単位として(即ち作成されるべき1個の画像データを単位として)、当該PDLデータから中間言語データを作成し、当該中間言語データから1個の画像データを作成し、当該PDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込み、当該中間言語データを削除するという処理を実行してもよい。上述したように、1ページの出力画像を単位とした場合、1ページの出力画像に対応する全ての中間言語データ(もしくは圧縮データ)を記憶するための大容量のメモリが必要になる。これに対し、本技術によると、1つのPDLデータを単位として処理を実行するために、1ページの出力画像に対応する全ての中間言語データが作成されるのを待たなくても、中間言語データから画像データに変換してメモリに書き込むとともにその中間言語データ、及び画像データを削除することができる。このために、少ないメモリ容量で処理を実行することができる。
1つのPDLデータを単位として処理を実行するという上記の技術は、以下のように表現することもできる。即ち、画像データ作成手段は、1ページの出力画像に対応する全ての中間言語データが作成される前に、上記のデータファイル群のいずれかのデータファイルを構成する1つのPDLデータから中間言語データが作成されたことを条件として、当該中間言語データから1個の画像データを作成し、当該PDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込むことを開始してもよい。この構成によると、画像データ作成手段は、1ページの出力画像に対応する全ての中間言語データが作成される前に、作成済の中間言語データから画像データに変換し、その画像データをページメモリやバンドメモリに書き込むことができる。この場合、画像データに変換されてメモリに書き込まれた作成済の中間言語データ、及び画像データを削除することができ、少ないメモリ容量で処理を実行することができる。
なお、上記の技術において、1つのPDLデータについて上記の処理を実行し、その後に次の1つのPDLデータについて上記の処理を実行してもよい。即ち、上記の処理を実行するための処理スレッドを1つのみ立ち上げてもよい。しかしながら、より効率的に処理を実行するために、複数の処理を並列的に実行してもよい。複数の処理を並列的に実行するためのいくつかの例を以下に記載しておく。
中間言語データ作成手段は、1ページの出力画像として出力されるべき画像データの個数と同数である複数の第1処理を並列的に実行してもよい。なお、「並列的に実行する」という用語は、同時的に実行することのみを意味するものではなく、複数の処理スレッドが並列的に起動されていること(処理自体は同時に行なわれていない場合)を含む概念である。上記の複数の第1処理のそれぞれは、異なる1個の画像データの元となる1つのPDLデータから中間言語データを作成する処理である。この構成は、以下のようにページメモリを利用する場合に有効である。
即ち、上記のメモリは、少なくとも1ページの出力画像に対応する画像データを記憶することが可能であるページメモリであってもよい。画像データ作成手段は、1ページの出力画像として出力されるべき画像データの個数と同数である複数の第2処理を並列的に実行してもよい。この場合、複数の第2処理のそれぞれは、異なる1つの第1処理で作成された中間言語データから1個の画像データを作成し、当該画像データの元のPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込み、当該中間言語データ、及び画像データを削除する。この構成によると、1つのPDLデータを単位として、中間言語データを作成し、その中間言語データから画像データを作成してページメモリに書き込むという処理を実行することができる。
なお、1つの第1処理と1つの第2処理は、1つの処理スレッドによって実行されてもよい。即ち、1つの処理スレッドにおいて、中間言語データを作成する処理(第1処理)と、その中間言語データから画像データを作成してページメモリに書き込む処理(第2処理)とが実行されてもよい。この場合、複数の処理スレッドを並列的に実行することは、複数の第1処理を並列的に実行するとともに複数の第2処理を並列的に実行することに等しい。即ち、中間言語データ作成手段と画像データ作成手段は、1ページの出力画像として出力されるべき画像データの個数と同数である複数の処理スレッド(第1処理と第2処理を実行するための処理スレッド)を並列的に実行してもよい。
上記の画像出力装置は、M行及びN列のマトリクス状に配置されている複数個の画像データを1ページの出力画像として出力するものであってもよい。なお、行は横の並びであり、列は縦の並びである。例えば、画像出力装置が画像データを印刷する場合、「横」は印刷媒体の送り方向に直交する方向であり、「縦」は印刷媒体の送り方向である。また、例えば、画像出力装置が画像データを表示する場合、「横」は表示画面の横方向であり、「縦」は表示画面の縦方向である。上記のMは、1であってもよいし(この場合はNが2以上の整数になる)、2以上の整数であってもよい。また、上記のNは、1であってもよいし(この場合はMが2以上の整数になる)、2以上の整数であってもよい。一方において、このように整列されていない複数個の画像データを1ページの出力画像として出力してもよい。例えば、円周に沿って並んでいる複数個の画像データを出力してもよいし、出力画像の中で斜め方向に沿って一列に並んでいる複数個の画像データを出力してもよい。
また、上記のNが2以上の整数である場合に、中間言語データ作成手段は、N個の第1処理を並列的に実行してもよい。この場合、N個の第1処理のそれぞれは、同じ行に配置されるべきN個の画像データの中の異なる1個の画像データの元となる1つのPDLデータから中間言語データを作成する処理である。なお、この場合、上記のMが2以上の整数である場合に、N個の第1処理のそれぞれでは、以下の処理が実行されてもよい。
(1)第1行に配置されるべき画像データの元となる1つのPDLデータから中間言語データを作成する。
(2)第1行の次の第2行に配置されるべき画像データの元となる1つのPDLデータから中間言語データを作成する。
(3)第2行がM行であるか否かを判断する
ものであって、上記の(3)の判断が肯定される場合、第1処理を終了し、上記の(3)の判断が否定される場合、上記の(3)における第2行を前記第1行として、上記の(2)の処理を実行する。
この構成は、以下のようにバンドメモリを利用する場合に有効である。
即ち、上記のメモリは、少なくとも1バンドの出力画像に対応する画像データを記憶することが可能であるバンドメモリであってもよい。画像データ作成手段は、N個の第2処理を並列的に実行してもよい。この場合、N個の第2処理のそれぞれは、異なる1つの第1処理で作成された中間言語データから1個の画像データを作成し、当該画像データの元の1ページのPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込み、当該中間言語データ、及び画像データを削除する。この構成によると、1つのPDLデータを単位として、中間言語データを作成し、その中間言語データから画像データを作成してバンドメモリに書き込むという処理を実行することができる。なお、この場合、N個の処理スレッド(第1処理と第2処理を実行するための処理スレッド)を並列的に実行することは、N個の第1処理を並列的に実行するとともにN個の第2処理を並列的に実行することに等しい。
なお、上記の画像出力装置を実現するためのコンピュータプログラムも有用である。このコンピュータプログラムは、画像データを記憶するためのメモリを備えている画像出力装置に搭載されるコンピュータに以下の各処理を実行させる。
(1)異なる種類のページ記述言語で記述されたデータファイル群を入力するデータファイル入力処理。
(2)データファイル入力処理で入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータに対応する1個の画像データが配置されるべき出力画像内位置を特定する位置特定処理。
(3)データファイル入力処理で入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータから中間言語で記述された中間言語データを作成する中間言語データ作成処理。
(4)中間言語データ作成処理で作成された中間言語データ毎に、当該中間言語データから1個の画像データを作成し、当該画像データの元のPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込む画像データ作成処理。
(5)上記のメモリの記憶内容に従って複数個の画像データを1ページの出力画像として出力する画像データ出力処理。
このコンピュータプログラムを利用すると、異なるPDLから作成される複数個の画像データを1ページの出力画像として出力することができる画像出力装置を実現することができる。
ここでは、以下の実施例に記載の技術の特徴の一部をまとめておく。
(形態1)位置特定手段は、データファイル入力手段に入力されたデータファイル毎に、当該データファイルを構成する先頭ページのPDLデータに対応する1個の画像データが配置されるべき出力画像内位置を特定してもよい。この場合、中間言語データ作成手段は、データファイル入力手段に入力されたデータファイル毎に、当該データファイルを構成する先頭ページのみのPDLデータから中間言語で記述された中間言語データを作成してもよい。この構成によると、各データファイルの先頭ページから作成される複数個の画像データを1ページの出力画像として出力することができる。
(形態2)位置特定手段は、1ページの出力画像として出力されるべき画像データの個数に基づいて、各PDLデータについて出力画像内位置を特定してもよい。位置特定手段は、1ページの出力画像のサイズに基づいて、各PDLデータについて出力画像内位置を特定してもよい。位置特定手段は、M行及びN列のマトリクス状に配置されている複数個の画像データを1ページの出力画像として出力するべき場合に、MとNに基づいて、各PDLデータについて出力画像内位置を特定してもよい。MとNは、ユーザによって指定されてもよい。
(形態3)プリンタは、複数個の画像データを1ページの印刷媒体に印刷することができる。プリンタは、バンド単位で画像データを作成する。「バンド」は、1ページより小さい単位である。即ち、1ページは、複数のバンドの集合である。プリンタは、印刷媒体の一方の端辺から他方の端辺に向かって順に印刷する。この場合、プリンタは、(1)印刷媒体の上記の一方の短辺から所定幅を有するバンドに印刷されるべき画像データを記憶しているバンドメモリを作成し、(2)上記の所定幅を有する次のバンドに印刷されるべき画像データを記憶しているバンドメモリを作成し、(3)上記の他方の端辺を含む上記の所定幅を有するバンドに印刷されるべき画像データを記憶しているバンドメモリを作成するまで上記の(2)を繰り返す。
(第1実施例)
図面を参照して実施例を説明する。図1は、本実施例のプリンタネットワークシステム2を示す。プリンタネットワークシステム2は、プリンタ10とポータブルメモリ(いわゆるリムーバブルメモリ)60とPC70とを備える。ポータブルメモリ60は、プリンタ10のUSBインターフェイス12に接続されている。ポータブルメモリ60は、複数種類のPDLで記述されたデータファイル群(図示省略)を記憶している。即ち、ポータブルメモリ60は、第1種類のPDLで記述された第1データファイルと、第2種類のPDLで記述された第2データファイルとを少なくとも記憶している。プリンタ10とPC70は、LAN回線を介して相互に通信可能である。PC70は、データファイル群(図示省略)を記憶している。PC70は、ユーザの操作に応じて、データファイルを印刷するようにプリンタ10に指示することができる。この場合、PC70は、ユーザの指示に応じてデータファイルをPDLに変換し、PDLで記述されたデータファイルをプリンタ10に送信する。
(プリンタの構成)
図1では、プリンタ10の構成を簡単に示している。プリンタ10は、USBインターフェイス12と、ネットワークインターフェイス14と、制御部16と、プログラム記憶領域18と、操作部26と、表示部28と、メモリ40と、印刷機構46等を有する。USBインターフェイス12には、ポータブルメモリ60が接続されている。ポータブルメモリ60に記憶されているデータファイル群は、USBインターフェイス12に入力される。ネットワークインターフェイス14には、LAN回線が接続されている。LAN回線は、PC70に接続されている。プリンタ10は、ネットワークインターフェイス14を介してPC70と通信することができる。
制御部16は、プログラム記憶領域18に記憶されているプログラムに従って様々な処理を実行する。制御部16が実行する処理の内容については、後で詳しく説明する。プログラム記憶領域18は、中間言語データ作成プログラム20と、画像データ作成プログラム22と、その他のプログラム24とを記憶している。
中間言語データ作成プログラム20は、PDLで記述されたデータ(以下では「PDLデータ」と呼ぶことがある)を中間言語で記述されたデータ(以下では「中間言語データ」と呼ぶことがある)に変換するためのプログラムである。中間言語データ作成プログラム20は、複数種類のPDLのそれぞれに対応するプログラムを含んでいる。例えば、中間言語データ作成プログラム20は、PDFで記述されたPDLデータを中間言語データに変換するためのプログラムと、PSで記述されたPDLデータを中間言語データに変換するためのプログラムとを記憶している。
PDLデータから中間言語データを介してビットマップデータを作成する手法(以下では「前者の手法」と呼ぶ)は、PDLデータから直接的にビットマップデータを作成する手法(以下では「後者の手法」と呼ぶ)と比べて、以下の点において効果的である。多くのPDLは、同じタイプのデータを記述することができる。例えば、多くのPDLは、線型グラデーションやテキストを記述することができる。第1PDLと第2PDLのそれぞれによって同じ線型グラデーション(例えば左から右に向かって赤色から青色に変わっていくグラデーション)が記述されている場合を例として説明する。
上記の例の場合、後者の手法を採用するためには、第1PDLのフォーマットで記述された線型グラデーションのベクタデータからビットマップデータを作成するためのプログラムと、第2PDLのフォーマットで記述された線型グラデーションのベクタデータからビットマップデータを作成するためのプログラムとが必要になる。
これに対し、前者の手法を採用すると、第1PDLの線型グラデーションのベクタデータから中間言語データ(ベクタデータ)が作成され、第2PDLの線型グラデーションのベクタデータから中間言語データが作成される。この場合、同じ中間言語データが作成される。そうすると、この中間言語データをビットマップデータに変換するためのプログラムがあれば、第1PDLと第2PDLのどちらで記述された線型グラデーションであっても、ビットマップデータを作成することができる。即ち、前者の手法を採用するためには、第1PDLの線型グラデーションのベクタデータから中間言語データを作成するための第1プログラムと、第2PDLの線型グラデーションのベクタデータから中間言語データを作成するための第2プログラムと、その中間言語データからビットマップデータを作成するための第3プログラムとが必要になる。即ち、第1PDLと第2PDLを処理するためのプログラムにおいて、線型グラデーションのベクタデータからビットマップデータを作成するための第3プログラム(図1の例では画像データ作成プログラム22)を共通化することができる。確かに、後者の手法と比べると、上記の第1プログラムと第2プログラムが新たに必要になる。しかしながら、ベクタデータ(PDL)をベクタデータ(中間言語)に変換するためのプログラムは、それほど大きなプログラム量を必要としない。ベクタデータをビットマップデータに変換するためのプログラムの方が大きなプログラム量を要する。第1プログラムと第2プログラムが新たに必要にはなるが、第3プログラムを共通化することができるために、全体のプログラム量は後者の手法よりも少なくて済む。
画像データ作成プログラム22は、中間言語データをビットマップ形式の画像データ(本実施例では2階調のビットマップデータ)に変換するためのプログラムである。本実施例では、中間言語データから直接的に2階調のビットマップデータを作成する。しかしながら、本実施例の技術は、中間言語データから多諧調(例えば256階調)のビットマップデータに変換し、そのビットマップデータから2階調のビットマップデータに変換する場合にも利用することができる。プログラム24は、プリンタ10の各デバイスを制御するための他の様々なプログラムである。例えば、プログラム24は、PC70と通信するためのプログラム(プロトコル)、表示部28の表示内容を制御するためのプログラム、印刷機構46の駆動を制御するためのプログラム等を記憶している。
操作部26は、複数のキーを有する。ユーザは、操作部26を操作することによって様々な指示をプリンタ10に入力することができる。例えば、ユーザは、操作部26を操作することによってポータブルメモリ60に記憶されているデータファイル群をインデックス印刷するようにプリンタ10に指示することができる。表示部28は、様々な情報を表示することができる。
メモリ40は、バンドメモリ42とその他の記憶領域44を有する。バンドメモリ42は、少なくとも1バンド分の画像データ(2階調のビットマップデータ)を記憶するためのメモリである。記憶領域44は、制御部16が処理を実行する過程で生成される種々のデータを記憶するために利用される。
「バンド」について簡単に説明しておく。PC70等から印刷するように指示された全てのPDLデータに対応する画像データを作成し、その後に印刷を開始するという手法が考えられる。しかしながら、この場合、全てのPDLデータに対応する画像データを記憶するための大容量のメモリが必要になる。本実施例のプリンタ10は、画像データを記憶するためのメモリ容量を圧縮するために、「バンド」という概念を用いて画像データを少しずつ作成して順に印刷する手法を採用する。印刷媒体の送り方向に沿って印刷媒体を複数のバンドに分割することができる。本実施例では、1つのバンドのバンド幅は、例えば、インクジェットヘッドが1回の走査によって印刷することが可能である範囲(1ページより少ない範囲)に基づいて設定される。
詳しくは後述するが、本実施例では、制御部16は、まず、先頭の1バンド分の画像データを作成してバンドメモリ42に書き込む。制御部16は、バンドメモリ42の記憶内容に従って1バンド分の画像データを印刷し、その後にバンドメモリの記憶内容を削除する。制御部16は、これらの処理をバンド単位で繰り返す。例えば、制御部16は、1バンド分の画像データを作成し、それを印刷し終えてからバンドメモリを削除し、その後に次のバンドの画像データを作成してもよい。この場合、バンドメモリ42は、1バンド分のメモリサイズを有していれば足りる。しかしながら、本実施例では、制御部16は、1バンド分の画像データを印刷している間に、次のバンドの画像データを作成することを開始する。これにより、高速で印刷することを実現している。この処理を実行する場合、バンドメモリ42は、少なくとも2バンド分のメモリサイズを有している必要がある。1バンド分の画像データを削除する前に、次のバンドの画像データを作成することを開始するからである。
印刷機構46は、印刷媒体を搬送する機構と、印刷媒体に印刷する機構(例えばインクジェットタイプやレーザータイプの画像形成機構)とを有する。印刷機構46は、バンドメモリ42の記憶内容に従って印刷媒体に印刷する。
(制御部の構成)
続いて、制御部16の構成を図2を用いて詳しく説明する。制御部16は、印刷制御部80を有する。印刷制御部80は、インデックス出力判断部82と、インデックス出力制御部84と、PDL種類特定部86と、PDL実行制御部88と、中間言語データ制御部100とを有する。インデックス出力判断部82は、プリンタ10に入力された印刷指示がインデックス出力を指示するものであるのか否かを判断する。インデックス出力制御部84は、インデックス出力されるべき各画像データの位置や大きさ等を制御する。インデックス出力制御部84は、プリンタ10に入力された各データファイルの先頭ページのみを中間言語データに変換するようにPDL実行制御部88に指示することもできる。PDL種類特定部86は、プリンタ10に入力された各データファイルを記述しているPDLの種類を特定する。PDL実行制御部88は、PDL種類特定部86によって特定された種類に対応するプログラムに従って処理を実行するように指示する。この結果、例えば、第1種類のPDL(例えばPDF)から中間言語データ92を作成する中間言語データ作成部90と、第2種類のPDLデータ(例えばPS)から中間言語データ96を作成する中間言語データ作成部94とが実現される。中間言語データ制御部100は、中間言語データ92,96を管理し、後述の中間言語データ処理部102を起動する処理を実行する。
制御部16は、中間言語データ処理部102と出力制御部104とを有する。中間言語データ処理部102は、中間言語データからビットマップ形式の画像データを作成する処理を実行する。中間言語データ処理部102によって作成された画像データは、バンドメモリ42に書き込まれる。出力制御部104は、バンドメモリ42の記憶内容に従って印刷機構46の駆動制御を実行する。これにより、画像データが印刷媒体に印刷される。
(印刷処理)
続いて、制御部16が実行する印刷処理の内容について説明する。制御部16は、プログラム20,22,24に従って印刷処理を実行する。図3及び図4は、印刷処理のフローチャートを示す。印刷処理は、PC70からの印刷指示がネットワークインターフェイス14に入力されたことをトリガとして開始される。また、印刷処理は、ポータブルメモリ60がUSBインターフェイス12に接続され、印刷指示を示す操作が操作部26で実行されたことをトリガとして開始される。
制御部16は、インデックス印刷の印刷指示であるのか否かを判断する(S10)。例えば、PC70からの印刷指示にインデックス印刷を示すコマンドが含まれている場合、制御部16は、S10でYESと判断する。また、例えば、インデックス印刷に対応する操作が操作部26で実行された場合も、制御部16は、S10でYESと判断する。なお、以下では、PC70からの印刷指示に通常印刷を示すコマンドが含まれる場合を例として、S10でNOの場合の処理(S12以降の処理)を説明する。また、以下では、ポータブルメモリ60がUSBインターフェイス12に接続され、インデックス印刷を示す操作が操作部26で実行された場合を例として、S10でYESの場合の処理(図4のS40以降の処理)を説明する。
S10でNOの場合、制御部16は、PC70から送信されたデータファイルを読み込む(S12)。このデータファイルは、PDL(例えばPDF)で記述されている。従って、データファイルでは、ページという概念を利用してデータが構成されている。制御部16は、データファイルを記述しているPDLの種類を特定する(S14)。次いで、制御部16は、S14で特定された種類に対応するプログラム20に従って、データファイルを構成する1ページ分のPDLデータ(現段階では先頭ページのPDLデータ)から中間言語データを作成する(S16)。2回目以降のS16の処理では、前回のS16で処理が実行されたページの次のページのPDLデータから中間言語データが作成される。データファイルを構成する全てのページについて処理が終了するまで、このルーチンが繰り返される。
続いて、制御部16は、処理対象バンドBNとして「1」を特定する(S18)。制御部16は、処理対象バンド(現時点では「1」)に対応する中間言語データから画像データを作成する(S20)。即ち、制御部16は、処理対象バンドに含まれるべき画像データの元になる中間言語データから画像データを作成する。S20の処理は、画像データ作成プログラム22に従って実行される。制御部16は、画像データをバンドメモリ42に書き込む。これにより、1バンド分(現時点では先頭ページの先頭バンド)の画像データが完成する。制御部16は、S20を終えると、画像データに変換された中間言語データを削除する(S22)。この時点では、先頭バンド以降のバンドに対応する中間言語データは削除されない。
次いで、制御部16は、S20で作成されたバンドメモリ42の記憶内容に従って印刷することを開始する(S24)。具体的には、制御部16は、バンドメモリ42の記憶内容に従って印刷機構46の駆動制御を実行する。制御部16は、印刷機構46の駆動制御を開始すると、S26に進む。S26では、制御部16は、処理対象バンドBNをインクリメントする。例えば、先頭バンド(BN=1)についてS20〜S24の処理が実行された場合、処理対象バンドBNが「2」になる。次いで、制御部16は、処理対象バンドBNが1ページの最終バンドを超えたのか否かを判断する(S28)。例えば、1ページの最終バンドが「6」であり、処理対象バンドBNの値が「7」である場合、S28でYESと判断される。
S28でNOの場合、制御部16は、S20に戻って、次のバンドに対応する中間言語データから画像データを作成する。これにより、例えば先頭バンドの印刷が行なわれている間に第2バンドの画像データがバンドメモリ42に記憶される。フローチャートには示されていないが、制御部16は、1つのバンドの印刷が終了すると、そのバンドの画像データをバンドメモリ42から削除し、次のバンドの画像データを印刷することを開始する。1ページの全てのバンドについてS20〜S28の処理が実行されると、1ページのPDLデータから作成される画像データが1ページの印刷媒体に印刷される。
S28でYESの場合、制御部16は、データファイルを構成する全てのページについて印刷が終了したのか否かを判断する(S30)。ここでNOの場合、制御部16は、次の1ページについてS16以降の処理を実行する。データファイルを構成する全てのページについて印刷が終了すると、印刷処理が終了する。
続いて、図4を参照しながら、S10でYESの場合に実行される処理の内容について説明する。制御部16は、インデックス印刷の対象のデータファイル数を特定する(S40)。例えば、制御部16は、ポータブルメモリ60に記憶されている全てのデータファイルに基づいてインデックス印刷を実行することができる。この場合、S40において、制御部16は、ポータブルメモリ60に記憶されているデータファイル数を特定する。また、例えば、制御部16は、ポータブルメモリ60に記憶されている1つのフォルダ(例えばユーザによって指定されたフォルダ)に格納されている全てのデータファイルに基づいてインデックス印刷を実行することができる。この場合、S40において、制御部16は、上記のフォルダに格納されているデータファイル数を特定する。
次いで、制御部16は、インデックス印刷のフォーマットを特定する(S42)。ユーザは、インデックス印刷を指示する際に、縦方向に並ぶべき画像データの数(M行)と、横方向に並ぶべき画像データの数(N列)と、印刷媒体のサイズ(例えばA4サイズ)とを指定することができる。制御部16は、これらの数値を特定することによって、S42の処理を実行する。続いて、制御部16は、S40で特定されたデータファイル数とS42で特定された各数値(MとNと印刷媒体サイズ)とに基づいて、各データファイルに対応する画像データの位置を決定する(S44)。この処理の内容を次に詳しく説明する。
図6は、インデックス印刷が行なわれる1ページの印刷媒体120を示す。図6の例では、インデックス印刷の対象のデータファイル数が8個であり、ユーザが3行3列及びA4サイズを指定している。1個のデータファイルから1個の画像データが作成されて印刷媒体120に印刷される。図6の例では、8個のデータファイル150〜164に対応する8個の画像データが3行3列のマトリクス状に配置される。各画像データは、互いに距離を隔てて配置される。図6の例の場合、同じ行に配置されるべき3つの画像データ(例えば150,152,154)は等間隔に並んでいる。また、同じ列に配置されるべき3つの画像データ(例えば150,156,162)は等間隔に並んでいる。なお、上記の8個のデータファイル150〜164は、異なるPDLで記述されている。例えば、データファイル150〜156はPDFで記述されており、データファイル158〜164はPSで記述されている。
プログラム24(図1参照)は、A4サイズの3行3列のパターンについて、各画像データが配置されるべき座標を記憶している。制御部16は、この記憶内容に従って、各データファイル150〜164から作成される画像データが配置されるべき座標を特定する。例えば、データファイル150について座標C1及びC2が特定される。本実施例では、四角形状の画像データの1つの対角線上に存在する2つの頂点の座標C1,C2を利用する手法を採用している。これにより、画像データの位置と大きさの両方を表現することができる。データファイル150の場合と同様に、制御部16は、他のデータファイル152〜164のそれぞれについて座標を特定する。なお、プログラム24は、A4サイズの3行3列のパターンのみならず、他のパターン(例えばB4サイズの10行5列のパターン等)についても、各画像データが配置されるべき座標を記憶している。制御部16は、他のパターンについても、各データファイルから作成される画像データが配置されるべき座標を特定することができる。
次いで、制御部16は、図4のS42で特定された「N」と同じ数の処理スレッドを立ち上げる(S46)。即ち、制御部16は、横方向に並ぶべき画像データの数と同じ数の処理スレッドを立ち上げる。例えば、図6の例の場合、制御部16は、3つの処理スレッドを立ち上げる。処理スレッドの内容について次に詳しく説明する。
図5は、1つの処理スレッドのフローチャートを示す。図4のS46で立ち上げられた複数個の処理スレッドは並列的に実行される。複数個の処理スレッドのそれぞれでは、印刷媒体の最上行に配置されるべき異なる1個の画像データが作成される。例えば、図6の例の場合、3つの処理スレッドのそれぞれにおいて、最上行180に配置されるべき異なるデータファイル150,152,154から、それぞれ1個の画像データが作成される。次いで、3つの処理スレッドのそれぞれでは、2行目182に配置されるべき異なる1個の画像データが作成される。即ち、3つの処理スレッドのそれぞれにおいて、異なるデータファイル156,158,160から、それぞれ1個の画像データが作成される。この処理が、最下行(図6の例では3行目184)に配置されるべき画像データが作成されるまで繰り返される。
本実施例では、1つの処理スレッドが同じ列に配置されるべき複数の画像データを順に作成する手法を採用する。例えば、データファイル150から1個の画像データを作成する処理スレッドでは、データファイル156から1個の画像データを作成するとともに、データファイル162から1個の画像データを作成する。即ち、この処理スレッドは、最も左の行に配置されるべき3個の画像データを順に作成する。以下では、この処理スレッド(最も左の行に対応する処理スレッド)を例にして、図5のフローチャートの内容を説明する。なお、図6の例では、最も右の行に2個の画像データしか配置されない。このために、最も右の行に対応する処理スレッドでは、2個の画像データしか作成されない。
制御部16は、最上行180に配置されるべき画像データの元になるデータファイル150の先頭ページのPDLデータを読み込む(S70)。次いで、制御部16は、データファイル150を記述しているPDLの種類を特定する(S72)。続いて、制御部16は、S72で特定された種類に対応するプログラム20に従って、データファイル150の先頭ページのPDLデータから中間言語データを作成する(S74)。
次いで、制御部16は、S74で作成された中間言語データから1個の画像データを作成する(S76)。S76の処理は、画像データ作成プログラム22に従って実行される。制御部16は、画像データをバンドメモリ42に書き込む。図7は、画像データがバンドメモリ42に書き込まれる様子を説明するための図である。図7は、図6の例に従って作成されている。上述したように、バンドメモリ42は、少なくとも2バンド分のメモリサイズを有している。図7では、1つのバンドの画像データを記憶するための領域を符号42−1で示しており、他のバンドの画像データを記憶するための領域を符号42−2で示している。なお、図7の例では、図6の印刷媒体120が3つのバンドに分けられているが、より多くのバンドに分けられていてもよい。
制御部16は、データファイル150の先頭ページから作成された画像データ250をバンドメモリ42−1に書き込む。この際に、制御部16は、データファイル150について図4のS44で特定された座標C1,C2に対応する位置に画像データ250を書き込む。図6と図7の例の場合、座標C1に対応する位置D1に画像データ250の左上の頂点が配置され、かつ、座標C2に対応する位置D2に画像データ250の右下の頂点が配置されるように、画像データ250がバンドメモリ42−1に書き込まれる。この処理スレッドの場合と同様に、データファイル152から画像データを作成する処理スレッドでは、データファイル152について特定された座標に対応する位置に画像データ252を書き込まれる。また、データファイル154から画像データを作成する処理スレッドでは、データファイル154について特定された座標に対応する位置に画像データ254が書き込まれる。バンドメモリ42−1の中の3個の画像データ250,252,254は、3つのデータファイル150,152,154について図4のS44で特定された位置関係を維持することになる。換言すると、バンドメモリ42−1の中での3個の画像データ250,252,254の相対的な位置関係は、3つのデータファイル150,152,154について図4のS44で特定された相対的な位置関係に等しい。
なお、データファイル150についてS76の処理が実行される時点では、データファイル156,162について中間言語データが作成されていない。即ち、制御部16は、1ページの印刷媒体120に対応する全ての中間言語データが作成される前に、データファイル150の先頭ページから1個の画像データを作成してバンドメモリ42に書き込む処理を実行する。本実施例では、データファイル150〜164から作成される8個の画像データ250〜264が互いに独立した領域に印刷される(画像データが重複しない)。このために、1つのデータファイル(例えば150)から中間言語データが作成されると、他のデータファイル(例えば156)から中間言語データが作成されるのを待たなくても、画像データを作成してバンドメモリ42に書き込む処理を開始することができる。
図7の例では、3個の画像データ250,252,254がバンドメモリ42−1に書き込まれると、先頭バンドの画像データが完成する。制御部16は、図4のS46で複数の処理スレッドを同時的に立ち上げると、処理対象バンドBNとして「1」を特定する(S48)。次いで、制御部16は、処理対象バンド(現時点では「1」)データが完成することを監視する(S50)。図7の例では、3個の画像データ250,252,254がバンドメモリ42−1に書き込まれると、制御部16は、S50でYESと判断する。この場合、制御部16は、バンドメモリ42−1の記憶内容に従って3個の画像データ250,252,254を印刷することを開始する(S52)。制御部16は、印刷を開始すると、S54に進む。S54では、制御部16は、処理対象バンドBNをインクリメントする。次いで、制御部16は、処理対象バンドBNが1ページの最終バンドを超えたのか否かを判断する(S56)。ここでNOの場合、制御部16は、S50に戻って、処理対象バンド(現時点では「2」)データが完成することを監視する。
なお、先頭バンドについて印刷を開始する段階(画像データ250,252,254の印刷を開始する段階)では、他のデータファイル156〜164の全てから中間言語データが作成されていない。即ち、本実施例では、1ページの印刷媒体120に対応する全ての中間言語データが作成される前に、少なくとも先頭バンドのバンドメモリ42−1が完成するために、先頭バンドの印刷を開始することができる。
一方において、処理スレッドでは、図5のS76で画像データが作成されると、S78に進む。S78では、制御部16は、S76で画像データに変換された中間言語データ、及び画像データを削除する(S78)。次いで、制御部16は、次の行に配置されるべき画像データの元になるデータファイルが存在するのか否かを判断する(S80)。例えば、図6の例のデータファイル150についてS72〜S78の処理が実行された場合、2行目182に配置されるべき画像データ256の元になるデータファイル156が存在する。この場合、制御部16は、S80でYESと判断し、データファイル156の先頭ページのPDLデータを読み込む(S82)。次いで、制御部16は、データファイル156についてS72〜S78の処理を実行する。これにより、図7に示されるように、データファイル156の先頭ページに対応する1個の画像データ256がバンドメモリ42−2に書き込まれる。この処理スレッドの場合と同様に、他の2つの処理スレッドにおいて、データファイル158,160の先頭ページに対応する画像データ258,260がバンドメモリ42−2に書き込まれる。これにより、第2バンドの画像データが完成する。
第2バンドデータが完成すると、制御部16は、図4のS50でYESと判断する。この場合、制御部16は、先頭バンドデータの印刷が終了していることを条件として、バンドメモリ42−2に従って第2バンドデータを印刷媒体120に印刷することを開始する。なお、フローチャートには示されていないが、制御部16は、先頭バンドデータの印刷が終了すると、バンドメモリ42−1をクリアする。これにより、バンドメモリ42−1に次のバンドデータ(図7の例では画像データ262,264)を書き込むことができるようになる。
制御部16は、先頭バンドと第2バンドの場合と同様に、第3バンド(本実施例では最終バンド)データ262,264を作成して印刷する。この場合、制御部16は、S56でYESと判断して印刷処理を終了する。これにより、8個の画像データ250〜264が印刷された1ページの印刷媒体120が完成する。
本実施例のプリンタ10は、異なるPDLで記述された複数のデータファイル150〜164のそれぞれについて、そのデータファイルの先頭ページのPDLデータを同じ中間言語に変換する。このために、複数種類のPDLにおいて、画像データを作成してバンドメモリ42に書き込むためのプログラム22を共通化することができる。共通のプログラム22に従って中間言語データから画像データを作成してバンドメモリ42に書き込むことを実現することができるために、異なるPDLから作成される複数個の画像データ250〜264を同じバンドメモリ42に書き込むことができる。このために、異なるPDLから作成される複数個の画像データ250〜264を1ページの印刷媒体120に印刷することができる。即ち、本実施例のプリンタ10は、異なるPDLから作成される複数個の画像データ250〜264をインデックス印刷することができる。
また、プリンタ10は、横方向に並ぶべき画像データの数と同じ数の処理スレッドを並列的に実行する。各処理スレッドでは、データファイルの先頭ページのPDLデータから中間言語データに変換し、その中間言語データから画像データに変換してバンドメモリ42に書き込む。即ち、1つのPDLデータ(1つのデータファイル)を単位として、そのPDLデータから中間言語データに変換し、その中間言語データから画像データに変換してバンドメモリ42に書き込むという一連の処理を実行する。この結果、プリンタ10は、データファイル150〜164の全てから中間言語データが作成される前に、画像データをバンドメモリ42に書き込むことを開始することができる。これと対極の関係にある処理として、全てのデータファイル150〜164から中間言語データが作成されるのを待ってから、画像データを作成することを開始するという処理が考えられる。しかしながら、この処理では、全てのデータファイル150〜164から作成される中間言語データを記憶する必要があり、メモリの負担が大きい。別の手法として、全てのデータファイル150〜164から中間言語データが作成される前に、作成済の中間言語データから画像データを作成して圧縮する手法を採用することもできる。しかしながら、この手法を採用しても、全てのデータファイル150〜164から中間言語データが作成されるまで圧縮データを記憶しておく必要があり、やはりメモリの負担が大きい。これに対し、本実施例のプリンタ10は、1つのPDLデータを単位として上記の一連の処理を実行するために、そのPDLデータについて中間言語データを作成すると、その中間言語データから画像データに変換してバンドメモリ42に書き込み、その中間言語データ、及び画像データを削除することができ、メモリの負担が少ない処理を実行することができるプリンタ10が実現されている。
(第2実施例)
第1実施例と異なる点を中心に説明する。本実施例では、バンドメモリ42の代わりにページメモリ142を利用する。ページメモリ142は、少なくとも1ページ分の印刷媒体に対応する画像データを記憶するためのメモリである。
本実施例では、制御部16が実行する処理の内容が第1実施例と異なる。具体的に言うと、以下の点で異なる。制御部16は、バンド単位で画像データを作成しない。このために、図3のS18、S26、及び、S28の処理は行なわれない。また、制御部16は、図3のS20において、画像データをページメモリ142に書き込む。制御部16は、図3のS24において、ページメモリ142の記憶内容に従って印刷を開始する。
また、図3のS10でYESと判断された以降の処理が第1実施例と異なる。図8は、図3のS10でYESと判断された以降の処理のフローチャートを示す。S100〜S104は、図4のS40〜S44と同様である。制御部16は、インデックス印刷の対象のデータファイル数と同じ数の処理スレッドを立ち上げる(S106)。例えば、図6の例の場合、制御部16は、8個の処理スレッドを立ち上げる。
図9は、本実施例の処理スレッドのフローチャートを示す。図8のS106で立ち上げられた複数個の処理スレッドは並列的に実行される。複数個の処理スレッドのそれぞれでは、1個の画像データが作成される。例えば、図6の例の場合、8個の処理スレッドのそれぞれにおいて、異なるデータファイル150〜164から1個の画像データが作成される。以下では、データファイル150から1個の画像データを作成する処理スレッドを例にして、図9のフローチャートの内容を説明する。
S130〜S134は、図5のS70〜S74と同様である。制御部16は、S134で作成された中間言語データから1個の画像データを作成する(S136)。制御部16は、画像データをページメモリ142に書き込む。この際に、制御部16は、データファイル150について図8のS104で特定された座標C1,C2に対応する位置に画像データ250(図7参照)を書き込む。次いで、制御部16は、S134で作成された中間言語データ、及び画像データを削除する(S138)。データファイル150から1個の画像データが作成されページメモリに書き込まれると、処理スレッドが終了する。この処理スレッドの場合と同様に、他のデータファイル152〜164から作成される画像データ252〜264もページメモリ142に書き込まれる。
制御部16は、図8のS106で複数の処理スレッドを同時的に立ち上げると、ページメモリ142の画像データが完成することを監視する(S108)。図6及び図7の例では、全ての画像データ250〜264がページメモリ142に書き込まれると、制御部16は、S108でYESと判断する。この場合、制御部16は、ページメモリ142の記憶内容に従って画像データ250〜264を印刷することを開始する(S110)。これにより、8個の画像データ250〜264が印刷された1ページの印刷媒体120が完成する。S110を終えると印刷処理が終了する。
本実施例によっても、異なるPDLから作成される複数個の画像データ250〜264をインデックス印刷することができる。また、1つのPDLデータ(1つのデータファイル)を単位として一連の処理を実行することができるために、メモリの負担が少ない処理を実行することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
(1)上記の実施例において、制御部16は、1つの処理スレッドのみを立ち上げてもよい。この場合、処理スレッドは、1つのデータファイルから1個の画像データを作成することを繰り返す。この例においても、1つのPDLデータ(1つのデータファイル)を単位として一連の処理を実行することができる。
(2)上記の実施例の技術は、印刷用の画像データを作成する場合のみならず、表示用の多諧調の画像データを作成する場合にも適用することができる。
(3)1つのデータファイルについて先頭ページのみから画像データを作成しなくてもよい。即ち、例えば、異なるPDLで記述された2つのデータファイルが存在する場合、一方のデータファイルを構成する複数ページ(例えば4ページ)のPDLデータから複数個(例えば4個)の画像データを作成し、他方のデータファイルを構成する複数ページ(例えば3ページ)のPDLデータから複数個(例えば3個)の画像データを作成し、それらの全ての画像データ(例えば7個の画像データ)を1ページの印刷媒体に印刷するようにしてもよい。
また、1つのデータファイルについて、データファイル内の複数のページから画像データを作成してもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
プリンタネットワークシステムの構成の一例を示す。 制御部の構成を示す。 印刷処理のフローチャートを示す。 図3の続きのフローチャートを示す。 処理スレッドのフローチャートを示す。 データファイル群と印刷媒体を模式的に示す。 画像データ群とバンドメモリを模式的に示す。 第2実施例で実行される印刷処理のフローチャートを示す。 第2実施例で実行される処理スレッドのフローチャートを示す。
符号の説明
2:プリンタネットワークシステム
10:プリンタ
12:USBインターフェイス
14:ネットワークインターフェイス
16:制御部
18:プログラム記憶領域
20:中間言語データ作成プログラム
22:画像データ作成プログラム
26:操作部
28:表示部
40:メモリ
42:バンドメモリ
46:印刷機構
60:ポータブルメモリ
70:PC
120:印刷媒体
150〜164:データファイル
250〜264:画像データ

Claims (11)

  1. ページ記述言語で記述されたPDLデータからビットマップ形式の1個の画像データを作成することが可能であるとともに、複数個の画像データを1ページの出力画像として出力することが可能である画像出力装置であり、
    異なる種類のページ記述言語で記述されたデータファイル群を入力するデータファイル入力手段と、
    データファイル入力手段に入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータに対応する1個の画像データが配置されるべき出力画像内位置を特定する位置特定手段と、
    データファイル入力手段に入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータから中間言語で記述された中間言語データを作成する中間言語データ作成手段と、
    画像データを記憶するためのメモリと、
    中間言語データ作成手段によって作成された中間言語データ毎に、当該中間言語データから1個の画像データを作成し、当該画像データの元のPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込む画像データ作成手段と、
    前記メモリの記憶内容に従って複数個の画像データを1ページの出力画像として出力する画像データ出力手段と
    を備える画像出力装置。
  2. 中間言語データ作成手段と画像データ作成手段は、1つのPDLデータを単位として、当該PDLデータから中間言語データを作成し、当該中間言語データから1個の画像データを作成し、当該PDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込み、当該中間言語データを削除するという処理を実行する
    ことを特徴とする請求項1に記載の画像出力装置。
  3. 画像データ作成手段は、1ページの出力画像に対応する全ての中間言語データが作成される前に、前記データファイル群のいずれかのデータファイルを構成する1つのPDLデータから中間言語データが作成されたことを条件として、当該中間言語データから1個の画像データを作成し、当該PDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込むことを開始する
    ことを特徴とする請求項1又は2のいずれかに記載の画像出力装置。
  4. 中間言語データ作成手段は、1ページの出力画像として出力されるべき画像データの個数と同数である複数の第1処理を並列的に実行し、
    前記複数の第1処理のそれぞれは、異なる1個の画像データの元の1つのPDLデータから中間言語データを作成する処理である
    ことを特徴とする請求項1から3のいずれかに記載の画像出力装置。
  5. 前記メモリは、少なくとも1ページの出力画像に対応する画像データを記憶することが可能であるページメモリであり、
    画像データ作成手段は、1ページの出力画像として出力されるべき画像データの個数と同数である複数の第2処理を並列的に実行し、
    前記複数の第2処理のそれぞれは、異なる1つの第1処理で作成された中間言語データから1個の画像データを作成し、当該画像データの元の1つのPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込み、当該中間言語データを削除する処理である
    ことを特徴とする請求項4に記載の画像出力装置。
  6. 中間言語データ作成手段と画像データ作成手段は、1ページの出力画像として出力されるべき画像データの個数と同数である複数の処理スレッドを並列的に実行し、
    前記複数の処理スレッドのそれぞれは、前記第1処理と前記第2処理を実行する
    ことを特徴とする請求項5に記載の画像出力装置。
  7. M行及びN列のマトリクス状に配置されている複数個の画像データを1ページの出力画像として出力する請求項1から3のいずれかに記載の画像出力装置であり、
    前記Nが2以上の整数である場合に、中間言語データ作成手段は、前記N個の第1処理を並列的に実行し、
    前記N個の第1処理のそれぞれは、同じ行に配置されるべき前記N個の画像データの中の異なる1個の画像データの元となる1つのPDLデータから中間言語データを作成する処理である
    ことを特徴とする画像出力装置。
  8. 前記Mが2以上の整数である場合に、前記N個の第1処理のそれぞれは、
    (1)第1行に配置されるべき画像データの元となる1つのPDLデータから中間言語データを作成し、
    (2)前記第1行の次の第2行に配置されるべき画像データの元となる1つのPDLデータから中間言語データを作成し、
    (3)前記第2行がM行であるか否かを判断する
    ものであって、前記(3)の判断が肯定される場合、前記第1処理を終了し、前記(3)の判断が否定される場合、前記(3)における第2行を前記第1行として、前記(2)の処理を実行する
    ことを特徴とする請求項7に記載の画像出力装置。
  9. 前記メモリは、少なくとも1バンドの出力画像に対応する画像データを記憶することが可能であるバンドメモリであり、
    画像データ作成手段は、前記N個の第2処理を並列的に実行し、
    前記N個の第2処理のそれぞれは、異なる1つの第1処理で作成された中間言語データから1個の画像データを作成し、当該画像データの元となる1つのPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込み、当該中間言語データを削除する処理である
    ことを特徴とする請求項7又は8に記載の画像出力装置。
  10. 中間言語データ作成手段と画像データ作成手段は、前記N個の処理スレッドを並列的に実行し、
    前記N個の処理スレッドのそれぞれは、前記第1処理と前記第2処理を実行する
    ことを特徴とする請求項9に記載の画像出力装置。
  11. ページ記述言語で記述された1つのPDLデータからビットマップ形式の1個の画像データを作成することが可能であり、複数個の画像データを1ページの出力画像として出力することが可能であり、画像データを記憶するためのメモリを備えている画像出力装置に搭載されるコンピュータに、以下の各処理、即ち、
    異なる種類のページ記述言語で記述されたデータファイル群を入力するデータファイル入力処理と、
    データファイル入力処理で入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータに対応する1個の画像データが配置されるべき出力画像内位置を特定する位置特定処理と、
    データファイル入力処理で入力されたデータファイル毎に、当該データファイルを構成する少なくとも1ページのPDLデータについて、当該PDLデータから中間言語で記述された中間言語データを作成する中間言語データ作成処理と、
    中間言語データ作成処理で作成された中間言語データ毎に、当該中間言語データから1個の画像データを作成し、当該画像データの元のPDLデータについて特定された出力画像内位置に対応するメモリ内位置に当該画像データを書き込む画像データ作成処理と、
    前記メモリの記憶内容に従って複数個の画像データを1ページの出力画像として出力する画像データ出力処理と
    を実行させるコンピュータプログラム。
JP2008093652A 2008-03-31 2008-03-31 画像出力装置 Pending JP2009241524A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2008093652A JP2009241524A (ja) 2008-03-31 2008-03-31 画像出力装置
US12/405,107 US20090244610A1 (en) 2008-03-31 2009-03-16 Image output apparatus
EP09250758.1A EP2109066B1 (en) 2008-03-31 2009-03-19 Image output apparatus
CN200910128694.6A CN101551866B (zh) 2008-03-31 2009-03-24 图像输出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008093652A JP2009241524A (ja) 2008-03-31 2008-03-31 画像出力装置

Publications (1)

Publication Number Publication Date
JP2009241524A true JP2009241524A (ja) 2009-10-22

Family

ID=40791469

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008093652A Pending JP2009241524A (ja) 2008-03-31 2008-03-31 画像出力装置

Country Status (4)

Country Link
US (1) US20090244610A1 (ja)
EP (1) EP2109066B1 (ja)
JP (1) JP2009241524A (ja)
CN (1) CN101551866B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159219A (ja) * 2010-02-03 2011-08-18 Brother Industries Ltd Pdlデータ処理装置とpdlデータ処理プログラム
JP2012200934A (ja) * 2011-03-24 2012-10-22 Fuji Xerox Co Ltd 画像データ処理システム
US12001742B2 (en) 2020-11-30 2024-06-04 Brother Kogyo Kabushiki Kaisha Performing index printing to print a plurality of images on a sheet

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5188881B2 (ja) * 2008-05-27 2013-04-24 富士フイルム株式会社 データ変換装置、データ変換プログラム、およびデータ変換方法
JP2011158951A (ja) * 2010-01-29 2011-08-18 Konica Minolta Business Technologies Inc 画像処理装置、プログラム及び画像処理方法
JP5879851B2 (ja) * 2011-09-16 2016-03-08 富士ゼロックス株式会社 画像形成装置およびプログラム
AU2012201865A1 (en) * 2012-03-29 2013-10-17 Canon Kabushiki Kaisha GPU-based RIP architecture
JP2014060566A (ja) * 2012-09-18 2014-04-03 Casio Comput Co Ltd 画像配列決定方法、画像配列決定装置、及び、印刷装置、表示装置、プログラム記憶媒体
CN103353878A (zh) * 2013-06-14 2013-10-16 陆昀 将多种格式的文档显示在网页中的方法
CN104972743B (zh) * 2014-04-04 2016-08-31 北大方正集团有限公司 喷墨印刷方法和装置
JP6188735B2 (ja) * 2015-01-16 2017-08-30 キヤノン株式会社 印刷装置、印刷装置の制御方法、およびプログラム
JP6624134B2 (ja) * 2017-03-22 2019-12-25 京セラドキュメントソリューションズ株式会社 原稿読取装置
JP7086772B2 (ja) * 2018-07-24 2022-06-20 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及び、プログラム

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05318840A (ja) * 1992-05-18 1993-12-03 Canon Inc 画像形成装置及びその方法
JPH07307859A (ja) * 1994-05-11 1995-11-21 Ricoh Co Ltd ファクシミリ装置
JPH11312069A (ja) * 1998-04-28 1999-11-09 Canon Inc 画像形成装置、画像出力システム、方法、および記録媒体
JP2002112004A (ja) * 2000-09-29 2002-04-12 Brother Ind Ltd 印刷装置および記憶媒体
JP2005303392A (ja) * 2004-04-06 2005-10-27 Murata Mach Ltd ファクシミリ装置
JP2005348046A (ja) * 2004-06-02 2005-12-15 Murata Mach Ltd 画像処理装置
JP2007259353A (ja) * 2006-03-24 2007-10-04 Brother Ind Ltd 印刷または表示装置
JP2007253598A (ja) * 2006-03-27 2007-10-04 Fuji Xerox Co Ltd 印刷装置
JP2008006619A (ja) * 2006-06-27 2008-01-17 Brother Ind Ltd 画像形成装置
JP2008023713A (ja) * 2006-07-18 2008-02-07 Brother Ind Ltd 画像形成装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10198539A (ja) * 1997-01-08 1998-07-31 Fuji Xerox Co Ltd 画像形成装置および画像形成方法
JP3858419B2 (ja) * 1997-02-17 2006-12-13 セイコーエプソン株式会社 印刷装置
US7861156B2 (en) * 2003-05-29 2010-12-28 Electronics For Imaging, Inc. Methods and apparatus for parallel processing page description language data
JP2006085551A (ja) 2004-09-17 2006-03-30 Ricoh Co Ltd 画像処理装置および画像処理装置の制御方法および画像形成装置および画像形成装置の制御方法および画像処理装置のプログラムおよび記憶媒体
JP2006137148A (ja) 2004-11-15 2006-06-01 Riso Kagaku Corp 印刷表示方法、印刷システムおよび印刷装置並びに中間印刷データ生成プログラム
US20060203277A1 (en) * 2005-03-10 2006-09-14 Kabushiki Kaisha Toshiba Accounting device, accounting method and accounting program
US20070240139A1 (en) * 2006-03-28 2007-10-11 Kyocera Mita Corporation Image processing device and image processing method
US7745713B2 (en) * 2006-03-28 2010-06-29 Yamaha Corporation Electronic musical instrument with direct print interface
US8368944B2 (en) * 2006-07-12 2013-02-05 Brother Kogyo Kabushiki Kaisha Printing index images and file information together

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05318840A (ja) * 1992-05-18 1993-12-03 Canon Inc 画像形成装置及びその方法
JPH07307859A (ja) * 1994-05-11 1995-11-21 Ricoh Co Ltd ファクシミリ装置
JPH11312069A (ja) * 1998-04-28 1999-11-09 Canon Inc 画像形成装置、画像出力システム、方法、および記録媒体
JP2002112004A (ja) * 2000-09-29 2002-04-12 Brother Ind Ltd 印刷装置および記憶媒体
JP2005303392A (ja) * 2004-04-06 2005-10-27 Murata Mach Ltd ファクシミリ装置
JP2005348046A (ja) * 2004-06-02 2005-12-15 Murata Mach Ltd 画像処理装置
JP2007259353A (ja) * 2006-03-24 2007-10-04 Brother Ind Ltd 印刷または表示装置
JP2007253598A (ja) * 2006-03-27 2007-10-04 Fuji Xerox Co Ltd 印刷装置
JP2008006619A (ja) * 2006-06-27 2008-01-17 Brother Ind Ltd 画像形成装置
JP2008023713A (ja) * 2006-07-18 2008-02-07 Brother Ind Ltd 画像形成装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011159219A (ja) * 2010-02-03 2011-08-18 Brother Industries Ltd Pdlデータ処理装置とpdlデータ処理プログラム
JP2012200934A (ja) * 2011-03-24 2012-10-22 Fuji Xerox Co Ltd 画像データ処理システム
US8823997B2 (en) 2011-03-24 2014-09-02 Fuji Xerox Co., Ltd. Processing of logical page data for a printer
US12001742B2 (en) 2020-11-30 2024-06-04 Brother Kogyo Kabushiki Kaisha Performing index printing to print a plurality of images on a sheet

Also Published As

Publication number Publication date
US20090244610A1 (en) 2009-10-01
EP2109066A1 (en) 2009-10-14
CN101551866B (zh) 2012-10-10
EP2109066B1 (en) 2017-03-01
CN101551866A (zh) 2009-10-07

Similar Documents

Publication Publication Date Title
JP2009241524A (ja) 画像出力装置
JPH024543A (ja) 印刷装置及び方法
JP2011070337A (ja) 画像処理システム及び画像処理プログラム
JP5610781B2 (ja) 情報処理装置、情報処理方法及びプログラム
US8477368B2 (en) Printing apparatus and print data processing system combining stored pattern-based print drawing data with newly-received print drawing data
US9696949B2 (en) Information processing apparatus that has function of multi-up printing of different printing jobs
US10140558B2 (en) Print control system, print control apparatus, and program
EP2525283B1 (en) Information processing apparatus, control method, and storage medium
US8804141B2 (en) Character output device, character output method and computer readable medium
JP2019098580A (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
JP2009269179A (ja) 印刷装置、プログラム及び記録媒体
US7196812B2 (en) Information processing apparatus and control code generation method
US8756491B2 (en) PDL data processing device
JP2013122661A (ja) 画像処理装置、画像処理方法、およびプログラム
JP4259328B2 (ja) 画像処理装置、プリンタ、及び格納データの読み出し方法
JP6372365B2 (ja) 印刷指示装置、印刷システムおよびプログラム
JP4325339B2 (ja) 印刷システム、ホストコンピュータ及びプリンタドライバ
JP3864520B2 (ja) 印刷処理装置及び印刷処理方法
JP3927766B2 (ja) 画像処理装置及びその方法
JP2012081711A (ja) 画像形成装置、画像処理方法
JP2018086813A (ja) 画像形成装置および画像形成装置におけるジョブ制御方法
JP2005222346A (ja) 画像処理装置及びその方法
JP2005222345A (ja) 画像処理装置及びその方法
JP2009241363A (ja) ページ記述言語処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100428

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100826

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100909

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100913

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20101001