(57)【要約】【課題】  メモリの残容量の不足に起因して処理できないデータファイルが存在しても、そのデータファイルに対応する印刷データが印刷される可能性を高めることができる技術を提供すること。【解決手段】  プリンタ１０の制御部１２は、データファイル群に含まれるデータファイルを所定の順序に従って順次選択する。制御部１２は、ＲＡＭ１６を利用して、順次選択されたデータファイルを順次処理して、インデックス印刷データを生成する。制御部１２は、第１インデックス印刷データを生成する際に、メモリフルに起因して特定のデータファイルを処理できない場合に、特定のデータファイルの処理を延期し、第１インデックス印刷データよりも後に生成されるべき第２インデックス印刷データを生成する際に、特定のデータファイルを選択する。【選択図】  図１
2010064298.tif 000002
【特許請求の範囲】
【請求項１】
印刷実行部を含む印刷装置のための制御装置であって、
データファイル群に含まれるデータファイルを所定の順序に従って順次選択するデータファイル選択部と、
メモリを利用して、前記データファイル選択部によって順次選択された前記データファイルを順次処理して、前記メモリ内に、前記データファイルによって表される画像を示す印刷データを順次記憶することによって、複数のデータファイルに対応する複数の印刷データを含むインデックス印刷データを生成するインデックス印刷データ生成部と、
前記インデックス印刷データが生成される毎に、前記印刷実行部に前記インデックス印刷データを供給する供給部と、
を備え、
前記インデックス印刷データ生成部は、
前記供給部によって前記インデックス印刷データが前記印刷実行部に供給されると、当該インデックス印刷データを生成する際に利用された前記メモリの領域を利用して、次のインデックス印刷データを生成することが可能であり、
前記インデックス印刷データ生成部は、
第１インデックス印刷データを生成する際に、前記メモリの残容量の不足に起因して特定のデータファイルを処理できない場合に、前記特定のデータファイルの処理を延期し、
前記データファイル選択部は、
前記第１インデックス印刷データよりも後に生成されるべき第２インデックス印刷データを生成する際に、前記特定のデータファイルを選択する
制御装置。
【請求項２】
前記データファイル選択部は、
前記インデックス印刷データ生成部が前記第２インデックス印刷データを生成する際に、最初に、前記特定のデータファイルを選択する
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記インデックス印刷データ生成部は、
前記第２インデックス印刷データを生成する際にも、前記メモリの残容量の不足に起因して前記特定のデータファイルを処理できない場合に、前記特定のデータファイルに対応する印刷データに替えて、代替の印刷データを前記メモリに記憶する
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記データファイル選択部は、
前記インデックス印刷データ生成部が前記第１インデックス印刷データを生成する際に、前記特定のデータファイルの後に選択されるべき１以上のデータファイルを順次選択し、
前記インデックス印刷データ生成部は、
前記特定のデータファイルの後に選択されるべき１以上のデータファイルに対応する印刷データを含む前記第１インデックス印刷データを生成するように構成されている  ことを特徴とする請求項１から３のいずれか一項に記載の制御装置。
【請求項５】
前記インデックス印刷データ生成部は、
前記第１インデックス印刷データを生成する際に、前記メモリの残容量の不足に起因して特定の２以上のデータファイルを処理できない場合に、前記特定の２以上のデータファイルの処理を延期し、
前記データファイル選択部は、
前記インデックス印刷データ生成部が前記第２インデックス印刷データを生成する際に、前記特定の２以上のデータファイルを連続して選択する
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記データファイル選択部は、
前記インデックス印刷データ生成部が前記第１インデックス印刷データを生成する際に、前記特定のデータファイルの後に選択されるべきデータファイルを選択せず、
前記インデックス印刷データ生成部は、
前記特定のデータファイルの後に選択されるべきデータファイルに対応する印刷データを含まない前記第１インデックス印刷データを生成し、
前記データファイル選択部は、
前記インデックス印刷データ生成部が前記第２インデックス印刷データを生成する際に、前記特定のデータファイルの後に選択されるべきデータファイルを選択する
ことを特徴とする請求項１から３のいずれか一項に記載の制御装置。
【請求項７】
請求項１から６のいずれか一項に記載の制御装置と、
前記制御装置から供給された前記インデックス印刷データに基づいて印刷を実行する前記印刷実行部と、
を備える印刷装置。
【請求項８】
印刷実行部を含む印刷装置のための制御方法であって、
データファイル群に含まれるデータファイルを所定の順序に従って順次選択するデータファイル選択工程と、
メモリを利用して、前記データファイル選択工程によって順次選択された前記データファイルを順次処理して、前記メモリ内に、前記データファイルによって表わされる画像を示す印刷データを順次記憶することによって、複数のデータファイルに対応する複数の印刷データを含むインデックス印刷データを生成するインデックス印刷データ生成工程と、
前記インデックス印刷データ生成工程によって前記インデックス印刷データが生成される毎に、前記印刷実行部に前記インデックス印刷データを供給する供給工程と、
を備え、
前記インデックス印刷データ生成工程では、
前記供給工程によって前記インデックス印刷データが前記印刷実行部に供給されると、当該インデックス印刷データを生成する際に利用された前記メモリの領域を利用して、次のインデックス印刷データを生成することが可能であり、
前記インデックス印刷データ生成工程は、
第１インデックス印刷データを生成する際に、前記メモリの残容量の不足に起因して特定のデータファイルを処理できない場合に、前記特定のデータファイルの処理を延期する工程を含み、
前記データファイル選択工程は、
前記第１インデックス印刷データよりも後に生成されるべき第２インデックス印刷データを生成する際に、前記特定のデータファイルを選択する工程を含む
制御方法。
【請求項９】
コンピュータに、印刷実行部を含む印刷装置のための制御を実行させるコンピュータプログラムであって、
データファイル群に含まれるデータファイルを所定の順序に従って順次選択するデータファイル選択処理と、
メモリを利用して、前記データファイル選択処理によって順次選択された前記データファイルを順次処理して、前記メモリ内に、前記データファイルによって表わされる画像を示す印刷データを順次記憶することによって、複数のデータファイルに対応する複数の印刷データを含むインデックス印刷データを生成するインデックス印刷データ生成処理と、
前記インデックス印刷データ生成処理によって前記インデックス印刷データが生成される毎に、前記印刷実行部に前記インデックス印刷データを供給する供給処理と、
を前記コンピュータに実行させ、
前記インデックス印刷データ生成処理では、
前記供給処理によって前記インデックス印刷データが前記印刷実行部に供給されると、当該インデックス印刷データを生成する際に利用された前記メモリの領域を利用して、次のインデックス印刷データを生成することが可能であり、
前記インデックス印刷データ生成処理は、
第１インデックス印刷データを生成する際に、前記メモリの残容量の不足に起因して特定のデータファイルを処理できない場合に、前記特定のデータファイルの処理を延期する処理を含み、
前記データファイル選択処理は、
前記第１インデックス印刷データよりも後に生成されるべき第２インデックス印刷データを生成する際に、前記特定のデータファイルを選択する処理を含む
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インデックス印刷データを生成する技術に関する。
【背景技術】
【０００２】
印刷装置に入力されるデータファイル群のそれぞれに対応する印刷データを生成し、所定数の印刷データを含むインデックス印刷データを生成し、インデックス印刷データに従って１ページの印刷媒体に印刷する印刷装置が知られている。即ち、インデックス印刷が可能な印刷装置が知られている（例えば、特許文献１〜４）。この種の印刷装置は、インデックス印刷データを生成する制御装置を備えている。制御装置は、データファイル群からデータファイルを所定の順序に従って順次選択する。制御装置は、印刷装置のメモリを利用して、選択されたデータファイルから印刷データを順次生成する処理を実行し、メモリ内に印刷データを記憶していく。これにより、制御装置は、インデックス印刷データを生成する。
【０００３】
【特許文献１】特開２００４−９６６８８号公報
【特許文献２】特開２００５−１２５６１５号公報
【特許文献３】特開２００１−１３８５８４号公報
【特許文献４】特開２００７−２６７３７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
制御装置がインデックス印刷データを生成している際に、メモリの残容量（使用可能なメモリの領域）が不足することがある。メモリの残容量が不足すると、制御装置は、データファイルを処理して印刷データを生成することができなくなる。上記の特許文献１の技術では、データファイルが処理できなくなると、制御装置は、そのデータファイルに対応する印刷データに替えて、代替の画像を示す印刷データをメモリに記憶する。この結果、インデックス印刷データには、上記のデータファイルに対応する印刷データが含まれなくなる。インデックス印刷データが印刷媒体に印刷されても、上記のデータファイルの内容が分からない。
【０００５】
本明細書によって開示される技術は、このような知見に鑑みて創作されたものであり、メモリの残容量の不足に起因して処理できないデータファイルが存在しても、そのデータファイルに対応する印刷データが印刷される可能性を高めることができる技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本明細書によって開示される１つの技術は、印刷実行部を含む印刷装置のための制御装置である。この制御装置は、データファイル選択部とインデックス印刷データ生成部と供給部を備えている。データファイル選択部は、データファイル群に含まれるデータファイルを所定の順序に従って順次選択する。インデックス印刷データ生成部は、メモリを利用して、データファイル選択部によって順次選択されたデータファイルを順次処理する。インデックス印刷データ生成部は、メモリ内に、データファイルによって表される画像を示す印刷データを順次記憶することによって、複数のデータファイルに対応する複数の印刷データを含むインデックス印刷データを生成する。供給部は、インデックス印刷データが生成される毎に、印刷実行部にインデックス印刷データを供給する。インデックス印刷データ生成部は、供給部によってインデックス印刷データが印刷実行部に供給されると、当該インデックス印刷データを生成する際に利用されたメモリの領域を利用して、次のインデックス印刷データを生成することが可能である。なお、インデックス印刷データの単位は特に限定されない。例えば、ページ単位でインデックス印刷データが生成されてもよいし、バンド単位（ページより小さい単位）でインデックス印刷データが生成されてもよい。インデックス印刷データ生成部は、第１インデックス印刷データを生成する際に、メモリの残容量の不足に起因して特定のデータファイルを処理できない場合に、特定のデータファイルの処理を延期する。データファイル選択部は、第１インデックス印刷データよりも後に生成されるべき第２インデックス印刷データを生成する際に、特定のデータファイルを選択する。
【０００７】
上記した技術では、第１インデックス印刷データを生成する際に、メモリの残容量の不足に起因して特定のデータファイルを処理できない場合（即ちメモリフルのエラーが発生した場合）に、上記の特定のデータファイルを処理することが延期される。従って、上記の特定のデータファイルに対応する印刷データを含まない第１インデックス印刷データが生成される。この場合、第１インデックス印刷データが供給部によって印刷実行部に供給される。この結果、第１インデックス印刷データを生成する際に利用されたメモリの領域を利用して、次のインデックス印刷データを生成することが可能になる。即ち、メモリの残容量が回復する。メモリフルのエラーが発生した上記の特定のデータファイルは、第１インデックス印刷データの後に生成されるべき第２インデックス印刷データを生成する際に、データファイル選択部によって選択される。これにより、インデックス印刷データ生成部は、第２インデックス印刷データを生成する際に、再度、特定のデータファイルの処理を試みることができる。この再試行の際には、上記の特定のデータファイルについてメモリフルが発生した場合と比べて、メモリの残容量が回復している可能性がある。このために、上記の特定のデータファイルを処理して印刷データを生成し、その印刷データを含む第２インデックス印刷データを生成することができる可能性がある。この技術によると、メモリフルのエラーが発生したデータファイルに対応する印刷データが印刷される可能性を高めることができる
【０００８】
上記した制御装置のデータファイル選択部は、インデックス印刷データ生成部が第２インデックス印刷データを生成する際に、最初に、特定のデータファイルの処理を試みてもよい。
第２インデックス印刷データの生成を開始するときには、第２インデックス印刷データの印刷データがメモリ内に記憶されていない。また、制御装置は、第２インデックス印刷データよりも前に生成されたインデックス印刷データを生成する際に利用されたメモリの領域を利用することができる可能性もある。従って、第２インデックス印刷データの生成を開始するときには、メモリの残容量が大きい可能性が高い。上記した技術では、メモリの残容量が大きい状態で上記の特定のデータファイルを処理することができる。これにより、制御装置が、上記の特定のデータファイルを処理することができる可能性をより高くすることができる。
【０００９】
また、インデックス印刷データ生成部は、上記の特定のデータファイルが、第２インデックス印刷データを生成する際にも、メモリの残容量の不足に起因して処理できない場合には、特定のデータファイルに対応する印刷データに替えて、代替の印刷データをメモリに記憶してもよい。
この技術では、メモリの残容量が大きい状態でも上記の特定のデータファイルを処理することができない場合に、代替の印刷データを含むインデックス印刷データを生成することができる。ユーザは、処理されなかったデータファイルが存在することを知ることができる。
【００１０】
上記した特定のデータファイルの処理を延期した場合、データファイル選択部は、インデックス印刷データ生成部が第１インデックス印刷データを生成する際に、上記の特定のデータファイルの後に選択されるべき１以上のデータファイルを順次選択してもよい。インデックス印刷データ生成部は、上記の特定のデータファイルの後に選択されるべき１以上のデータファイルに対応する印刷データを含む第１インデックス印刷データを生成するように構成されていてもよい。
この技術によれば、第１インデックス印刷データに含まれる印刷データの数を増やすことができる。これにより、印刷枚数を削減することができることが期待できる。
【００１１】
上記した技術では、インデックス印刷データ生成部は、第１インデックス印刷データを生成する際に、メモリの残容量の不足に起因して特定の２以上のデータファイルを処理できない場合に、上記の特定の２以上のデータファイルの処理を延期してもよい。この場合、データファイル選択部は、インデックス印刷データ生成部が第１インデックス印刷データよりも後に生成されるべき第２インデックス印刷データを生成する際に、上記の特定の２以上のデータファイルを連続して選択してもよい。あるいは、データファイル選択部は、上記の特定の２以上のデータファイルのそれぞれを、別々のインデックス印刷データを生成する際に選択してもよい。
【００１２】
一方において、上記した特定のデータファイルの処理を延期した場合、データファイル選択部は、インデックス印刷データ生成部が第１インデックス印刷データを生成する際に、上記の特定のデータファイルの後に選択されるべきデータファイルを選択しなくてもよい。インデックス印刷データ生成部は、上記の特定のデータファイルの後に選択されるべきデータファイルに対応する印刷データを含まない第１インデックス印刷データを生成してもよい。データファイル選択部は、第２インデックス印刷データを生成する際に、上記の特定のデータファイルの後に選択されるべきデータファイルを選択してもよい。
この技術によれば、インデックス印刷データ生成部は、第１インデックス印刷データを早く生成することができる。これにより、第１インデックス印刷データに基づくインデックス印刷が実行されるまでのユーザの待ち時間を削減することができる。
【００１３】
上記した制御装置を備える印刷装置も新規で有用である。即ち、印刷装置は、上記したいずれかの制御装置と印刷実行部を備えている。印刷実行部は、制御装置から供給されたインデックス印刷データに基づいて印刷を実行する。
この印刷装置によれば、上記した制御装置で生成されたインデックス印刷データに基づいてインデックス印刷を実行することができる。
【００１４】
本明細書によって開示される技術は、印刷実行部を含む印刷装置のための制御方法や、コンピュータに印刷実行部を含む印刷装置を制御させるためのコンピュータプログラム、該コンピュータプログラムを記録する記録媒体等の種々の態様で実現することもできる。
【発明を実施するための最良の形態】
【００１５】
ここでは、本明細書に記載の技術の特徴の一部を列挙する。
（特徴１）印刷装置は、例えば、印刷実行部を有するプリンタであってもよい。あるいは、印刷装置は、ファクシミリ機能やスキャン機能等をさらに有する多機能機であってもよい。
（特徴２）印刷装置は、例えば、外部デバイス（外部メモリ、ＰＣ等）から出力されるデータファイル群を入力し、そのデータファイル群に基づいてインデックス印刷データを生成してもよい。
（特徴３）印刷装置は、例えば、データファイルリストを記憶することが可能であってもよい。データファイルリストには、外部デバイスから出力されるデータファイル群のそれぞれのファイル名が記述される。印刷装置は、データファイルリストに記述されている順序に従ってデータファイルを順次選択してもよい。（特徴４）印刷装置は、例えば、エラー発生ファイルリストを記憶することが可能であってもよい。エラー発生ファイルリストには、第１インデックス印刷データを生成する際にメモリフルのエラーが発生したデータファイルのファイル名が記述されてもよい。印刷装置は、第２インデックス印刷データを生成する際に、エラー発生ファイルリストに記述されているデータファイルを選択してもよい。エラー発生ファイルリストを利用することによって、メモリフルのエラーが発生したデータファイルを処理することを延期することができる。
【実施例】
【００１６】
（第１実施例）
図面を参照して実施例を説明する。図１は、プリンタ１０の構成を示すブロック図である。プリンタ１０は、制御部１２とＲＯＭ１４とＲＡＭ１６とデータファイル入力部１８と印刷部２０と表示部２２と操作部２４を備える。
制御部１２は、予め設定されているプログラムに従って様々な処理を実行し、プリンタ１０の動作を統括的に制御する。制御部１２が実行する処理は、後で詳しく説明する。ＲＯＭ１４は、制御部１２が従うプログラムを記憶している。データファイル入力部１８は、外部デバイスから出力されたデータファイルを入力することが可能である。データファイル入力部１８は、例えば、ＣＤ−ＲＯＭやカード状のメモリ等の外部の記憶媒体に記録されているデータファイルを読み取る読取装置であってもよく、あるいは、ネットワークに接続されて、外部のＰＣ等から送信されるデータファイルを受信する受信装置であってもよい。
【００１７】
ＲＡＭ１６は、データファイル入力部１８に入力されたデータファイルを記憶することができる。また、ＲＡＭ１６は、制御部１２がプログラムに従って処理を実行する際に生成される様々なデータを記憶することができる。ＲＡＭ１６は、データファイルリスト１６０とエラー発生ファイルリスト１６２を記憶することができる。図２は、データファイルリスト１６０の一例を示す。データファイルリスト１６０には、データファイル入力部１８に入力されたデータファイルのファイル名を記録することができる。ポインタｆｐは、制御部１２によって後述する処理が実行される際の処理対象となるデータファイルを指示する。ファイル数Ｆは、データファイルリスト１６０に記録されたデータファイルの個数を示す。図３は、エラー発生ファイルリスト１６２の一例を示す。エラー発生ファイルリスト１６２には、後述するメモリフルのエラーが発生したデータファイルのファイル名を記録することができる。ポインタｅｐは、制御部１２によって後述する処理が実行される際の処理対象となるデータファイルを指示する。ファイル数Ｅは、エラー発生ファイルリスト１６２に記録されたデータファイルの個数を示す。
【００１８】
表示部２２は、様々な情報を表示することができる。操作部２４は、ユーザによって操作される複数のキー（テンキー、スタートキー、キャンセルキー等）を有する。ユーザは、操作部２４を操作することによって、様々な情報や指示をプリンタ１０に入力することができる。印刷部２０は、制御部１２によって生成された印刷データに基づいて印刷媒体に印刷することができる。
【００１９】
（制御部の処理）
制御部１２は、データファイル入力部１８に入力されたデータファイル群からインデックス印刷データを生成することができる。図４は、印刷部２０が制御部１２で生成されたインデックス印刷データに基づいて印刷用紙５０にインデックス印刷された結果の一例を示す。インデックス印刷された印刷用紙５０は、複数個の画像５０ａ（図４では１個の画像のみに符号を付している）を含んでいる。複数個の画像５０ａは、Ｎ列×Ｍ行に配列されている。印刷用紙５０の外側に記述された数字は、各画像（印刷データ）の列番号と行番号を示す。例えば、画像５０ａの列番号は「１」であり、行番号は「０」である。以下では、画像の列番号と行番号を座標形式で（列番号、行番号）と表現する。即ち、例えば、画像５０ａは、（１，０）の位置に配置される画像（印刷データ）である。
【００２０】
図５から図７は、プリンタ１０が、図４に示すインデックス印刷を実行する場合の制御部１２の処理手順を示すフローチャートである。制御部１２は、データファイル入力部１８にデータファイル群が入力されると、本処理を開始する。制御部１２は、入力されたデータファイル群に含まれる各データファイルをＲＡＭ１６に記憶させる（Ｓ１２）。制御部１２は、入力されたデータファイル群に含まれる各データファイルに対応するファイル名を、データファイル入力部１８に入力された順番にデータファイルリスト１６０に記録する（Ｓ１４）。制御部１２は、各データファイルのファイル名を、ファイル名（ファイル名に拡張子が付加されている場合は、拡張子より前）の順番にデータファイルリスト１６０に記録している。あるいは、制御部１２は、データファイルの生成時刻（最終更新時刻等）の順番にデータファイルリスト１６０に記録してもよい。制御部１２は、データファイルリスト１６０に記録したデータファイル数ＦをＲＡＭ１６に記憶させる（Ｓ１６）。本実施例では、データファイルリスト１６０に記録したファイル数をＦ（Ｆは１以上の整数）とする。制御部１２は、データファイルリスト１６０のポインタｆｐと、エラー発生ファイルリスト１６２のポインタｅｐと、エラー発生データファイル数Ｅと、列カウンタｎと、行カウンタｍを「０」にする（Ｓ１８）。ポインタｆｐは、データファイルリスト１６０に記録されているファイル名のうち、制御部１２の処理対象となるデータファイルのファイル名に対応する順番を示す。ポインタｅｐは、エラー発生ファイルリスト１６２に記録されているファイル名のうち、制御部１２の処理対象となるデータファイルのファイル名に対応する順番を示す。列カウンタｎは、制御部１２が処理しているデータファイルを配置するべき列の番号を示す。行カウンタｍは、制御部１２が処理しているデータファイルを配置するべき行の番号を示す。ｆｐ、ｅｐ、Ｅ、ｎ、ｍは０以上の整数である。
【００２１】
制御部１２は、データファイルリスト１６０のｆｐ番目に記録されているファイル名に対応するデータファイルを選択して、ｆｐ番目のデータファイルを処理することによって印刷データを生成し、インデックス印刷データの（ｎ，ｍ）の位置に配置することを試みる（Ｓ２０）。本実施例では、制御部１２が処理対象とするデータファイルの種類が決められている。本実施例で処理対象となるデータファイルの種類は、例えば、拡張子がｊｐｇ、ｔｘｔ、ｐｓ等である。制御部１２は、処理対象でない拡張子のデータファイルがデータファイル群に含まれている場合、当該データファイルの処理を実行せず、データファイルリスト１６０からファイル名を削除し、ファイル数Ｆから１を減算する。あるいは、制御部１２は、処理対象でないデータファイルのファイル名をデータファイルリスト１６０に記録しない。上記の処理は、データファイルのデータを読み出すこと、そのデータをラスタライズすること等を含んでいてもよい。また、上記の処理は、データファイルのデータをページ記述言語に変換すること（ＰＤＬデータを生成すること）、そのＰＤＬデータをラスタライズすること等を含んでいてもよい。また、上記の処理は、データファイルのデータ（もしくはＰＤＬデータ）を中間言語に変換すること（中間言語データを生成すること）、その中間言語データをラスタライズすること等を含んでいてもよい。制御部１２は、ｆｐ番目のデータファイルの処理中にＲＡＭ１６の容量が不足する（メモリフルが発生した）か否かを監視している（Ｓ２２）。制御部１２は、ＲＡＭ１６を利用してデータファイルから印刷データを生成する。制御部１２は、生成した印刷データをＲＡＭ１６に記憶させる。このため、制御部１２が印刷データを生成するために利用できるＲＡＭ１６の容量が減少していく。制御部１２が印刷データを生成している間に利用するＲＡＭ１６の容量は、生成された印刷データを記憶するために必要なＲＡＭ１６の容量よりも大きい場合が多い。制御部１２は、印刷データを生成している間にメモリフルが発生したか、生成された印刷データを記憶する際にメモリフルが発生したかを監視している。メモリフルが発生した場合（Ｓ２２でＹＥＳ）、制御部１２は、データファイルの処理を中止する（Ｓ２４）。制御部１２は、データファイルリスト１６０のｆｐ番目のデータファイルのファイル名をエラー発生ファイルリスト１６２のＥ番目に記録する（Ｓ２６）。制御部１２は、Ｅに１を加算する（Ｓ２８）して、Ｓ３８に進む。これにより、ＲＡＭ１６の残容量の不足に起因して、処理できなかったデータファイルの処理が延期される。制御部１２が処理対象とするデータファイルの種類のうち、拡張子がｐｓのデータファイルを制御部１２が処理している間にメモリフルが発生しやすい。
【００２２】
一方において、ｆｐ番目のデータファイルから印刷データを生成して、ＲＡＭ１６に記憶させるまで、メモリフルが発生しなかった場合（Ｓ２２でＮＯ）、制御部１２は、ｎに１を加算する（Ｓ３２）。続いて、制御部１２は、ｎ＝Ｎか否かを確認する（Ｓ３４）。ｎ＝Ｎの場合とは、ｍ行目に配置されるべきｎ個の印刷データが既に揃っている場合である。ｎ＝Ｎの場合（Ｓ３４でＹＥＳ）、制御部１２は、ｎ＝０とし、ｍに１を加算して（Ｓ３６）、Ｓ３８に進む。一方において、ｎがＮ未満の場合（Ｓ３４でＮＯ）、Ｓ３８に進む。
【００２３】
Ｓ３８では、制御部１２は、ｆｐに１を加算する。制御部１２は、これまでに処理したデータファイルの次にデータファイルリスト１６０に記録されているデータファイルを処理する。制御部１２は、ｍ＝Ｍであるか、又は、ｆｐ＝Ｆであるかを確認する（Ｓ４０）。ｍ＝Ｍの場合とは、Ｎ列×Ｍ行のインデックス印刷データの生成が完了した場合である。ｆｐ＝Ｆの場合とは、データファイルリスト１６０に記録されたファイル名に対応するデータファイルの全てについて処理が試みられた場合である。ｍ＝Ｍでなく、ｆｐ＝Ｆでない場合（Ｓ４０でＮＯ）、Ｓ２０に進む。
【００２４】
一方において、ｍ＝Ｍであるか、又は、ｆｐ＝Ｆである場合（Ｓ４０でＹＥＳ）、制御部１２は、生成したインデックス印刷データを印刷部２０に供給する（Ｓ４２）。印刷部２０は、インデックス印刷データが供給されると、印刷用紙に印刷を実行する。制御部１２は、供給したインデックス印刷データをＲＡＭ１６から削除する（Ｓ４４）。続いて、制御部１２は、ｍ＝ｎ＝０にする（Ｓ４６）。これにより、制御部１２は、印刷されたインデックス印刷データの次のインデックス印刷データを生成する。制御部１２は、Ｅ＝ｅｐか否かを確認する（Ｓ４８）。Ｅ＝ｅｐの場合とは、エラー発生ファイルリスト１６２に記録されたデータファイルの全てについて処理が試みられたか、又は、エラー発生ファイルリスト１６２にデータファイルが記録されていないかのいずれかである。Ｅ＝ｅｐの場合（Ｓ４８でＹＥＳ）、制御部１２は、ｆｐ＝Ｆか否かを確認する（Ｓ５０）。ｆｐ＝Ｆの場合（Ｓ５０でＹＥＳ）、制御部１２は、処理を終了する。一方において、ｆｐ＝Ｆでない場合（Ｓ５０でＮＯ）、Ｓ２０に進む。
【００２５】
Ｓ４８において、Ｅ＝ｅｐでない場合（Ｓ４８でＮＯ）、制御部１２は、エラー発生ファイルリスト１６２のｅｐ番目に記録されているファイル名に対応するデータファイルを処理する。制御部１２は、ｅｐ番目のデータファイルによって表される画像を示す印刷データをインデックス印刷データの（ｎ，ｍ）の位置に配置することを試みる（Ｓ５２）。これにより、メモリフルに起因して処理できなかったデータファイルの処理が試みられる。制御部１２は、ｅｐ番目のデータファイルの処理中にＲＡＭ１６のメモリフルが発生したか否かを監視している（Ｓ５４）。制御部１２がデータファイルから印刷データを生成し、ＲＡＭ１６に記憶させるまで、メモリフルが発生しなかった場合（Ｓ５４でＮＯ）、制御部１２は、Ｓ７０に進む。一方において、メモリフルが発生した場合（Ｓ５４でＹＥＳ）、制御部１２は、データファイルの処理を中止する（Ｓ５６）。
【００２６】
制御部１２は、ｎ＝０かつｍ＝０であるか否かを確認する（Ｓ５８）。ｎ＝０かつｍ＝０であって、メモリフルが発生した場合とは、制御部１２がデータファイルを処理する際に利用することができるＲＡＭ１６の領域が最大であるにも関わらず、データファイルを処理することができない場合である。この場合、プリンタ１０ではデータファイルを処理することができないため、データファイルに対応する印刷データをインデックス印刷データに含めることができない。ｎ＝０かつｍ＝０である場合（Ｓ５８でＹＥＳ）、制御部１２は、ＲＯＭ１４に記憶されている代替の印刷データを、ＲＡＭ１６に記憶させて（Ｓ６０）、Ｓ７０に進む。代替の印刷データは、ＲＯＭ１４に予め記憶されていてもよく、あるいは、制御部１２が、処理できなかったデータファイルのファイル名等の情報を示す印刷データを生成して、ＲＡＭ１６に記憶させてもよい。
【００２７】
一方において、ｎ＝０でない、又は、ｍ＝０でない場合（Ｓ５８でＮＯ）、制御部１２は、ｆｐ＝Ｆであるか否かを確認する（Ｓ６２）。ｆｐ＝Ｆでない場合（Ｓ６２でＮＯ）、Ｓ２０に戻る。一方において、ｆｐ＝Ｆである場合（Ｓ６２でＹＥＳ）、制御部１２は、生成したインデックス印刷データを印刷部２０に供給する（Ｓ６４）。印刷部２０は、インデックス印刷データが供給されると、印刷用紙に印刷を実行する。制御部１２は、供給したインデックス印刷データをＲＡＭ１６から削除する（Ｓ６６）。続いて、制御部１２は、ｍ＝ｎ＝０にして（Ｓ６８）、Ｓ５２に戻る。
【００２８】
Ｓ７０では、制御部１２は、ｎに１を加算する。続いて、制御部１２は、ｎ＝Ｎか否かを確認する（Ｓ７２）。ｎ＝Ｎの場合（Ｓ７２でＹＥＳ）、制御部１２は、ｎ＝０とするとともに、ｍに１だけ加算して（Ｓ７４）、Ｓ７６に進む。一方において、ｎがＮでない場合（Ｓ７２でＮＯ）、Ｓ７６に進む。Ｓ７６では、制御部１２は、ｅｐに１を加算する。制御部１２は、ｍ＝Ｍであるか否かを確認する（Ｓ７８）。ｍ＝Ｍでない場合（Ｓ７８でＮＯ）、Ｓ４８に進む。一方において、ｍ＝Ｍである場合（Ｓ７８でＹＥＳ）、制御部１２は、印刷部２０に生成したインデックス印刷データを供給する（Ｓ８０）。印刷部２０は、インデックス印刷データが供給されると、印刷用紙に印刷を実行する。制御部１２は、供給したインデックス印刷データをＲＡＭ１６から削除する（Ｓ８２）。続いて、制御部１２は、ｍ＝ｎ＝０にして（Ｓ８４）、Ｓ４８に進む。
【００２９】
第１実施例のプリンタ１０について詳しく説明した。プリンタ１０を利用して、ファイル名がファイルＡ１からファイルＡ１４までの１４個のデータファイルを有するデータファイル群から、３列×３行（Ｎ＝３、Ｍ＝３）のインデックス印刷を実行しようとする。この場合、制御部１２は、ファイルＡ１からファイルＡ１４の順番でデータファイルリスト１６０に記録する。制御部１２は、ファイルＡ１から順番にデータファイルを選択し、処理する。制御部１２がファイルＡ５を処理している最中にメモリフルが発生した場合、制御部１２は、ファイルＡ５のファイル名をエラー発生ファイルリスト１６２に記録し、ファイルＡ５の処理を延期する。制御部１２は、ファイルＡ６の処理を開始する。制御部１２がファイルＡ８を処理している最中にもメモリフルが発生した場合、制御部１２は、ファイルＡ８のファイル名をエラー発生ファイルリスト１６２に記録し、ファイルＡ８の処理を延期する。制御部１２は、ファイルＡ９の処理を開始する。制御部１２は、ファイルＡ１１までの印刷データを生成すると、インデックス印刷データ（第１インデックス印刷データ）として、印刷部２０に供給する。
【００３０】
第１インデックス印刷データを供給した後に、ＲＡＭ１６に記憶されている第１インデックス印刷データを削除して、ファイルＡ５の処理を再開する。続いて、制御部１２は、ファイルＡ８の処理を開始する。制御部１２は、ファイルＡ１４まで印刷データを生成すると、第２インデックス印刷データとして、印刷部２０に供給する。図８は、印刷部２０が印刷用紙５０に第１インデックス印刷データを印刷した結果を示す。即ち、図８は、１ページ目のインデックス印刷の結果を示す。図９は、印刷部２０が印刷用紙５０に第２インデックス印刷データを印刷した結果を示す。即ち、図９は、２ページ目のインデックス印刷の結果を示す。図８と図９では、印刷用紙５０に印刷された複数の画像５０ａとして、各画像５０ａに対応するファイル名が記載されている。実際には、各データファイルに対応する画像が印刷されている。図８に示すように、１ページ目のインデックス印刷には、処理が延期されたファイルＡ５とファイルＡ８に対応する画像５０ａは含まれていない。図９に示すように、ファイルＡ５に対応する画像５０ａは、２ページ目のインデックス印刷の（０，０）の位置に配置される。また、ファイルＡ８に対応する画像５０ａは、ファイルＡ５に対応する画像５０ａの次の（１，０）の位置に配置される。
【００３１】
この構成によれば、メモリフルに起因して処理できなかったファイルＡ５、Ａ８は、メモリフルが発生した第１インデックス印刷データの後に生成される第２インデックス印刷データを生成する際に、再度選択され、処理が試みられる。第２インデックス印刷データを生成する際には、第１インデックス印刷データを生成する際に利用されたＲＡＭ１６の領域を利用することが可能となる。このため、制御部１２がファイルＡ５、Ａ８を処理するために利用することができるＲＡＭ１６の領域は、第１インデックス印刷データを生成する際に、ファイルＡ５、Ａ８を処理するのに利用することができるＲＡＭ１６の領域よりも大きい可能性がある。この場合、制御部１２は、ファイルＡ５、Ａ８を処理して、ファイルＡ５に対応する印刷データを生成することができる可能性が高くなる。
また、ファイルＡ５は、第２インデックス印刷データを生成する際の最初に処理される。即ち、ファイルＡ５は、第１インデックス印刷データがＲＡＭ１６から削除された直後に処理されるため、ファイルＡ５を処理するために利用可能なＲＡＭ１６の領域が、利用可能な最大の領域となっている。これにより、制御部１２がファイルＡ５を処理することができる可能性が高くなる。また、ファイルＡ８は、ファイルＡ５に連続して処理される。このため、制御部１２は、ファイルＡ８を処理して、ファイルＡ８に対応する印刷データを生成することができる可能性が高くなる。
【００３２】
また、第１実施例では、制御部１２は、ファイルＡ５でメモリフルが発生した場合、ファイルＡ５の次に処理されるべきファイルＡ６を、第１インデックス印刷データを生成する際に処理している。これにより、ファイルＡ５でメモリフルが発生した場合に第１インデックス印刷データの生成を終了し、印刷する場合と比較して、１ページの印刷用紙に配置される印刷データの個数を多くすることができる。これにより、インデックス印刷に使用される印刷用紙を削減することができる。
【００３３】
図１０は、上記した実施例において、ファイルＡ５が第２インデックス印刷データを生成する際の最初に処理されている最中に、メモリフルが発生した場合の２ページ目のインデックス印刷の結果を示す。制御部１２は、第２インデックス印刷データを生成する際に、ファイルＡ５の処理中にメモリフルが発生すると、代替の印刷データをＲＡＭ１６に記憶させる。図１０に示すように、印刷用紙の（０，０）の位置には、ファイルＡ５の代替の印刷データに対応する代替の画像５０ｂが配置されている。代替の画像５０ｂには、ファイルＡ５のファイル名が示されている。代替の画像５０ｂには、ファイル名の他に、ファイルＡ５のデータファイルの種類や作成日時が示されていてもよい。あるいは、ＲＯＭ１４に予め記憶されている代替の印刷データに対応する画像であってもよい。
【００３４】
（第２実施例）
第２実施例では、ＲＡＭ１６は、エラー発生ファイルリスト１６２を記憶していない。また、第２実施例は、インデックス印刷を実行する場合の制御部１２の処理が第１実施例と異なる。図１１から図１２は、プリンタ１０がインデックス印刷する場合の制御部１２の処理手順を示すフローチャートである。第１実施例の制御部１２と同一の処理を実行する場合には、図５から図７のフローチャートと同一の符号を付して、重複する説明を省略する。
制御部１２は、データファイル入力部１８にデータファイル群が入力されると、本処理を開始する。制御部１２は、Ｓ１２からＳ１６までの処理を実行する。制御部１２は、データファイルリスト１６０のポインタｆｐと、列カウンタｎと、行カウンタｍを「０」とする（Ｓ１０２）。
【００３５】
制御部１２は、Ｓ２０からＳＳ２２の処理を実行する。メモリフルが発生しなかった場合（Ｓ２２でＮＯ）、制御部１２は、Ｓ３２に進む。一方において、メモリフルが発生した場合（Ｓ２２でＹＥＳ）、制御部１２は、データファイルの処理を中止する（Ｓ２４）。制御部１２は、ｎ＝０かつｍ＝０であるか否かを確認する（Ｓ５８）。ｎ＝０でない、又は、ｍ＝０でない場合（Ｓ５８でＮＯ）、Ｓ４２からＳ４６の処理を実行し、Ｓ２０に進む。一方において、ｎ＝０かつｍ＝０である場合（Ｓ５８でＹＥＳ）、制御部１２は、ＲＯＭ１４に記憶されている代替の印刷データを、ＲＡＭ１６に記憶させて（Ｓ６０）、Ｓ３２に進む。Ｓ３２に進んだ制御部１２は、Ｓ３２からＳ４０の処理を実行する。Ｓ４０でＮＯの場合、Ｓ２０に進む。一方において、Ｓ４０でＹＥＳの場合、Ｓ４２からＳ４６までとＳ５０の処理を実行する。Ｓ５０でＹＥＳの場合、処理を終了する。一方において、Ｓ５０でＮＯの場合、Ｓ２０に進む。
【００３６】
第２実施例のプリンタ１０について詳しく説明した。プリンタ１０を利用して、ファイル名がファイルＡ１からファイルＡ１４までの１４個のデータファイルを有するデータファイル群から、３列×３行（Ｎ＝３、Ｍ＝３）のインデックス印刷を実行しようとする。この場合、制御部１２は、ファイルＡ１からファイルＡ１４の順番でデータファイルリスト１６０に記録する。制御部１２は、ファイルＡ１から順番にデータファイルを選択し、処理する。制御部１２がファイルＡ５を処理している最中にメモリフルが発生した場合、制御部１２は、ファイルＡ５の前に処理したファイルＡ１からファイルＡ４に対応する印刷データを含むインデックス印刷データ（第１インデックス印刷データ）を生成する。制御部１２は、印刷部２０に第１インデックス印刷データを供給した後に、ＲＡＭ１６に記憶されている第１インデックス印刷データを削除してからファイルＡ５の処理を開始する。制御部１２がファイルＡ８を処理している最中にメモリフルが発生した場合、制御部１２は、ファイルＡ８前に処理したファイルＡ５からファイルＡ７に対応する印刷データを含むインデックス印刷データ（第２インデックス印刷データ）を生成する。制御部１２は、印刷部２０に第２インデックス印刷データを供給した後に、ＲＡＭ１６に記憶されている第１インデックス印刷データを削除してからファイルＡ８の処理を開始する。
【００３７】
図１３は、印刷部２０が印刷用紙５０に第１インデックス印刷データを印刷した結果を示す。即ち、図１３は、１ページ目のインデックス印刷の結果を示す。図１４は、印刷部２０が印刷用紙５０に第２インデックス印刷データを印刷した結果を示す。即ち、図１４は、２ページ目のインデックス印刷の結果を示す。図１５は、印刷部２０が印刷用紙５０に第３インデックス印刷データを印刷した結果を示す。即ち、図１５は、３ページ目のインデックス印刷の結果を示す。図１３から図１５では、印刷用紙５０に印刷された複数の画像５０ａとして、各画像５０ａに対応するファイル名が記載されている。実際には、各データファイルに対応する画像が印刷されている。図１３に示すように、１ページ目の印刷用紙５０には、処理が延期されたファイルＡ５以降のデータファイルに対応する画像５０ａは含まれていない。図１４に示すように、ファイルＡ５に対応する画像５０ａは、２ページ目のインデックス印刷の（０，０）の位置に配置される。また、２ページ目のインデックス印刷には、処理が延期されたファイルＡ８以降のデータファイルに対応する画像５０ａは含まれていない。図１５に示すように、ファイルＡ８に対応する画像５０ａは、３ページ目のインデックス印刷の（０，０）の位置に配置される。
【００３８】
第２実施例では、第１実施例と同様、メモリフルに起因して処理できなかったファイルＡ５は、メモリフルが発生した第１インデックス印刷データの後に生成される第２インデックス印刷データを生成する際に、処理が試みられる。同様に、メモリフルに起因して処理できなかったファイルＡ８は、メモリフルが発生した第２インデックス印刷データの後に生成される第３インデックス印刷データを生成する際に、処理が試みられる。これにより、制御部１２は、ファイルＡ５、ファイルＡ８を処理して、ファイルＡ５、ファイルＡ８に対応する印刷データを生成することができる可能性が高くなる。
また、第２実施例では、第１実施例と同様に、ファイルＡ５は、第２インデックス印刷データを生成する際の最初に処理される。即ち、ファイルＡ５は、第１インデックス印刷データがＲＡＭ１６から削除された直後に処理されるため、ファイルＡ５を処理するために利用可能なＲＡＭ１６の領域が利用可能な最大の領域となっている。これにより、制御部１２がファイルＡ５を処理することができる可能性が高くなる。ファイルＡ８も同様である。
【００３９】
また、第２実施例では、制御部１２は、ファイルＡ５でメモリフルが発生した場合、ファイルＡ５の次に処理されるべきファイルＡ６を、第１インデックス印刷データを生成する際に処理しない。即ち、第１インデックス印刷データは、ファイルＡ１からファイルＡ４までの印刷データによって構成される。これにより、第１インデックス印刷データの生成時間を短縮することができる。
【００４０】
上記の実施例では、制御部１２は、１ページ分のインデックス印刷データが完成すると、そのインデックス印刷データを印刷部２０に供給する（図４のＳ４２等）。即ち、制御部１２は、ページ単位でインデックス印刷データを生成する（ページメモリを利用する）。しかしながら、制御部１２は、バンド単位でインデックス印刷データを生成してもよい。即ち、制御部１２は、１バンド分のインデックス印刷データが完成すると、そのインデックス印刷データを印刷部２０に供給してもよい。
また、上記の実施例では、制御部１２は、インデックス印刷データを印刷部２０に供給し、そのインデックス印刷データをＲＡＭ１６から削除すると、次のインデックス印刷データの生成を開始する。しかしながら、制御部１２は、インデックス印刷データを印刷部２０に供給することと並行して、次のインデックス印刷データの生成を開始してもよい。あるいは、制御部１２は、インデックス印刷データを印刷部２０に供給すると、当該インデックス印刷データが記憶されているＲＡＭ１６の領域に上書き可能となるように設定されていてもよい。一般には、制御部１２がインデックス印刷データを印刷部２０に供給すると、ＲＡＭ１６は、制御部１２が最初にインデックス印刷データを生成するときの状態に回復すればよい。
【００４１】
上記第１実施例及び第２実施例では、制御部１２は、第１インデックス印刷データを生成する際に、メモリフルの発生に起因して処理できなかったデータファイルの処理を延期して、第１インデックス印刷データよりも後に生成されるべき第２インデックス印刷データを生成する際に処理している。しかしながら、制御部１２は、第１インデックス印刷データを生成する際に、メモリフルの発生に起因してデータファイルの処理ができなかった場合に、当該データファイルの処理を飛ばして、当該データファイルの後に選択されるべきデータファイルを処理してもよい。この場合、処理できなかったデータファイルのファイル名等のデータファイルに関する情報を示す代替の印刷データをインデックス印刷データに含めてもよい。
また、上記の実施例では、プリンタ１０が本発明における制御装置（制御部１２）を備えている。しかしながら、制御部１２に代えて、あるいは、制御部１２とともに、プリンタ１０と通信可能な外部装置（ＰＤＡ（Ｐａｅｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）等の携帯端末等）が本発明における制御装置として利用されてもよい。
【００４２】
上記した実施例の「制御部１２」と「ＲＯＭ１４」は、本発明の「制御装置」の一例である。制御部１２は、ＲＯＭ１４に記憶されているプログラムに従って、様々な処理を実行する。制御部１２は、データファイル群に含まれるデータファイルをプリンタ１０に入力された順で順次選択しており、本発明の「データファイル選択部」の一例である。また、制御部１２は、ＲＡＭ１６を利用して、順次選択されたデータファイルを順次処理して、ＲＡＭ１６に印刷データを順次記憶することによって、複数のデータファイルに対応する複数の印刷データを含むインデックス印刷データを生成しており、本発明の「インデックス印刷データ生成部」の一例である。また、制御部１２は、生成したインデックス印刷データを印刷部２０に供給しており、本発明の「供給部」の一例である。
【００４３】
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００４４】
【図１】プリンタの構成を示す。
【図２】データファイルリストの一例を示す。
【図３】エラー発生ファイルリストの一例を示す。
【図４】インデックス印刷の結果の一例を示す。
【図５】第１実施例におけるインデックス印刷データを生成する場合のプリンタの制御部が実行する処理を示すフローチャートを示す。
【図６】第１実施例におけるインデックス印刷データを生成する場合のプリンタの制御部が実行する処理を示すフローチャートを示す。
【図７】第１実施例におけるインデックス印刷データを生成する場合のプリンタの制御部が実行する処理を示すフローチャートを示す。
【図８】第１実施例の制御部が生成したインデックス印刷データの印刷結果を示す。
【図９】第１実施例の制御部が生成したインデックス印刷データの印刷結果を示す。
【図１０】第１実施例の制御部が生成したインデックス印刷データの印刷結果を示す。
【図１１】第２実施例におけるインデックス印刷データを生成する場合のプリンタの制御部が実行する処理を示すフローチャートを示す。
【図１２】第２実施例におけるインデックス印刷データを生成する場合のプリンタの制御部が実行する処理を示すフローチャートを示す。
【図１３】第２実施例の制御部が生成したインデックス印刷データの印刷結果を示す。
【図１４】第２実施例の制御部が生成したインデックス印刷データの印刷結果を示す。
【図１５】第２実施例の制御部が生成したインデックス印刷データの印刷結果を示す。
【符号の説明】
【００４５】
１０：プリンタ
１２：制御部
１４：ＲＯＭ
１６：ＲＡＭ
１８：データファイル入力部
２０：印刷部
２２：表示部
２４：操作部
１６０：データファイルリスト
１６２：エラー発生ファイルリスト
【図１】
2010064298.tif 000003
【図２】
2010064298.tif 000004
【図３】
2010064298.tif 000005
【図４】
2010064298.tif 000006
【図５】
2010064298.tif 000007
【図６】
2010064298.tif 000008
【図７】
2010064298.tif 000009
【図８】
2010064298.tif 000010
【図９】
2010064298.tif 000011
【図１０】
2010064298.tif 000012
【図１１】
2010064298.tif 000013
【図１２】
2010064298.tif 000014
【図１３】
2010064298.tif 000015
【図１４】
2010064298.tif 000016
【図１５】
2010064298.tif 000017