(57)【要約】【課題】  本発明は、印刷処理装置が第１の印刷データの処理に対応しているか及び第１の印刷データを生成するためのメモリ確保に成功したか否かを考慮することで、メモリ状況を含む印刷環境に応じた印刷を実現することを目的とする。【解決手段】  印刷処理装置は第１の印刷データの処理に対応していると判断して、かつ、第１の印刷データを生成するためのメモリ確保に成功したと判断した場合に、第１の印刷データを印刷処理装置に送信して、印刷処理装置は第１の印刷データの処理に対応していないと判断した場合に、第２の印刷データを印刷処理装置に送信する。【選択図】  図７
2015084172.tif 000002
【特許請求の範囲】
【請求項１】
印刷処理装置が第１の印刷データの処理に対応しているか否かを判断する第１の判断手段と、
前記第１の印刷データを生成するためのメモリ確保に成功したか否かを判断する第２の判断手段と、
前記第１の判断手段が前記印刷処理装置は前記第１の印刷データの処理に対応していると判断して、かつ、前記第２の判断手段が前記第１の印刷データを生成するためのメモリ確保に成功したと判断した場合に、前記第１の印刷データを前記印刷処理装置に送信して、前記第１の判断手段が前記印刷処理装置は前記第１の印刷データの処理に対応していないと判断した場合に、第２の印刷データを前記印刷処理装置に送信する送信手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記第１の判断手段が前記印刷処理装置は前記第１の印刷データの処理に対応していると判断した場合に、メモリの空き容量が特定の閾値以上であるか否かを判断する第３の判断手段と、を有し、
前記第２の判断手段は、前記第３の判断手段が前記メモリの空き容量は前記特定の閾値以上であると判断した場合に、前記第１の印刷データを生成するためのメモリ確保に成功したか否かを判断することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記メモリの空き容量が前記特定の閾値未満であっても、前記第１の印刷データを生成するためのメモリ確保を試みる処理モードを設定する設定手段と、を有し、
前記第３の判断手段が前記メモリの空き容量は前記特定の閾値未満であると判断しても、前記設定手段により前記処理モードが設定されている場合は前記メモリ確保を試みることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１の判断手段が前記印刷処理装置は前記第１の印刷データの処理に対応していると判断しても、前記第２の判断手段が前記第１の印刷データを生成するためのメモリ確保に失敗したと判断した場合は、前記第２の印刷データを前記印刷処理装置に送信することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１の印刷データは画像の形式を変換することによって生成し、前記第２の印刷データは画像を色変換した後にハーフトーン化することによりバンド単位で生成することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記メモリの空き容量が前記特定の閾値未満であっても、解像度を下げて前記第１の印刷データを生成するためのメモリ確保を試みる処理モードを設定する設定手段と、を有し、
前記第３の判断手段が前記メモリの空き容量は前記特定の閾値未満であると判断しても、前記設定手段により前記処理モードが設定されている場合は前記メモリ確保を試みることを特徴とする請求項２に記載の情報処理装置。
【請求項７】
コンピュータに、
印刷処理装置が第１の印刷データの処理に対応しているか否かを判断する第１の判断工程と、
前記第１の印刷データを生成するためのメモリ確保に成功したか否かを判断する第２の判断工程と、
前記第１の判断工程で前記印刷処理装置は前記第１の印刷データの処理に対応していると判断して、かつ、前記第２の判断工程で前記第１の印刷データを生成するためのメモリ確保に成功したと判断した場合に、前記第１の印刷データを前記印刷処理装置に送信して、前記第１の判断工程で前記印刷処理装置は前記第１の印刷データの処理に対応していないと判断した場合に、第２の印刷データを前記印刷処理装置に送信する送信工程と、を実行させることを特徴とするプログラム。
【請求項８】
前記コンピュータに、
前記第１の判断工程で前記印刷処理装置は前記第１の印刷データの処理に対応していると判断した場合に、メモリの空き容量が特定の閾値以上であるか否かを判断する第３の判断工程と、を実行させ、
前記第２の判断工程は、前記第３の判断工程で前記メモリの空き容量は前記特定の閾値以上であると判断した場合に、前記第１の印刷データを生成するためのメモリ確保に成功したか否かを判断することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記コンピュータに、
前記メモリの空き容量が前記特定の閾値未満であっても、前記第１の印刷データを生成するためのメモリ確保を試みる処理モードを設定する設定工程と、を実行させ、
前記第３の判断工程で前記メモリの空き容量は前記特定の閾値未満であると判断しても、前記設定工程により前記処理モードが設定されている場合は前記メモリ確保を試みることを特徴とする請求項８に記載のプログラム。
【請求項１０】
前記第１の判断工程で前記印刷処理装置は前記第１の印刷データの処理に対応していると判断しても、前記第２の判断工程で前記第１の印刷データを生成するためのメモリ確保に失敗したと判断した場合は、前記第２の印刷データを前記印刷処理装置に送信することを特徴とする請求項７乃至９のいずれか１項に記載のプログラム。
【請求項１１】
前記第１の印刷データは画像の形式を変換することによって生成し、前記第２の印刷データは画像を色変換した後にハーフトーン化することによりバンド単位で生成することを特徴とする請求項７乃至１０のいずれか１項に記載のプログラム。
【請求項１２】
前記コンピュータに、
前記メモリの空き容量が前記特定の閾値未満であっても、解像度を下げて前記第１の印刷データを生成するためのメモリ確保を試みる処理モードを設定する設定工程と、を実行させ、
前記第３の判断工程で前記メモリの空き容量は前記特定の閾値未満であると判断しても、前記設定工程により前記処理モードが設定されている場合は前記メモリ確保を試みることを特徴とする請求項８に記載のプログラム。
【請求項１３】
印刷処理装置が第１の印刷データの処理に対応しているか否かを判断する第１の判断工程と、
前記第１の印刷データを生成するためのメモリ確保に成功したか否かを判断する第２の判断工程と、
前記第１の判断工程で前記印刷処理装置は前記第１の印刷データの処理に対応していると判断して、かつ、前記第２の判断工程で前記第１の印刷データを生成するためのメモリ確保に成功したと判断した場合に、前記第１の印刷データを前記印刷処理装置に送信して、前記第１の判断工程で前記印刷処理装置は前記第１の印刷データの処理に対応していないと判断した場合に、第２の印刷データを前記印刷処理装置に送信する送信工程と、を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は印刷データを送信する技術に関する。
【背景技術】
【０００２】
特許文献１は、プリンタドライバがアプリケーションプログラムから出力された印刷データを、プリンタが解釈可能なページ記述言語のデータに変換し、プリンタケーブルを介してプリンタに転送する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２０７５８０
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１は一つのプリンタが解釈可能なページ記述言語のデータ（以降、印刷データと呼ぶ）の種類が複数あることについて開示していない。プリンタを含む印刷処理装置が多様な印刷方法を確保することができれば、ユーザーの利便性の向上を図ることができる。よって、本明細書では印刷処理装置によっては印刷処理装置が対応できる印刷データの種類が複数である場合を考える。
【０００５】
この場合、ユーザーの印刷環境としては対応する印刷データの種類が一つの印刷処理装置と対応する印刷データの種類が複数の印刷処理装置が混在している可能性がある。
【０００６】
さらに、次に挙げる課題が生じる可能性もある。例えば、印刷しようとする印刷処理装置が第１の印刷データと第２の印刷データの印刷に対応しているとしても、印刷データの種類によって生成時のメモリ消費量や生成にかかる処理時間が異なることがある。例えば、第１の印刷データは第２の印刷データと比較して、印刷データ生成時のメモリ消費量は多いが生成にかかる処理時間が高速であるとする。よって、高速に印刷することを考えれば第１の印刷データで印刷する方が良い。しかし、第１の印刷データで印刷を行うと印刷データ生成時のメモリ消費量が多いため、情報処理装置が不安定になる可能性やアプリケーションが強制終了してしまう可能性がある。
【０００７】
よって、本発明は上記の課題を鑑みて、印刷処理装置が第１の印刷データの処理に対応しているか及び第１の印刷データを生成するためのメモリ確保に成功したか否かを考慮することで、メモリ状況を含む印刷環境に応じた印刷を実現することを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明に係る情報処理装置は、
印刷処理装置が第１の印刷データの処理に対応しているか否かを判断する第１の判断手段と、
前記第１の印刷データを生成するためのメモリ確保に成功したか否かを判断する第２の判断手段と、
前記第１の判断手段が前記印刷処理装置は前記第１の印刷データの処理に対応していると判断して、かつ、前記第２の判断手段が前記第１の印刷データを生成するためのメモリ確保に成功したと判断した場合に、前記第１の印刷データを前記印刷処理装置に送信して、前記第１の判断手段が前記印刷処理装置は前記第１の印刷データの処理に対応していないと判断した場合に、第２の印刷データを前記印刷処理装置に送信する送信手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、印刷処理装置が第１の印刷データの処理に対応しているか及び第１の印刷データを生成するためのメモリ確保に成功したか否かを考慮することで、メモリ状況を含む印刷環境に応じた印刷を実現することができる。
【図面の簡単な説明】
【００１０】
【図１】データ処理装置の構成を示す図である。
【図２】データ処理装置のハードウェア構成を示す図である。
【図３】印刷処理装置内のハードウェア構成を説明するブロック図である。
【図４】データ処理装置のソフトウェアの構成を説明するブロック図である。
【図５】データ処理装置で表示可能なＵＩの一例を示す図である。
【図６】データ処理装置で表示可能なＵＩの一例を示す図である。
【図７】データ処理装置の処理フローを示すフローチャートである。
【図８】ＰＤＬ種類別における、処理順序、メモリ使用量特性、処理負担特性を示すチャート図である。
【図９】データ処理装置で表示可能なＵＩの一例を示す図である。
【図１０】データ処理装置で表示可能なＵＩの一例を示す図である。
【図１１】データ処理装置の処理フローを示すフローチャートである。
【図１２】データ処理装置で表示可能なＵＩの一例を示す図である。
【図１３】データ処理装置で表示可能なＵＩの一例を示す図である。
【図１４】各ＰＤＬの生成手順を示す図である。
【発明を実施するための形態】
【００１１】
本明細書では情報処理装置の一例としてスマートフォンなどのモバイル端末に保存された文書データを、印刷処理装置に印刷する印刷プログラムを例に説明する。印刷プログラムは、ユーザーが選択した文書データを、印刷データであるＰＤＬデータに変換し、変換されたＰＤＬデータを印刷処理装置に送信することによって印刷処理を実行する。
【００１２】
次に印刷処理装置について説明する。本明細書で想定する印刷環境において、印刷処理装置によっては処理できるＰＤＬの種類が限られている。例えば、ローエンドユーザー向けの印刷処理装置は、印刷処理装置側の処理装置を簡易的に構成するため、印刷処理装置が対応するＰＤＬは、トナー色でハーフトーン化されたプリンタ解像度のラスターイメージデータで構成されるＰＤＬである必要がある。このようなＰＤＬ（以降、本ＰＤＬをトナー配列ベースのＰＤＬと呼ぶ）であれば、印刷処理装置はＰＤＬデータをそのままトナーを載せる配列データとして扱えばよいので、印刷処理装置側の処理装置を簡易化することができる。
【００１３】
また、トナー配列ベースのＰＤＬで印刷処理を実現することで、印刷処理装置に印刷を指示するホスト側についても次のように構成できる。すなわち、トナー配列ベースのＰＤＬは非可逆圧縮形式のデータにしない特性上、原稿のページ上の特定箇所を図１４の１４０１に示すように部分的にレンダリング（部分的にＲＧＢ  Ｂｉｔｍａｐを生成）できる。そして、レンダリングした部分を１４０２に示すようにトナー色（ＣＭＹＫ色）に変換して（ＣＭＹＫ  Ｂｉｔｍａｐを生成）、さらに１４０３に示すようにハーフトーン化したラスターイメージデータにして印刷処理装置に送信する。ＲＧＢ  Ｂｉｔｍａｐが例えば数千ドットある場合は数十ドットずつバンド単位で処理をするため、このＲＧＢ  ＢｉｔｍａｐからＣＭＹＫ  Ｂｉｔｍａｐへの色変換とハーフトーン化を、ページ全体を補完するまで繰り返す（１４０１に加えて未レンダリング部分の１４０４、１４０５に対しても実行する）。これにより、１ページ分の印刷データとすることが可能である。
【００１４】
つまり、トナー配列ベースのＰＤＬはページ上を部分的に処理することができるＰＤＬなのでホスト側も印刷処理装置も一時的に使用するメモリ量が少なくても動作させることができる。しかし、ホスト側は、トナー色でハーフトーン化されたプリンタ解像度のラスターイメージデータをページ全体に渡って生成する必要があるため、結果的にＰＤＬを生成する処理量自体は非常に大きくなる。トナー配列ベースのＰＤＬの特徴を、図８の８０１にチャートとして示す。
【００１５】
一方で、多様なユーザーニーズに対応するため、本明細書ではトナー配列ベースのＰＤＬ以外のＰＤＬに対応することを考える。ここで、複数のＰＤＬに対応している印刷処理装置は受信したＰＤＬの種類に応じて、適切なＰＤＬを選択して印刷処理を実行するものとする。トナー配列ベースのＰＤＬ以外のＰＤＬとして例えば、ＵＳＢメモリを印刷処理装置に差し込むことで、ＵＳＢメモリ内のＪＰＥＧ画像を印刷することのできる機能を持った印刷処理装置を考える。このような機能が印刷処理装置に盛り込まれることによって、情報処理装置から送信する印刷データにおいてもＪＰＥＧベースで構成されたＰＤＬ（以降、本ＰＤＬをＪＰＥＧベースのＰＤＬと呼ぶ）をサポートする印刷処理装置が実現できる。なお、本明細書ではＪＰＥＧを例に説明するがＰＮＧやＴＩＦＦ等の他の形式であっても構わない。
【００１６】
しかしながら、ＪＰＥＧベースのＰＤＬを生成する場合、１ページ分の印刷データは、１ページあたりのＪＰＥＧ画像を１枚で構成する必要がある。それは先述したように、ＵＳＢメモリに格納されているＪＰＥＧファイル１枚に対し、それを１ページに印刷する印刷処理装置側の機能がベースとなっているためである。
【００１７】
ＪＰＥＧベースのＰＤＬを生成する際の前述の制約のため、ホスト側では次のように処理をする必要がある。すなわち、原稿のページ全体を一旦全てレンダリングして、図１４の１４０６に示すように１ページ全てを表現しているラスターイメージ（１ページ全体を表現しているＢｉｔｍａｐ）を生成して、そのラスターイメージをもとに１４０７に示すようにＪＰＥＧ画像に変換する。また、前記ラスターイメージは印刷品位に耐えうる十分な解像度となっており（例えばＡ４サイズ６００ｄｐｉのラスターイメージ）、それをＪＰＥＧ変換のためにメモリ上に一旦展開する必要があるので、一時的ではあるが、大量のメモリ消費が発生する。ただし、ここまで処理を進めることができれば、１４０８に示すように、ページ上の任意の位置に前記ＪＰＥＧをレイアウトするだけで、ＪＰＥＧベースのＰＤＬを生成することができる。上述したＪＰＥＧベースのＰＤＬの特徴を、図８の８０２にチャートとして示す。
【００１８】
よって、例えば大量のメモリ消費に厳しいモバイルＯＳ環境等において、ＪＰＥＧベースのＰＤＬ生成処理を実行しているアプリケーションは、ＯＳから強制終了されるリスクが存在する。
【００１９】
以降、本明細書ではこのようなトナー配列ベースのＰＤＬに対応する印刷処理装置と、トナー配列ベースのＰＤＬとＪＰＥＧベースのＰＤＬの両方に対応する印刷処理装置が混在する印刷環境を例に説明する。
【００２０】
［実施例１］
図１は、本発明の一実施形態におけるデータ処理システムの構成を示す図である。本例は、モバイル形態のデータ処理装置と印刷処理装置とがネットワークを介して通信可能なシステムである。データ処理装置は情報処理装置の一例である。
【００２１】
図１において、１０１はモバイル形態のデータ処理装置であって、印刷処理装置１０４に対して印刷データ送信を指示するユーザーが使用するコンピュータである。１０４は印刷処理装置であって、プリンタ機能のほか、コピー機能、スキャナ機能、ファクス送信機能等を備える。
【００２２】
１０３は上記装置が接続されているＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）であって、ＬＡＮ１０３を介して上記装置は情報の相互通信を行っている。１０２は無線ＬＡＮターミナルである。無線ＬＡＮターミナル１０２は、一般的なネットワーク・ルーター機能を有した無線ＬＡＮの親機であって、家庭内や事務所などの中で無線ＬＡＮを提供している。また、データ処理装置１０１はモバイル端末であることから、無線ＬＡＮターミナル１０２を介してＬＡＮ１０３に参加することができる。データ処理装置１０１は、無線ＬＡＮターミナル１０２が提供する無線ＬＡＮエリアに入ると、予め設定していた認証情報を利用して自動的にＬＡＮ１０３のネットワークに参加することができる。
【００２３】
図２は、図１におけるデータ処理装置１０１のハードウェア構成を示すブロック図である。
【００２４】
なお、データ処理装置１０１は、モバイル端末やスマートフォンであり、小型端末用のオペレーティングシステムや、通話、データ通信を制御するプログラムが動いていても構わない。あるいは後述する音声制御部２０６及びマイク・スピーカ２１３、位置検出制御部２１０、ＧＰＳセンサー２１６、携帯電話データ通信部２１２等を備えないパーソナルコンピュータであっても構わない。
【００２５】
ハードウェアの各構成要素は、システムバス２０１に接続されている。  ＲＯＭ２０３にはデータ処理装置１０１におけるオペレーティングシステム及び、通話、データ通信を制御するアプリケーションが格納されており、ＣＰＵ２０２で実行される。  データ通信を制御するアプリケーションとしては、印刷アプリケーションやＭａｉｌソフト、Ｗｅｂブラウザなどがある。
【００２６】
ＲＡＭ２０４は、プログラムを実行するためのワークメモリエリアである。印刷アプリケーションが印刷データを生成するワークメモリエリアであり、また、ＷｅｂブラウザがＷｅｂサーバーから取得してきたＷｅｂページデータやＷｅｂサービスにアクセスするための認証情報などを一時記憶するためのメモリでもある。記憶装置２０９は不揮発性の記憶装置であり、データ処理装置１０１の再起動後も保持しておく必要のある各種動作モード設定や、稼働ログなどが記憶される。
【００２７】
加えて、ＣＰＵ２０２が記憶装置２０９に記憶されているプログラムに基づき処理を実行することによって、図４に示されるようなデータ処理装置１０１のソフトウェア構成及び後述するフローチャートの各ステップの処理が実現される。
【００２８】
ＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２０５は、無線ＬＡＮターミナル１０２を介してＬＡＮ１０３のネットワークに参加するための無線ＬＡＮ通信部２１１と、携帯キャリアの提供するネットワークに参加するための携帯電話データ通信部２１２の通信制御を行う。一般的に無線ＬＡＮのネットワークに参加できるとき、ＮｅｔｗｏｒｋＣｏｎｔｒｏｌｌｅｒ２０５は、無線ＬＡＮの接続を優先する。データ処理装置１０１が無線ＬＡＮのネットワークエリアから外れた場合には、携帯キャリアが提供する無線通信ネットワークへ参加する。
【００２９】
音声制御部２０６は、主に通話アプリケーションが起動しユーザーが電話をしているときに利用する。マイク・スピーカ２１３にて音声データの入出力を行い、音声制御部２０６は、その制御プログラムとの仲介を行っている。
【００３０】
表示制御部２０７は、データ処理装置１０１のディスプレイ２１４にて出力する情報の制御を行っている。入力制御部２０８は、データ処理装置１０１のボタンやタッチパネル２１５にてユーザーが指示した情報の制御を行っている。これらの音声制御部２０６、表示制御部２０７、入力制御部２０８を利用して、データ処理装置１０１上でのアプリケーションは、ネットワーク通信情報やデータ処理装置１０１のさまざまな情報をユーザーに提供する。
【００３１】
位置検出制御部２１０は、ＧＰＳセンサー２１６からデータ処理装置１０１の位置情報を取得しオペレーティングシステムに提供する。これらの制御は、ＣＰＵ２０２で動くオペレーティングシステムにて制御される。
【００３２】
図３は、図１に示した印刷処理装置内のハードウェア構成を説明するブロック図である。なお、本例は、スキャナ機能と、プリンタ機能を有する複合機（ＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ））の例を示す。
【００３３】
図３において、３０１はＩ／Ｏで、ネットワーク（ＬＡＮ）１０３などの通信媒介を介してデータ処理装置１０１と接続している。Ｉ／Ｏ３０１は複数の接続形態に対応するために複数個搭載されていてもよい。
【００３４】
このＩ／Ｏ３０１を通して、印刷処理装置１０４は、デバイスＩＤやスキャンイメージをデータ処理装置１０１、１０２に渡す。またデータ処理装置１０１より、各種の制御コマンドを受けて処理を行う。
【００３５】
Ｉ／Ｆ制御部３０２は、印刷処理装置１０４に搭載されているスキャナやプリンタ、またはファクスなどの処理系に関してデバイスＩＤを発行する制御をおこなっている。ＲＡＭ３０３は、一次記憶装置で、Ｉ／Ｏ３０１で取得した制御コマンドなどの外部データや、スキャナエンジン３１３で読み取られたイメージを格納するに使用される。さらに、ＲＡＭ３０３は、プリンタコントローラ３１０で展開されたプリンタエンジン３０６に渡される前にイメージの格納などに使用される。
【００３６】
ＲＡＭ３０３の割り当て管理はＲＡＭ制御部３０４が行っている。画像データ調歩回路３０５は、プリンタコントローラ３１０やスキャナエンジン３１３によって取り込まれたＲＡＭ制御部３０４に展開されたイメージをプリンタエンジン３０６の回転にあわせて出力する装置である。
【００３７】
プリンタエンジン３０６は紙などの出力メディアにイメージを現像する装置である。メインコントローラ３０８は、エンジンＩ／Ｆ３０７によりプリンタエンジン３０６の各種制御を行う。
【００３８】
また、メインコントローラ３０８は、制御の要のモジュールであり、スキャナコントローラ３０９やプリンタコントローラ３１０やファクスコントローラ３１１にＩ／Ｏ３０１経由でデータ処理装置１０１より受け取る制御言語の適切な振り分け処理を行う。さらに、メインコントローラ３０８は、それぞれのコントローラやユーザーインタフェース３１２からの支持をうけてプリンタエンジン３０６やスキャナエンジン３１３の制御を行う。
【００３９】
メインコントローラ３０８と各種コントローラの間の制御インターフェイスを統一することにより、一つの周辺機器に複数種類の制御コマンドを処理可能な拡張ボードが搭載可能になる。また現在搭載されている拡張コントローラのデバイスＩＤを各コントローラより取得し管理するのもメインコントローラの役割である。
【００４０】
スキャナコントローラ３０９はデータ処理装置１０１より受けたスキャン制御コマンドをメインコントローラ３０８が解釈可能な内部実行命令に分解する。またスキャナエンジン３１３で読み取ったイメージをスキャン制御コマンドに変更する。
【００４１】
プリンタコントローラ３１０はデータ処理装置１０１より印刷データとして受けたＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）をメインコントローラ３０８が解釈可能な展開イメージなどを含む内部実行命令に分解する。展開イメージはプリンタエンジンまで運ばれ、用紙などの出力メディアに印刷される。また、トナー配列ベースのＰＤＬは、トナー色でハーフトーン化されたプリンタ解像度のラスターイメージデータという特性上、前記プリンタエンジンまで運ばれる展開イメージと同等である。よって、トナー配列ベースのＰＤＬのみ対応することが前提の印刷処理装置であれば、それに係る処理は省くことができるため、印刷処理装置１０４の構成は簡易化することが可能である。
【００４２】
図４は、図１に示したデータ処理装置１０１のソフトウェアの構成を説明するブロック図である。４０２は印刷制御部で、ＲＯＭ２０３にアプリケーションとしてインストールされている。印刷制御部は、通信可能な印刷処理装置１０４に対し、印刷データを生成し、その印刷データを送信する機能を有している。アプリケーション４０３は、上述した機能を実行するための各種のユーザーインタフェースを備え、データ処理装置１０１のユーザーインタフェース上でユーザーからの要求を受け付けて、各機能処理の実行を管理している。
【００４３】
図５は、データ処理装置１０１がユーザーからの各種入力操作の受け付けを処理するための、ユーザーインタフェースの一例を示している。５０１は、印刷する原稿データのプレビューを表示している。５０２は、印刷する印刷処理装置のプリンターモデル名および、印刷処理装置のＩＰアドレスを表示している。５０３は、印刷設定を選択するための画面に遷移するボタンである。ボタン５０３を押下することで、図６に示す印刷設定画面に遷移し、各種印刷設定を選択することができる。５０４は、印刷処理の開始のトリガーとなるボタンである。以下、ボタン５０４を押下し、印刷処理装置に送信する印刷データの種類を決定する動作について説明する。
【００４４】
図７は、データ処理装置１０１における印刷データの種類決定処理についてのフローチャートを示している。前提として、本フローチャートを開始するトリガーは、印刷アプリケーションに、印刷するための原稿となるファイル（例えば５０１に示すプレビューに対応する画像データ）を取り込み、図５に示す画面を表示した状態になる操作である。
【００４５】
Ｓ７０１では、印刷処理装置１０４に対し、印刷処理装置１０４が処理可能なＰＤＬを問い合わせる。印刷処理装置１０４が処理可能なＰＤＬに関する情報の取得は、印刷処理装置１０４が準拠するＭＩＢ（Ｍａｎａｇｅｍｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）情報に基づいて行われる。また、ＭＩＢとは、ＳＮＭＰ（Ｓｉｍｐｌｅ  Ｎｅｔｗｏｒｋ  Ｍａｎａｇｅｍｅｎｔ  Ｐｒｏｔｏｃｏｌ）で管理されるネットワーク機器（本実施の形態においては印刷処理装置１０４）が、自分の状態を外部に知らせるために公開する情報のことをいい、ＲＦＣ１２１３で規定されている。なお、印刷処理装置が処理可能なＰＤＬを問い合わせるためのＭＩＢは、“ｐｒｔＩｎｔｅｒｐｒｅｔｅｒＤｅｓｃｒｉｐｔｉｏｎ”を使用する。
【００４６】
Ｓ７０２では、印刷処理装置１０４から受信したＭＩＢを解析し、印刷処理装置１０４が対応しているＰＤＬの種類を取得する。なお、印刷処理装置１０４が対応しているＰＤＬの種類を取得は複数回の通信に分けて対応しているＰＤＬの種類の全てを取得しても良いし、一度の通信で対応しているＰＤＬの種類の全てを取得しても良い。あるいは、データ処理装置１０１が特定のＰＤＬの種類（例えばＪＰＥＧベースのＰＤＬ）に対応しているかどうかを問い合せて、印刷処理装置１０４が問い合わされた特定のＰＤＬの種類に対応している旨を返却する構成であっても構わない。
【００４７】
Ｓ７０３では、Ｓ７０２で取得したＰＤＬの種類を解析し、印刷処理装置１０４が対応するＰＤＬにＪＰＥＧベースのＰＤＬが含まれているか判定する。印刷処理装置１０４が対応するＰＤＬに、ＪＰＥＧベースのＰＤＬが含まれている場合は（Ｓ７０３：Ｙｅｓ）、Ｓ７０４に処理を進める。また、印刷処理装置１０４が対応するＰＤＬに、ＪＰＥＧベースのＰＤＬが含まれていない場合は（Ｓ７０３：Ｎｏ）、Ｓ７０８に処理を進める。
【００４８】
Ｓ７０４では、ＯＳに対して現在利用可能なメモリ量を問い合わせる。利用可能なメモリ量はＲＡＭ２０４の空き容量に加えて、仮想メモリを用いる場合は記憶装置２０９の空き容量によって決定される。例えば、Ａｎｄｒｏｉｄ  ＯＳ上のアプリケーションであった場合、ＯＳから提供される機能の１つである、“ＡｃｔｉｖｉｔｙＭａｎａｇｅｒ”を使うことでメモリ関連の情報を取得することができる。
【００４９】
Ｓ７０５では、ＪＰＥＧベースのＰＤＬを生成するための、特定閾値以上の空き容量がメモリに残っているか判定する。
【００５０】
ＪＰＥＧ画像を生成する際、そのソースとなるデータ形式はＲＧＢ色の非圧縮画像（ＲＧＢ  Ｂｉｔｍａｐに相当）である必要があり、そのデータの展開のために特定の容量のメモリ残量が必要となる。例えば、Ａ４サイズ（２１０ｍｍ  ×  ２９７ｍｍ）１ページに対して３００ｄｐｉ（２４８０ｐｘ  ×  ３５０８ｐｘ）のＲＧＢ  Ｂｉｔｍａｐデータをメモリ上に展開する際には、８，６９９，８４０ピクセル分の２４ｂｉｔカラーデータが必要であり、合計約２６ＭＢのメモリ残量が必要となる。
【００５１】
Ｓ７０５における判定処理はＯＳから強制終了されることを回避するのが目的である。よって、特定閾値は前述の必要なメモリ残量（約２６ＭＢ）に対して、例えば２倍以上のメモリ残量（約５２ＭＢ）に設定する。本判定処理において、特定閾値以上のメモリ残量がある場合は（Ｓ７０５：Ｙｅｓ）、Ｓ７０７に処理を進める。また、特定閾値未満のメモリ残量しかない場合は（Ｓ７０５：Ｎｏ）、Ｓ７０６に処理を進める。
【００５２】
Ｓ７０６においては、処理モードの一例である強制高速モードが有効であるか、もしくは無効であるかを判定する。強制高速モードは、図９の９０１に示すように、ユーザーが選択可能な印刷設定の１つとして提供される。強制高速モードが有効である場合は（Ｓ７０６：Ｙｅｓ）、Ｓ７０７に処理を進めることでＪＰＥＧベースのＰＤＬを生成するためのメモリ確保を試みる。強制高速モードが無効である場合は（Ｓ７０７：Ｎｏ）Ｓ７０８に処理を進める。
【００５３】
Ｓ７０７では、ＪＰＥＧベースのＰＤＬを生成するために必要なメモリ確保に成功するかを判定する。前提が前述と同一のＡ４サイズ（２１０ｍｍ  ×  ２９７ｍｍ）かつ３００ｄｐｉであれば、２６ＭＢのメモリ確保に成功するかを確認する。本ステップにおいて、メモリ確保に成功した場合は（Ｓ７０７：Ｙｅｓ）、Ｓ７１０に処理を進める。メモリ確保に失敗した場合は（Ｓ７０７：Ｎｏ）、Ｓ７０８に処理を進める。ここで、メモリ確保に失敗する例としてはＳ７０５の時点ではメモリが空いていても、実際にＳ７０７でメモリを確保する時点ではメモリが空いていないケースか、あるいは強制高速モードによるメモリ確保が失敗したケースが考えられる。
【００５４】
Ｓ７１０では、ＪＰＥＧベースのＰＤＬを生成し、印刷データとして印刷処理装置１０４に生成したＰＤＬを送信する。
【００５５】
なお、強制高速モードが有効であり、Ｓ７０６からＳ７０７に進み、Ｓ７０７でメモリ確保に成功した場合（Ｓ７０７：Ｙｅｓ）、Ｓ７１０に進む前にユーザーに警告を行うように構成しても構わない。なぜなら、Ｓ７０７でメモリ確保に成功しても、その前のＳ７０５の判定では特定閾値未満のメモリ残量しかないと判定されており、データ処理装置１０１が動作するＯＳのメモリに余裕がない可能性が高い。よって、メモリ確保に成功しても処理途中で印刷アプリケーションが強制終了される可能性がある。このことから、Ｓ７０６からＳ７０７に進み、Ｓ７０７でメモリ確保に成功した場合（Ｓ７０７：Ｙｅｓ）、図１０の１００１に示すような注意喚起のメッセージをＳ７１０に進む前に表示しても構わない。また、注意喚起のメッセージはユーザーに他のアプリケーションを終了させるように促すメッセージでもよい。
【００５６】
Ｓ７０８では、トナー配列ベースのＰＤＬを生成し、印刷データとして印刷処理装置１０４に前記ＰＤＬを送信する。トナー配列ベースのＰＤＬの生成処理は、先述したように、必要とするメモリ量が少ない（図８：８０１）。また、トナー配列ベースのＰＤＬは、先述したように、プリンタエンジンが直接解釈できる展開イメージと同等である。よって、トナー配列ベースのＰＤＬを用いることには印刷処理装置が低機能であっても印刷できるという効果や、印刷処理装置の負荷が少ないという効果がある。
【００５７】
以上の処理により、本発明によれば、データ処理装置はＯＳのリソース（メモリ残量）の状況に応じて、適切なＰＤＬを自動で選択するので、ユーザーは状況に応じたＰＤＬの切り替えを手動で行う必要がなく、人為的判断ミスに起因したＯＳからのアプリケーションの強制終了を避けることができる。また、メモリを多く消費する高速処理を強制的に行った場合でも、注意喚起のメッセージを表示する構成をとれば、ユーザーに対して本データ処理装置以外のアプリケーションを終了させるなどの行動を促すことが出来る。
【００５８】
［実施例２］
本実施例では利用可能なメモリ残量に応じて、生成するＪＰＥＧ画像の解像度を変更する処理について説明する。以下、図１１のフローチャートを用いて本実施例２の処理を説明する。
【００５９】
実施例２におけるＳ１１０１、Ｓ１１０２、Ｓ１１０３、Ｓ１１０４、Ｓ１１０５は、実施例１におけるＳ７０１、Ｓ７０２、Ｓ７０３、Ｓ７０４、Ｓ７０５と同一のため、実施例２についてはＳ１１０６以降の処理をより詳細に説明する。
【００６０】
Ｓ１１０６では、解像度を落としてでもＪＰＥＧベースのＰＤＬを生成し、処理モードの一例である処理の高速化を行うモード（高速化モード）が有効であるか、もしくは無効であるか判定する。高速化モードは、図１２の１２０１に示すように、ユーザーが選択可能な印刷設定の１つとして提供される。高速化モードが有効である場合は（Ｓ１１０６：Ｙｅｓ）、Ｓ１１０７に処理を進める。高速化モードが無効である場合は（Ｓ１１０６：Ｎｏ）Ｓ１１０８に処理を進める。
【００６１】
Ｓ１１０７においては、現在利用可能なメモリ残量に対する、生成するＪＰＥＧ画像の解像度を定義したプロファイルを参照し、生成するＪＰＥＧ画像の解像度を決定する。具体的には例えば現在利用可能なメモリ残量が２６ＭＢであれば、解像度は１５０ｄｐｉといったように決定する。プロファイルは、図１３の１３０１に示すように、ユーザーが変更可能なプロファイルとして提供してもよい。あるいは、ユーザーに変更可能な機能として提供しないで、データ処理装置１０１が静的なプロファイルを持って、静的なプロファイルに従って処理してもよい。
【００６２】
次に、Ｓ１１０９の処理について説明する。Ｓ１１０７からＳ１１０９へ進んだ場合にＳ１１０９では、Ｓ１１０７で決定した解像度でＪＰＥＧベースのＰＤＬを生成するために必要なメモリ確保に成功するかを判定する。一方、Ｓ１１０５で特定閾値以上のメモリが残っていると判定された場合におけるＳ１１０９の処理はＳ７０７と同一である。本ステップにおいて、メモリ確保に成功した場合（Ｓ１１０９：Ｙｅｓ）は、Ｓ１１１０に処理を進める。メモリ確保に失敗した場合（Ｓ１１０９：Ｎｏ）は、Ｓ１１０８に処理を進める。ここで、メモリ確保に失敗する例としてはＳ１１０５やＳ１１０７時点ではメモリが空いていても、実際にＳ１１０９でメモリを確保する時点ではメモリが空いていないケースが考えられる。
【００６３】
Ｓ１１０８ではＳ７０８と同じく、トナー配列ベースのＰＤＬを生成し、印刷データとして印刷処理装置１０４に生成したＰＤＬを送信する。
【００６４】
Ｓ１１１０ではＳ７１０と同じく、ＪＰＥＧベースのＰＤＬを生成する。ただし、Ｓ１１０７を経由した場合においては、Ｓ１１０７で決定した解像度に応じて、ＪＰＥＧベースのＰＤＬを生成する。そして、前記ＰＤＬを印刷データとして印刷処理装置１０４に送信する。
【００６５】
以上の処理により、ＪＰＥＧベースのＰＤＬを生成する場合に、現在利用できるメモリ残量に応じて生成するＪＰＥＧ画像の解像度を決定するので、ＪＰＥＧベースのＰＤＬが選択される機会が実施例１に比べて増加する。つまり、本実施例２により、印刷品位は低下してしまうが高速処理される機会を増やすことが出来る。
【００６６】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。
【００６７】
即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015084172.tif 000003
【図２】
2015084172.tif 000004
【図３】
2015084172.tif 000005
【図４】
2015084172.tif 000006
【図５】
2015084172.tif 000007
【図６】
2015084172.tif 000008
【図７】
2015084172.tif 000009
【図８】
2015084172.tif 000010
【図９】
2015084172.tif 000011
【図１０】
2015084172.tif 000012
【図１１】
2015084172.tif 000013
【図１２】
2015084172.tif 000014
【図１３】
2015084172.tif 000015
【図１４】
2015084172.tif 000016