(57)【要約】      （修正有）【課題】リニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイルを印刷用に処理する方法を提供する。【解決手段】プリンタ・ファームウェアは、ＰＤＦファイルがリニアライズされていることをプリンタ・ドライバが検出したか否かを判定する工程と、ＰＤＦファイルがリニアライズされていることをプリンタ・ドライバが検出したと判定した場合に、ＰＤＦファイルのストリーム・データを保存する工程と、ＰＤＦファイルがリニアライズされていることがプリンタ・ドライバによって未確認の場合、ＰＤＦファイルがリニアライズされているか否かを判定する工程とを含み、リニアライズド処理中に、リニアライゼーション・エラーの真偽を特定し、ストリーム・データを保存及び解釈している間に並行して、印刷エラーを特定し処理する。【選択図】図１
2018075826.tif 000002
【特許請求の範囲】
【請求項１】
リニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイルを印刷用に処理する方法であって、
前記ＰＤＦファイルがリニアライズされていることをプリンタ・ドライバが検出したか否かプリンタ・ファームウェアによって判定する工程と、
前記ＰＤＦファイルがリニアライズされていることを前記プリンタ・ドライバが検出したと前記プリンタ・ファームウェアが判定した場合に、前記ＰＤＦファイルのストリーム・データを前記プリンタ・ファームウェアによって保存する工程と、
前記ＰＤＦファイルがリニアライズされていることが前記プリンタ・ドライバによって未確認の場合、前記ＰＤＦファイルがリニアライズされているか否かを前記プリンタ・ファームウェアによって判定する工程と、
を備える方法。
【請求項２】
請求項１に記載の方法であって、
前記ＰＤＦファイルがリニアライズされているか否かを前記プリンタ・ファームウェアによって判定する工程は、
前記プリンタ・ファームウェアによって受信される前記ＰＤＦファイルの前記ストリーム・データの第１部分にリニアライズド・キー文字列がないかモニタリングする工程と、
前記リニアライズド・キー文字列が見つかった場合、前記リニアライズド・キー文字列を解釈する工程と、
前記リニアライズド・キー文字列が見つかった場合は、前記ＰＤＦファイルをリニアライズドとして処理する工程と、
前記受信されたＰＤＦファイルの前記第１部分に前記リニアライズド・キー文字列が未確認の場合は、前記ＰＤＦファイルを非リニアライズドとして処理する工程と、
を含む方法。
【請求項３】
請求項２に記載の方法であって、
前記プリンタ・ファームウェアによって受信される前記ＰＤＦファイルの前記ストリーム・データの前記第１部分に前記リニアライズド・キー文字列がないかモニタリングする工程は、前記ＰＤＦファイルの１０２４バイトのストリーム・データを受信した後、前記リニアライズド・キー文字列がないか前記プリンタ・ファームウェアによってモニタリングする工程を含む方法。
【請求項４】
請求項２又は３に記載の方法であって、
前記リニアライズド・キー文字列を解釈する工程は、前記ＰＤＦファイルのリニアライズド特定ファイル・サイズを前記ＰＤＦファイルの実際のファイル・サイズと比較する工程を含む方法。
【請求項５】
請求項２乃至４のいずれかに記載の方法であって、
前記リニアライズド・キー文字列が見つかった場合に、前記ＰＤＦファイルをリニアライズドとして処理する工程は、
前記ＰＤＦファイルのリニアライズド特定ファイル・サイズと前記ＰＤＦファイルの第１ページ・ファイル・サイズとの間のサイズ差を比較する工程と、
前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと前記ＰＤＦファイルの前記第１ページ・ファイル・サイズとの間の前記サイズ差が閾値サイズよりも大きい場合、前記ＰＤＦファイルをリニアライズドとして処理する工程と、
前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと前記ＰＤＦファイルの前記第１ページ・ファイル・サイズとの間の前記サイズ差が閾値サイズ未満の場合、前記ＰＤＦファイルを非リニアライズドとして処理する工程と、
を含む方法。
【請求項６】
請求項５に記載の方法であって、
前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと前記ＰＤＦファイルの前記第１ページ・ファイル・サイズとの間の前記サイズ差が前記閾値サイズよりも大きい場合、前記ＰＤＦファイルをリニアライズドとして処理する工程は、
前記ＰＤＦファイルの第１ページ・ストリーム・データを記憶及び解釈する工程と、
前記ＰＤＦファイルの非第１ページ・ストリーム・データを記憶及び解釈する工程と、
を含む方法。
【請求項７】
請求項５に記載の方法であって、
前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと前記ＰＤＦファイルの前記第１ページ・ファイル・サイズとの間の前記サイズ差が前記閾値サイズよりも大きい場合、前記ＰＤＦファイルをリニアライズドとして処理する工程は、
前記ＰＤＦファイルの第１ページ・ストリーム・データを記憶する工程と、
前記ＰＤＦファイルの前記第１ページ・ストリーム・データを解釈する工程と、
前記ＰＤＦファイルの非第１ページ・ストリーム・データを記憶する工程と、
前記ＰＤＦファイルの前記非第１ページ・ストリーム・データを解釈する工程と、
を含み、
前記ＰＤＦファイルの前記第１ページ・ストリーム・データを解釈する工程及び前記ＰＤＦファイルの前記非第１ページ・ストリーム・データを記憶する工程は、並行して行われる方法。
【請求項８】
請求項７に記載の方法であって、
前記ＰＤＦファイルの前記第１ページ・ストリーム・データを記憶する工程は、前記ＰＤＦファイルの前記第１ページ・ストリーム・データをランダム・アクセス・メモリ（ＲＡＭ）内に記憶し、前記ＲＡＭが満杯又は前記ＲＡＭが利用できない場合、前記ＰＤＦファイルの前記第１ページ・ストリーム・データは他のシステム・メモリに内に記憶される方法。
【請求項９】
請求項７に記載の方法であって、
前記ＰＤＦファイルの前記第１ページ・ストリーム・データを解釈する工程は、リニアライゼーション・パラメータ・ディクショナリ内の情報からデータを直接解釈する。
【請求項１０】
請求項５乃至９のいずれかに記載の方法であって、
前記ＰＤＦファイルをリニアライズドとして処理している際に処理エラーがないかモニタリングする工程と、
前記処理エラーが起きた場合に、前記ＰＤＦファイルのファイル・サイズと前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズとを比較する工程と、
前記ＰＤＦファイルの前記ファイル・サイズが前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと等しい場合、エラー・メッセージを送信する工程と、
前記ＰＤＦファイルの前記ファイル・サイズと前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズとが等しくなく、所定閾値限界を超えている場合、前記エラー・メッセージを送信することを中止し、前記リニアライズド処理を終了し、前記ＰＤＦファイルを非リニアライズドとして再処理する工程と、
を備える方法。
【請求項１１】
請求項１乃至１０のいずれかに記載の方法であって、
エラーを検出する工程を備え、
ストリーム・ストレージが完了する前にエラーが記録される場合、エラー・ページ印刷及びストリーム・ストレージの残りの消費に対処するために２つの分離したタスク・スレッドが使用される方法。
【請求項１２】
請求項１乃至１１のいずれかに記載の方法であって、
前記プリンタ・ドライバを介して前記ＰＤＦファイルが印刷のため送信される際、前記ＰＤＦファイルがリニアライズされているか前記プリンタ・ドライバによって判定する工程と、
前記ＰＤＦファイルが非リニアライズドの場合、前記プリンタ・ドライバによって前記ＰＤＦファイルをリニアライズする工程と、
を備える方法。
【請求項１３】
請求項１２に記載の方法であって、
プリンタ・コマンド情報を前記ＰＤＦファイルに前記プリンタ・ドライバによって追加する工程と、
前記プリンタ・コマンド情報を前記プリンタ・ドライバによって前記プリンタ・ファームウェアに送信する工程と、
を備える方法。
【請求項１４】
請求項１３に記載の方法であって、
前記プリンタ・コマンド情報は、ファイル・サイズ・データ及びリニアライゼーション・データを含む方法。
【請求項１５】
請求項１乃至１４のいずれかに記載の方法であって、
前記ＰＤＦファイルをＰＤＦアプリケーション内で開く工程と、
前記ＰＤＦアプリケーションがリニアライゼーション・モジュールを有する場合、前記ＰＤＦファイルをリニアライズドＰＤＦファイルとして保存する工程と、
を備える方法。
【請求項１６】
リニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイルを印刷用に処理する方法であって、
プリンタ・ドライバを介して前記ＰＤＦファイルが印刷のために送信された場合、前記ＰＤＦファイルがリニアライズされているか否かを前記プリンタ・ドライバによって判定する工程と、
前記ＰＤＦファイルが非リニアライズドの場合、前記ＰＤＦファイルを前記プリンタ・ドライバによってリニアライズする工程と、
プリンタ・コマンド情報を前記プリンタ・ドライバによって前記ＰＤＦファイルに追加する工程と、
前記プリンタ・コマンド情報を前記プリンタ・ドライバによってプリンタ・ファームウェアに送信する工程と、
前記ＰＤＦファイルがリニアライズされていることを前記プリンタ・ドライバが検出しているか否かをプリンタ・ファームウェアによって判定する工程と、
前記ＰＤＦファイルがリニアライズされていることを前記プリンタ・ドライバが検出していると前記プリンタ・ファームウェアが判定している場合、前記プリンタ・ファームウェアによって前記ＰＤＦファイルのストリーム・データを保存する工程と、
前記ＰＤＦファイルがリニアライズされていることが前記プリンタ・ドライバによって未確認の場合、前記ＰＤＦファイルがリニアライズされているか否かを前記プリンタ・ファームウェアによって判定する工程と、
前記プリンタ・ファームウェアによってリニアライゼーション・エラーを特定する工程と、
ストリーム・データを保存及び解釈している間に、前記プリンタ・ファームウェアによって印刷エラーを並行で特定及び処理する工程と、
を備える方法。
【請求項１７】
請求項１６に記載の方法であって、
前記プリンタ・ファームウェアによってリニアライゼーション・エラーを特定する工程は、
前記ＰＤＦファイルのファイル・サイズを前記ＰＤＦファイルのリニアライズド特定ファイル・サイズと比較する工程と、
前記ＰＤＦファイルの前記ファイル・サイズが前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと等しい場合、エラー・メッセージを送信する工程と、
前記ＰＤＦファイルの前記ファイル・サイズと前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズとが等しくなく、所定閾値限界を超えている場合、前記エラー・メッセージを送信することを中止し、前記リニアライズド処理を終了し、前記ＰＤＦファイルを非リニアライズドとして再処理する工程と、
を含む方法。
【請求項１８】
請求項１７に記載の方法であって、
ストリーム・データを保存及び解釈している間に、前記プリンタ・ファームウェアによって印刷エラーを並行で特定及び処理する工程は、ストリーム・ストレージが完了する前にエラーが記録される場合、エラー・ページ印刷及びストリーム・ストレージの残りの消費に対処するための２つの分離したタスク・スレッドを処理する工程を含む方法。
【請求項１９】
リニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイルを印刷用に処理するシステムであって、
前記ＰＤＦファイルがプリンタ・ドライバを介して印刷のために送信される際に前記ＰＤＦファイルを受信し、前記ＰＤＦファイルがリニアライズされているか否かを判定し、前記ＰＤＦファイルが非リニアライズドの場合、前記ＰＤＦファイルをリニアライズし、前記ＰＤＦファイルをリニアライズする際、プリンタ・コマンド情報を前記ＰＤＦファイルに追加する、プリンタ・ドライバ・モジュールと、
前記ＰＤＦファイルがリニアライズされていると前記プリンタ・ドライバが検出しているか否かを判定し、前記プリンタ・ドライバによって前記ＰＤＦファイルがリニアライズされていることが未確認の場合、前記ＰＤＦファイルをリニアライズし、前記ＰＤＦファイルのリニアライズド特定ファイル・サイズと前記ＰＤＦファイルの第１ページ・ファイル・サイズとの間のサイズ差が閾値サイズよりも大きい場合、前記ＰＤＦファイルをリニアライズドとして処理し、前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと前記ＰＤＦファイルの前記第１ページ・ファイル・サイズとの間のサイズ差が閾値サイズ未満の場合、前記ＰＤＦファイルを非リニアライズドとして処理し、受信される前記ＰＤＦファイルの第１部分でリニアライズド・キー文字列が未確認の場合、前記ＰＤＦファイルを非リニアライズドとして処理する、プリンタ・ファームウェア・モジュールとを備え、
前記プリンタ・ファームウェアは、リニアライゼーション・エラーの真偽を特定し、ストリーム・データを保存及び解釈している間に並行で、印刷エラーを特定し処理するシステム。
【請求項２０】
請求項１９に記載のシステムであって、
前記プリンタ・ファームウェア・モジュールに記憶され、前記ＰＤＦファイルをリニアライズドとして処理する場合、処理エラーをモニタリングし、処理エラーが起こった場合に前記ＰＤＦファイルのファイル・サイズを前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと比較し、前記ＰＤＦファイルの前記ファイル・サイズが前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと等しい場合、エラー・メッセージを送信し、前記ＰＤＦファイルの前記ファイル・サイズと前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズとが等しくない場合、前記ＰＤＦファイルを非リニアライズドとして処理する、エラー検出モジュールを備えるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、一般に印刷デバイスに関する。より具体的には、非リニアライズド及びリニアライズドＰＤＦ形式を含むすべてのＰＤＦ形式を、指定される印刷速度で解釈及び印刷するよう構成されるＰＤＦ画像形成システムで、リニアライズド及び非リニアライズド両方のＰＤＦ処理用のファイルの受信タイミング中にエラーが発生した場合のエラー処理性能を改善し、ＰＤＦファイルの線形処理中に発生し得る誤ったエラー・ページの印刷を回避する、エラー対処機構を有するＰＤＦ画像形成システムに関する。
【背景技術】
【０００２】
ポータブル・ドキュメント・フォーマット（ＰＤＦ）は、ソフトウェア、ハードウェア、又はオペレーティング・システムから独立している原稿を提示及び交換するために使用されるファイル形式である。ＰＤＦファイルに変換又はＰＤＦファイルとして保存される原稿は、一般的に特定のＰＤＦ規格として保存されるオプションを有している。選択されるＰＤＦ規格は、一般的にＰＤＦ原稿が作成された目的によって判定される。
【０００３】
ＰＤＦファイルを印刷する場合、ユーザは、ネットワーク・コマンド（例えば、ＬＰＲ）又はＵＳＢ印刷を使用して、プリンタ・ドライバからＰＤＦファイル・データを送信してもよい。プリンタ・ファームウェアは、ＰＤＦ  １．２、１．５、１．７等のすべての種類のＰＤＦ形式も他のＰＤＦ形式タイプも取り扱う必要があってもよい。簡潔には、ＰＤＦファイルは、２つのタイプのレイアウトを有すると定義されてもよい。非リニアライズドとリニアライズドである。
【０００４】
非リニアライズドＰＤＦファイルは、リニアライズドＰＤＦファイルよりも消費するディスクスペースは小さくてもよいが、原稿のページを集約するために必要なデータ部分が、ＰＤＦファイル中に散在してもよいため、リニアライズドＰＤＦファイルよりもアクセスに時間がかかかることがある。このように、非リニアライズドＰＤＦファイルを印刷することは、重要な解釈情報がファイルの最後に位置してもよいため、すべてのファイル・データが受信されるまでプリンタを待機させることが必要な場合がある。
【０００５】
リニアライズドＰＤＦファイル（『最適化』又は『ウェブ最適化』ＰＤＦファイルとも呼ばれる）は、線形（ページ順序のような）でディスクに書き込まれている。そのため、ファイル全体がダウンロードされるまで待機せずに、ウェブ・ブラウザ・プラグインで読まれることを可能にする方法で構成されてもよい。リニアライズドＰＤＦファイルは、ファイルの最初にリニアライゼーション・パラメータ・ディクショナリを含み、合計ファイル・サイズ（ＬＳｉｚｅ）や第１ページのサイズ（１ｓｔＰｇＳｉｚｅ）等のリニアライゼーション情報及び他のリニアライゼーション情報を特定してもよい。リニアライズドＰＤＦファイルにおいて、解釈情報及び第１ページ・データの両方ともファイルの最初に置かれる。このように、プリンタ・ファームウェアは、ページ・データ全体を受信するまで待機する必要なしに、リニアライズドＰＤＦファイルの第１ページ・データの解釈及び印刷を開始してもよい。このように、リニアライズドＰＤＦファイルは、一般的に非リニアライズドＰＤＦファイルよりも優れた印刷性能を有すると期待される。
【０００６】
非リニアライズドＰＤＦファイルをリニアライズドＰＤＦファイルに変換することは不可能ではない。しかしながら、プリンタ・システムのメモリ構成及び印刷速度の制限に起因して、プリンタ・ファームウェアにリニアライズドＰＤＦコンバータを追加することは費用がかかり、プリンタ速度も遅くなるかもしれない。さらに、リニアライズドＰＤＦファイルとは反対に非リニアライズドＰＤＦファイルとしてＰＤＦファイルを印刷することがより望ましいかもしれない状況もあるため、プリンタ・ファームウェア内に両方の形式をサポートすることが必要となる。
【０００７】
そのため、上記を克服するシステム及び方法を提供することが望まれるだろう。本システム及び方法は、非リニアライズド及びリニアライズドＰＤＦ形式を含むすべてのＰＤＦ形式を解釈及び印刷できる。本システム及び方法は、異なるＰＤＦ印刷フローのパイプラインベース内の異なる装置内でリニアライズドＰＤＦ形式検出及び変換機構を提供する。本システム及び方法は、ストリーム・データ・ストレージ内にエラー対処機構を提供して、エラー対処性能とＰＤＦファイルの解釈を向上させ、誤ったエラー・ページの印刷を回避する。
【発明の概要】
【０００８】
一実施形態によると、リニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイルを印刷用に処理する方法が開示されている。本方法は、前記ＰＤＦファイルがリニアライズされていることをプリンタ・ドライバが検出したか否かプリンタ・ファームウェアによって判定する工程と、前記ＰＤＦファイルがリニアライズされていることを前記プリンタ・ドライバが検出したと前記プリンタ・ファームウェアが判定した場合に、前記ＰＤＦファイルのストリーム・データを前記プリンタ・ファームウェアによって保存及び処理する工程と、前記ＰＤＦファイルがリニアライズされていることが前記プリンタ・ドライバによって未確認の場合、前記ＰＤＦファイルがリニアライズされているか否かを前記プリンタ・ファームウェアによって判定する工程とを含む。
【０００９】
一実施形態によると、リニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイルを印刷用に処理する方法が開示されている。本方法は、前記ＰＤＦファイルのファイル・サイズをプリンタ・ドライバによって取得する工程と、前記プリンタ・ドライバを介して前記ＰＤＦファイルが印刷のために送信された場合、前記ＰＤＦファイルがリニアライズされているか否かを前記プリンタ・ドライバによって判定する工程と、前記ＰＤＦファイルが非リニアライズドの場合、前記ＰＤＦファイルを前記プリンタ・ドライバによってリニアライズする工程と、プリンタ・コマンド情報を前記プリンタ・ドライバによって前記ＰＤＦファイルに追加する工程と、前記プリンタ・コマンド情報を前記プリンタ・ドライバによってプリンタ・ファームウェアに送信する工程と、前記ＰＤＦファイルがリニアライズされていることを前記プリンタ・ドライバが検出しているか否かをプリンタ・ファームウェアによって判定する工程と、前記ＰＤＦファイルがリニアライズされていることを前記プリンタ・ドライバが検出していると前記プリンタ・ファームウェアが判定している場合、前記プリンタ・ファームウェアによって前記ＰＤＦファイルのストリーム・データを保存する工程と、前記ＰＤＦファイルがリニアライズされていることが前記プリンタ・ドライバによって未確認の場合、前記ＰＤＦファイルがリニアライズされているか否かを前記プリンタ・ファームウェアによって判定する工程と、前記プリンタ・ファームウェアによってリニアライゼーション・エラーを特定する工程と、並びにストリーム・データを保存及び解釈している間に、前記プリンタ・ファームウェアによって印刷エラーを並行で特定及び処理する工程とを含む。
【００１０】
一実施形態によると、リニアライズド及び非リニアライズド・ポータブル・ドキュメント・フォーマット（ＰＤＦ）ファイルを印刷用に処理するシステムが開示されている。本システムは、プリンタ・ドライバとプリンタ・ファームウェア・モジュールとを備える。前記プリンタ・ドライバは、前記ＰＤＦファイルが前記プリンタ・ドライバを介して印刷のために送信される際に前記ＰＤＦファイルを受信し、前記ＰＤＦファイルがリニアライズされているか否かを判定し、前記ＰＤＦファイルが非リニアライズドの場合、前記ＰＤＦファイルをリニアライズし、前記ＰＤＦファイルをリニアライズする場合、プリンタ・コマンド情報を前記ＰＤＦファイルに追加する。前記プリンタ・ファームウェア・モジュールは、前記ＰＤＦファイルがリニアライズされていると前記プリンタ・ドライバが検出しているか否かを判定し、前記ＰＤＦファイルがリニアライズされていることが前記プリンタ・ドライバによって未確認の場合、前記ＰＤＦファイルをリニアライズし、前記ＰＤＦファイルのリニアライズド特定ファイル・サイズと前記ＰＤＦファイルの第１ページ・ファイル・サイズとの間のサイズ差が閾値サイズよりも大きい場合、前記ＰＤＦファイルをリニアライズドとして処理し、前記ＰＤＦファイルの前記リニアライズド特定ファイル・サイズと前記ＰＤＦファイルの前記第１ページ・ファイル・サイズとの間のサイズ差が閾値サイズ未満の場合、前記ＰＤＦファイルを非リニアライズドとして処理し、受信される前記ＰＤＦファイルの第１部分でリニアライズド・キー文字列が未確認の場合、前記ＰＤＦファイルを非リニアライズドとして処理する。前記プリンタ・ファームウェアは、リニアライゼーション・エラーの真偽を特定し、ストリーム・データを保存及び解釈している間に並行で、印刷エラーを特定し処理する。
【図面の簡単な説明】
【００１１】
本願は、以下の図面により、さらに詳細なものとなる。これらの図は、本発明の適用範囲の制限を意図するものではなく、むしろ、本発明のある属性を例示しているものである。
【図１】本願の一態様に係るリニアライズド及び非リニアライズドＰＤＦファイルを印刷するシステムの一例の図である。
【図２】本願の一態様による図１に描写される例示のコンピューティング・デバイスを示す簡略化された構成図である。
【図３】本願の一態様に係る図１に描写される例示の画像形成装置を示す簡略化された構成図である。
【図４】本願の一態様に係るリニアライズド及び非リニアライズドＰＤＦファイルの印刷方法を描写するフローチャートの実施形態の一例である。
【図５】本願の一態様に係る図１のシステム内で使用されるアプリケーション・ツールの操作を描写するフローチャートの実施形態の一例である。
【図６】本願の一態様に係る図１のシステム内で使用されるプリンタ・ドライバの操作を描写するフローチャートの実施形態の一例である。
【図７】本願の一態様に係る図１のシステム内で使用されるプリンタ・ファームウェアの操作を描写するフローチャートの実施形態の一例である。
【図８】本願の一態様に係る図７のプリンタ・ファームウェア内で使用されるリニアライズド検出部の操作を描写するフローチャートの実施形態の一例である。
【図９】本願の一態様に係る図７のプリンタ・ファームウェアによるＰＤＦファイルの非リニアライズド処理を描写するフローチャートの実施形態の一例である。
【図１０】本願の一態様に係る図７のプリンタ・ファームウェアによるＰＤＦファイルのリニアライズド処理を描写するフローチャートの実施形態の一例である。
【図１１】本願の一態様に係る図７のプリンタ・ファームウェア内で使用されるエラー対処機構の操作を描写するフローチャートの実施形態の一例である。
【図１２Ａ】本願の一態様に係るプリンタ・ファームウェアによるエラー・ページ印刷を描写する先行技術のフローチャートである。
【図１２Ｂ】本願の一態様に係る図７のプリンタ・ファームウェアによるエラー・ページ印刷を描写するフローチャートの実施形態の一例である。
【発明を実施するための形態】
【００１２】
添付の図面に関連して以下に明記される説明は、本開示の現在の好適な実施形態の説明を意図し、当該開示を構成及び／又は利用できる唯一の形態を表す意図はない。本説明は、本開示を構成及び操作するステップの機能及び順序を例示の実施形態を交えて明記する。しかしながら、同一又は同等の機能及び順序は、当該開示の主旨及び適用範囲内に包括されることを意図する異なる実施形態によって達成できることを理解されたい。
【００１３】
一例のシステム及び方法の実施形態は、非リニアライズド及びリニアライズドＰＤＦ形式を含むすべてのＰＤＦ形式を解釈及び印刷するように構成されるＰＤＦ画像形成システム及び方法に関する。一例のシステム及び方法は、印刷パイプライン内の異なる装置にリニアライズドＰＤＦ形式検出及び変換機構を提供する。検出及び変換機構の使用は、ＰＤＦ印刷フローに依存する。プリンタ・ファームウェア内でのリニアライゼーション検出は、ストリーム・データを受信し、ＰＤＦファイルが保存された後、待機する必要がない場合に、オンザフライで起こる。これにより、最適な方法で決定することができる。リニアライズドＰＤＦファイルに関して、一例のシステム及び方法は、合計ファイル・サイズと第１ページサイズ（１ｓｔＰｇＳｉｚｅ）との間のサイズ差を照合する。サイズ差が所定値を超えると検出された場合、リニアライズド処理は、後のページに費やされるファイル格納時間を保存するために使用されてもよい。そうでない場合は、非リニアライズド処理が使用されてもよい。リニアライズドＰＤＦ処理において、高速印刷のために２つの処理段階を導入して、並行処理を模索してもよい。リニアライズド段階１は、すべてのデータが受信されるまで第１ページの印刷を待機する必要がないように、ＲＡＭに第１ページ・データを保存すること、及び第１ページ・データを解釈することを含んでもよい。リニアライズド段階２は、後のページ・データを保存すること、及び解釈することを含んでもよい。結果的に、第１ページの印刷速度を最適化し、ＰＤＦ原稿の全体の印刷速度も同様に最適化してもよい。一例のシステム及び方法は、誤ったエラー・ページの印刷を回避できるＰＤＦファイルの解釈のためのエラー対処機構を提供してもよい。第１ページの解釈中の未確認のファイル・サイズによって引き起こされるリニアライズされた具体的なエラーは検出されてもよく、エラー・ページの印刷を回避するため、非リニアライズド・インタープリタを使用してもよい。
【００１４】
図１を参照すると、システム１０が示される。システム１０は、非リニアライズド及びリニアライズドＰＤＦファイルを含むすべてのＰＤＦ形式を最適な印刷速度で解釈及び印刷するよう構成されてもよい。システム１０は、異なるＰＤＦ印刷フローのパイプラインベース内の異なる装置内でリニアライズドＰＤＦ形式検出及び変換機構を提供する。システム１０は、ＰＤＦファイルのリニアライゼーション処理中に起こるかもしれない誤ったエラー・ページの印刷を回避するエラー対処機構を有してもよい。システム１０の構成要素は、有線又は無線接続を通して接続されてもよい。
【００１５】
システム１０は画像形成装置１４を有してもよい。画像形成装置１４は、印刷能力を有する任意のタイプの装置であってもよい。例えば、画像形成装置１４は、プリンタ、複写機、ファクス、スキャナ並びに複写機、ファクシミリ装置、及びプリンタの１つ以上の機能を含む多機能周辺装置、並びに／又は他のタイプのレンダリング装置であってもよい。画像形成装置１４は、後述するように印刷ジョブを出力するために使用されてもよい。
【００１６】
画像形成装置１４は印刷サーバ１６に接続されてもよい。印刷サーバ１６は、ネットワーク２２を通して画像形成装置１４を１つ以上のコンピューティング・デバイス１８に接続するために使用されてもよい。ネットワーク２２はローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、無線ローカル・エリア・ネットワーク（ＷＬＡＮ）及び／又は公衆網であってもよい。印刷サーバ１６は、コンピューティング・デバイス１８から印刷ジョブを受け入れてもよく、適切な画像形成装置１４に印刷ジョブを送信してもよい。画像形成装置１４が印刷できるよりも早く印刷ジョブが到着してもよいため、印刷サーバ１６は、ジョブをローカルで並べてもよい。代替的又は追加的に、コンピューティング・デバイス１８は画像形成装置１４に直接的に接続されてもよい。
【００１７】
個人１２は１つ以上のコンピューティング・デバイス１８を使用して、画像形成装置１４に印刷ジョブを送信してもよい。コンピューティング・デバイス１８は、デスクトップ・コンピュータ、ハンドヘルド又はラップトップ装置、タブレット、携帯電話装置、サーバ・コンピュータ・システム、マルチプロセッサ・システム、マイクロプロセッサベースのシステム、ネットワーク・パソコン、及び上記のシステム又は装置いずれかを含む分散型のクラウド・コンピューティング環境等のクライアント・コンピュータ・システム等であってよい。コンピューティング・デバイス１８は、後述のように、コンピュータ・システムによって実行される、プログラム・モジュール等のコンピュータ・システムが実行可能な指示の一般的な文脈で説明されてもよい。図１に示される実施形態において、コンピューティング・デバイス１８はデスクトップ／ラップトップ・コンピューティング・システム１８Ａ（パーソナル・コンピューティング・システムとも呼ばれる）、タブレット装置１８Ｂ、及び携帯電話装置１８Ｃとして見なされてもよい。しかしながら、このことは、上記のいかなるコンピューティング・デバイス１８でも使用してよいため、限定ととらえるべきではない。
【００１８】
コンピューティング・デバイス１８は、オペレーティング・システムを搭載してもよい。コンピューティング・デバイス１８のオペレーティング・システムは、コンピューティング・デバイス１８のハードウェア及びソフトウェア資産を管理してもよいし、コンピューティング・デバイス１８で動作するコンピュータ・プログラム向けの一般的サービスを提供してもよい。コンピューティング・デバイス１８は、線形変換モジュール２０（リニアライズドＰＤＦコンバータとも呼ばれる）を搭載してもよい。線形変換モジュール２０は、下に説明するように、非線形ＰＤＦファイルを線形ＰＤＦファイルに変換してもよい。
【００１９】
図２を参照すると、本明細書中に開示のシステム及び方法に機能性を提供する機械的要素に関して、より詳細にコンピューティング・デバイス１８が説明される。コンピューティング・デバイス１８の構成要素には、１つ以上のプロセッサ又は処理装置３０、システム・メモリ３２、及びシステム・メモリ３２からプロセッサ３０を含む様々なシステム構成要素を接続するシステム・バス３４が含まれてもよいが、これらに限らない。コンピューティング・デバイス１８は、典型的に様々なコンピュータ・システム読み取り可能媒体を含んでもよい。そのような媒体は、コンピューティング・デバイス１８によってアクセス可能な任意の利用可能な媒体から選択されてもよく、非一時的、揮発性及び不揮発性媒体、取り外し可能及び取り外し不能媒体が含まれる。システム・メモリ３２は、ランダム・アクセス・メモリ（ＲＡＭ）３６及び／又はキャッシュ・メモリ３８等の、揮発性メモリの形態の１つ以上のパーソナル・コンピューティング・システム読み取り可能媒体を含むことができる。一例として、典型的に『ハード・ドライブ』と呼ばれる取り外し不能の不揮発性磁気媒体装置からの読み出し及び書き込みのためにストレージ・システム４０が提供されてもよい。
【００２０】
システム・メモリ３２は、本発明の実施形態の機能を実施するように構成されてもよいプログラム・モジュール４４のセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品／ユーティリティ４２を含んでもよい。プログラム・モジュール４４は、オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを含んでもよいが、これらに限らない。各オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの組み合わせは、ネットワーク環境の実装を含んでもよい。プログラム・モジュール４４は、本明細書中に説明されている本発明の実施形態の機能及び／又は方法体系を一般的に実施する。例えば、プログラム・モジュール４４は線形変換モジュール２０を有してもよい。一実施形態によると、線形変換モジュール２０は、コンピューティング・デバイス１８のシステム・メモリ３２に記憶されるプリンタ・ドライバの一部を形成してもよい。
【００２１】
コンピューティング・デバイス１８は、キーボード、位置指示装置、表示部４８、又は任意の類似装置（例えば、ネットワーク・カード、モデム等）等の１つ以上の外部装置４６と通信を行ってもよい。表示部４８は発光ダイオード（ＬＥＤ）表示、液晶ディスプレイ（ＬＣＤ）表示、陰極線管（ＣＲＴ）表示及び類似の表示装置であってもよい。外部装置４６は、コンピューティング・デバイス１８が画像形成装置１４（図１）と通信を行うことを可能にできてもよい。そのような通信は、入出力（Ｉ／Ｏ）インターフェース５０を介して発生してもよい。代替的に、パーソナル・コンピューティング・システム１８Ａが、ネットワーク・アダプタ５２を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、及び／又は公衆網等の１つ以上のネットワーク２２（図１）と通信を行ってもよい。コンピューティング・デバイス１８は、有線又は無線接続を介して１つ以上のネットワークに接続してもよい。描写の通り、ネットワーク・アダプタ５２は、コンピューティング・デバイス１８の他の構成要素とシステム・バス３４を介して通信を行ってもよい。
【００２２】
当業者には理解されるように、開示の発明の態様はシステム、方法若しくはプロセス、又はコンピュータ・プログラム製品として、具現化されてもよい。従って、開示の発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等）、又は本明細書中ですべて概して『回路』、『モジュール』、又は『システム』と呼ばれてもよいソフトウェア及びハードウェア態様を組み合わせた実施形態の形態を呈してもよい。さらに、開示の発明の態様は、コンピュータ読み込み可能なプログラム・コードをその中に具現化した１つ以上のコンピュータ読み込み可能な媒体を具現化したコンピュータ・プログラム製品の形態を呈してもよい。
【００２３】
１つ以上のコンピュータ読み込み可能な媒体の任意の組み合わせ（例えば、ストレージ・システム４０）が利用されてもよい。当該開示と関連して、コンピュータ読み込み可能な記憶媒体は、指示実行システム、器具、又は装置によって又は関連して使用されるプログラム（例えばプログラム製品４２）を含む又は記憶できる任意の有形的又は非一時的な媒体でもよい。コンピュータ読み込み可能な記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、又は半導体システム、器具、若しくは装置、又は上述の適切な任意の組み合わせであってもよいが、これらに限らない。
【００２４】
図３を参照すると、本明細書中に開示されるシステム及び方法に機能性を提供する機械的要素に関して、より詳細に画像形成装置１４が説明される。画像形成装置１４の構成要素には、１つ以上のプロセッサ又は処理装置６０、システム・メモリ６２、及びシステム・メモリ６２から処理部６０を含む様々なシステム構成要素を接続してもよいシステム・バス６３が含まれてもよいが、これらに限らない。画像形成装置１４は、典型的に様々なコンピュータ・システム読み取り可能媒体を含んでもよい。そのような媒体は、画像形成装置１４によってアクセス可能な任意の利用可能な媒体から選択されることもでき、非一時的、揮発性及び不揮発性媒体、取り外し可能及び取り外し不能媒体が含まれる。システム・メモリ６２は、ランダム・アクセス・メモリ（ＲＡＭ）及び／又はキャッシュ・メモリ等の、揮発性メモリの形態の１つ以上の画像形成装置読み取り可能媒体を含むこともできる。ほんの一例として、典型的に『ハード・ドライブ』と呼ばれる取り外し不能の不揮発性磁気媒体装置からの読み出し及び書き込みのためにシステム・メモリ６２が提供されてもよい。
【００２５】
システム・メモリ６２は、本発明の実施形態の機能を実施するように構成されてもよいプログラム・モジュール６６のセット（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品／ユーティリティ６４を含んでもよい。プログラム・モジュール６６は、オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データを含んでもよいが、これらに限らない。各オペレーティング・システム、１つ以上のアプリケーション・プログラム、他のプログラム・モジュール、及びプログラム・データ、又はそれらの組み合わせは、ネットワーク環境の実装を含んでもよい。プログラム・モジュール６６は、ページ・コンバータ、ラスタライザ、圧縮コード、ページ印刷スケジューラ、印刷エンジン・マネージャ、及び類似の印刷アプリケーション（すなわち、プリンタ・ファームウェア）等の手順を含んでもよい。プログラム・モジュール６６は、本明細書中に説明されている本発明の実施形態の機能及び／又は方法体系を一般的に実施する。
【００２６】
画像形成装置１４は、１つ以上の通信モジュール６８を有してもよい。通信モジュール６８は、画像形成装置１４が、ローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、無線ローカル・エリア・ネットワーク（ＷＬＡＮ）及び／又は公衆網等の１つ以上のネットワーク（すなわち、図１に示されるネットワーク２２）と通信を行うことを許可してもよい。一実施形態によると、通信モジュール６８は、ネットワーク通信インターフェース７０Ｂに接続されるネットワーク通信処理部７０Ａを含んでもよい。ネットワーク通信処理部７０Ａ及びネットワーク通信インターフェース７０Ｂは画像形成装置１４が１つ以上のネットワーク２２と通信を行うことを許可してもよい。これらネットワーク２２はローカル・エリア・ネットワーク（ＬＡＮ）、一般的な広域ネットワーク（ＷＡＮ）、無線ローカル・エリア・ネットワーク、公衆網、セルラー・ネットワークであってもよいし、他のタイプのネットワークであってもよい。通信モジュール６８は、近距離無線通信インターフェース７２Ｂに接続される近距離無線通信処理部７２Ａを含んでもよい。近距離無線通信処理部７２Ａ及び近距離無線通信インターフェース７２Ｂは、画像形成装置１４がＢＬＵＥＴＯＯＴＨ（登録商標）、赤外線又は類似の無線通信プロトコルを使用して、画像形成装置１４周辺に位置する他の電子装置と通信を行うことを許可してもよい。
【００２７】
画像形成装置１４は、操作パネル７４を含んでもよい。操作パネルは、人間の画像形成装置１４との相互作用を容易化するための表示部７６及び入力部７８を含んでもよい。表示部７６は、ＬＣＤ表示、ＬＥＤ表示、及び類似の表示タイプ等の任意の電子映像表示でもよい。入力部７８は、ユーザが操作パネル７４に情報を入力することを許可する、ボタン、キーボード、スイッチ、及び／又はダイヤル等の、任意の装置の組み合わせを含んでもよい。これに加えて、入力部７８は、タッチを感知でき、表示部７６との相互作用を可能にする、表示部７６に重ねられたタッチスクリーン・デジタイザを含んでもよい。
【００２８】
当業者には理解されるように、開示の発明の態様はシステム、方法若しくはプロセス、又はコンピュータ・プログラム製品として、具現化されてもよい。従って、開示の発明の態様は、全体的にハードウェアの実施形態、全体的にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、又は本明細書中ですべて概して『回路』、『モジュール』、又は『システム』と呼ばれてもよいソフトウェア及びハードウェア態様を組み合わせた実施形態の形態を呈してもよい。さらに、開示の発明の態様は、コンピュータ読み込み可能なプログラム・コードをその中に具現化した１つ以上のコンピュータ読み込み可能な媒体を具現化したコンピュータ・プログラム製品の形態を呈してもよい。
【００２９】
１つ以上のコンピュータ読み込み可能な媒体（例えば、システム・メモリ６２）の任意の組み合わせが利用されてもよい。当該開示と関連して、コンピュータ読み込み可能な記憶媒体は、指示実行システム、器具、又は装置によって又は関連して使用されるプログラム（例えばプログラム・モジュール６６）を含む又は記憶できる任意の有形的又は非一時的な媒体でもよい。コンピュータ読み込み可能な記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、又は半導体システム、器具、若しくは装置、又は上述の適切な任意の組み合わせであってもよいが、これらに限らない。
【００３０】
図１乃至１２Ｂを参照すると、実施形態の一例に従ったシステム１０の操作が説明される。図４に示されるように、システム１０の操作は、ＰＤＦファイルがいかに画像形成装置１４に送信されるかに基づいてもよい。システム１０の操作は２つの処理フローに分けられてもよい。フロー１は、ＰＤＦ原稿が、Ａｄｏｂｅ（商標）Ｒｅａｄｅｒ、Ａｄｏｂｅ（商標）Ｐｒｏ、Ｍｉｃｒｏｓｏｆｔ（商標）Ｏｆｆｉｃｅ等のアプリケーション・ツールで開かれ、プリンタ・ドライバを介して印刷のために送信される場合と定義してもよい。フロー２は、ＰＤＦ原稿が、ネットワーク又はＵＳＢ印刷を介して印刷ために直接的に送信される場合と定義してもよい。
【００３１】
フロー１において、１０１に示されるように、ＰＤＦアプリケーション・ツールはＰＤＦ原稿を開くために使用されてもよい。図５からわかるように、アプリケーション・ツールでＰＤＦファイルを開いた個人１２は、１０１Ａに示されるように、アプリケーション・ツールがリニアライズドＰＤＦコンバータを含んでいるか判定する必要があるかもしれない。Ａｃｒｏｂａｔ  Ｐｒｏ、Ｍｉｃｒｏｓｏｆｔ  Ｗｏｒｄ等のアプリケーション・ツールには、ファイル保存オプションを有するものがあってよく、これによって個人１２は、ＰＤＦファイルをリニアライズドＰＤＦファイル規格で保存することができる。このように、これらのアプリケーション・ツールは、個人１２が、アプリケーション・ツール内で非リニアライズドＰＤＦファイルをリニアライズドＰＤＦファイルに変換することを許可してもよい。アプリケーション・ツールがリニアライズドＰＤＦコンバータを有する場合、個人１２は、１０１Ｂに示されるように、ＰＤＦファイルをリニアライズドＰＤＦファイルとして保存して、ＰＤＦファイルをリニアライズするだろう。ＰＤＦファイルをリニアライズドＰＤＦファイルとして保存することは、画像形成装置１４がページ・データ全体を受信するまで待機する必要なく、ＰＤＦファイルの第１ページ・データの解釈及び印刷を開始できるため、ＰＤＦファイルの印刷性能を最適化できる。ＰＤＦファイルをアプリケーション・ツール内でリニアライズすることは、さらに、後の印刷パイプラインが使用するためのリニアライズ処理フローを許可できる。ところが、Ａｄｏｂｅ（商標）Ｒｅａｄｅｒ等のアプリケーション・ツールには、リニアライズドＰＤＦコンバータを提供しないものがあってもよい。このように、ＰＤＦファイルが非リニアライズドＰＤＦファイルである場合、ＰＤＦファイルは、１０１Ｃに示されるように、依然として非リニアライズドＰＤＦファイルのままかもしれない。
【００３２】
ＰＤＦファイルからのデータは、１０２（図４）に示されるように、コンピューティング・デバイス１８のプリンタ・ドライバに送信されてもよい。図６からわかるように、プリンタ・ドライバは、１０２Ａに示されるように、ＰＤＦファイルからデータを受信してもよい。プリンタ・ドライバは、１０２Ｂに示されるように、データを審査して、ＰＤＦファイルのサイズを照合してもよい。当該情報は、プリンタ・ドライバ及び下記に説明される画像形成装置１４（図１及び３）のシステム・メモリ６２（図３）に記憶されるファームウェアによって使用されてもよい。
【００３３】
ＰＤＦデータは、１０２Ｃに示されるように、プリンタ・ドライバのリニアライズドＰＤＦコンバータ２０（図１及び２）に送信されてもよい。プリンタ・ドライバのリニアライズドＰＤＦコンバータ２０は、１０２Ｄに示されるように、ＰＤＦの日付を審査して、ＰＤＦファイルがリニアライズド又は非リニアライズドかどうかを判定してもよい。ＰＤＦファイルが非リニアライズドＰＤＦファイルの場合、プリンタ・ドライバのリニアライズドＰＤＦコンバータ２０が、１０２Ｅに示されるように、ＰＤＦファイルをリニアライズしてもよい。
【００３４】
プリンタ・ドライバは、１０２Ｆに示されるように、印刷ジョブ言語（ＰＪＬ）コマンド・モジュールを有してもよい。ＰＪＬコマンド・モジュールはＰＪＬコマンドを生成するために使用されてもよい。例えば、ＰＪＬコマンド・モジュールは、ファイル・サイズ及びリニアライゼーション情報に対してＰＪＬコマンドを生成してもよい。一実施形態によると、プリンタ・ドライバのリニアライズドＰＤＦコンバータ２０がＰＤＦファイルをリニアライズする場合、ＰＪＬコマンド・モジュールは、画像形成装置１４内のプリンタ・ファームウェアに以下のＰＪＬコマンドを送信してもよい。
＠ＰＪＬ  ＳＥＴ  ＬＰＡＲＭ：ＰＤＦ  ＫＬＩＮＥＡＲＩＺＥＤＰＤＦ＝ＹＥＳ
＠ＰＪＬ  ＳＥＴ  ＬＰＡＲＭ：ＰＤＦ  ＫＦＩＬＥＳＩＺＥ＝ＰＤＦ  ＦＩＬＥ  ＳＩＺＥ
【００３５】
ＰＤＦファイルが線形ＰＤＦファイルの場合、ＰＤＦファイルを、１０２Ｅに示されるように、リニアライズドＰＤＦコンバータ２０を通さずにＰＪＬコマンド・モジュールに直接送信してもよい。ＰＪＬコマンドが生成された後、すでにリニアライズド済みのＰＤＦファイルは、１０３（図４）に示されるように、画像形成装置１４に送信されてもよい。一実施形態によると、ＰＪＬコマンド・モジュールは、画像形成装置１４内のプリンタ・ファームウェアに以下のＰＪＬコマンドを送信してもよい。
＠ＰＪＬ  ＳＥＴ  ＬＰＡＲＭ：ＰＤＦ  ＫＬＩＮＥＡＲＩＺＥＤＰＤＦ＝ＮＯ
＠ＰＪＬ  ＳＥＴ  ＬＰＡＲＭ：ＰＤＦ  ＫＦＩＬＥＳＩＺＥ＝ＰＤＦ  ＦＩＬＥ  ＳＩＺＥ
【００３６】
図４からわかるように、フロー２の印刷では、ＰＤＦファイルは、１０３に示されるように、画像形成装置１４に直接送信されてもよい。フロー２では、ＰＤＦ原稿がネットワーク又はＵＳＢ印刷を介して印刷のために直接送信されるので、フロー２では、アプリケーション・ツール又はプリンタ・ドライバを使用しない。このように、フロー２では、画像形成装置１４内のプリンタ・ファームウェアはすべての入力形式を取り扱う必要があってもよい。
【００３７】
プリンタ・ファームウェアは、フロー１及びフロー２の両方で使用されてもよい。図７に、１０３（図４）に示される画像形成装置１４のプリンタ・ファームウェアの操作を説明する。画像形成装置１４のプリンタ・ファームウェアは、３０１に示されるように、受信されたＰＤＦファイルのリニアライズド検出を実行してもよい。プリンタ・ファームウェアは、３０２に示されるように、ＰＤＦファイルがリニアライズされているか否かを判定してもよい。プリンタ・ファームウェアは、ＰＪＬコマンドが受信されたか確認するように照合してもよい。一実施形態によると、プリンタ・ファームウェアは、プリンタ・ドライバでリニアライゼーション照合が行われたか否かを調べるためにＰＪＬ  ＫＬＩＮＥＡＲＩＺＥＤＰＤＦ設定を照合してもよい。リニアライゼーション照合がプリンタ・ドライバで行われた場合、プリンタ・ファームウェアは、ＫＬＩＮＥＡＲＩＺＥＤＰＤＦ設定に基づき、ストリーム・データを保存し始めてもよく、そうでない場合は、プリンタ・ファームウェアは、３０１に示されるように、ＰＤＦファイルタイプを判定するリニアライゼーション検出を実行してもよい。
【００３８】
プリンタ・ファームウェアは、すべてのストリーム・データを画像形成装置１４に保存してからではなく、ストリーム・データの受信中にリニアライゼーションを検出し始めてもよい。これによって、画像形成装置１４が、第１ページの印刷を開始する速度を最適化することを許可してもよい。図８に示されるように、画像形成装置１４は、ストリーム・データを受信し始めてもよい。プリンタ・ファームウェアは、３０１Ｂに示されるように、画像形成装置１４が１０２４バイトのストリーム・データを受信したか否か判定してもよい。１０２４バイト未満のストリーム・データが受信された場合、画像形成装置１４はストリーム・データを受信し続けてよい。プリンタ・ファームウェアは、１０２４バイトのストリーム・バッファ（ＰＤＦ仕様ごとに、リニアライゼーション・パラメータ・ディクショナリは１０２４バイト内で配置される）を受信した後、リニアライズド検出を開始してもよい。リニアライズド検出は、３０１Ｃに示されるように、ストリーム・バッファを使用することで、及びリニアライゼーション・パラメータ・ディクショナリ内に含まれる“／Ｌｉｎｅａｒｉｚｅｄ”キーワードとパラメータ情報（すなわちリニアライズド・キー文字列）を検索するデータを審査することで、起こってもよい。リニアライズド・キー文字列が見つからない場合、３０１Ｄに示されるように、ＰＤＦファイルは非リニアライズドＰＤＦファイルである。文字列が見つかる場合、プリンタ・ファームウェアは、３０２Ｅに示されるように、リニアライゼーション・パラメータ・ディクショナリを試して解釈してもよい。プリンタ・ファームウェアは、３０２Ｆに示されるように、ＰＪＬ指定のファイル・サイズ（ＦｉｌｅＳｉｚｅ）がわかるか確認するためにリニアライズド・ディクショナリの解釈を試してもよい。ＦｉｌｅＳｉｚｅがわかる場合、プリンタ・ファームウェアは、３０２Ｇに示されるように、リニアライズド指定ファイル・サイズ（ＬＳｉｚｅ）をＦｉｌｅＳｉｚｅと比較してもよい。ＬＳｉｚｅがＦｉｌｅＳｉｚｅと等しい場合、ＰＤＦファイルは、３０２Ｈに示されるように、リニアライズドＰＤＦファイルと定義されてもよい。そうでない場合は、３０１Ｄに示されるように、ＰＤＦファイルは、非リニアライズドＰＤＦファイルと定義されてもよい。プリンタ・ドライバのない状況でＦｉｌｅＳｉｚｅが判定できない場合、ＰＤＦファイルは、それでも、３０２Ｈに示されるように、リニアライズドＰＤＦファイルとして定義されてもよい。
【００３９】
図７を再度参照し、ＰＤＦファイルが非リニアライズドＰＤＦファイルと定義された場合、非リニアライズド処理は、３０５に示されるように、ＰＤＦファイルに施されてもよい。図９からわかるように、ＰＤＦファイルの非リニアライズド処理の場合、５０１に示されるように、ＰＤＦファイル全体が画像形成装置１４のシステム・メモリ６２に保存される。ＰＤＦファイルが一旦保存されると、５０２に示されるように、解釈されて、印刷データが生成される。
【００４０】
ＰＤＦファイルが、リニアライズドＰＤＦファイルとして定義されている場合、画像形成装置１４のファームウェアは、３０３に示されるように、リニアライゼーション・パラメータ・ディクショナリによって指定されるＬＳｉｚｅと１ｓｔＰｇＳｉｚｅとの間のサイズ差を照合してもよい。ＬＳｉｚｅと１ｓｔＰｇＳｉｚｅとの間のサイズ差が、所定の閾値サイズ（ＴｈｒｅｓｈｏｌｄＳｉｚｅ）よりも大きな場合、リニアライズド処理を、３０４に示されるように、ＰＤＦファイルに施してもよい。ＬＳｉｚｅと１ｓｔＰｇＳｉｚｅとの間のサイズ差が所定のＴｈｒｅｓｈｏｌｄＳｉｚｅよりも小さな場合、非リニアライズド処理を、３０５に示されるように、施してもよい。印刷時間の節約を最小限とするため、非リニアライズド処理は、サイズ差が所定閾値よりも小さくなってから施してもよく、下記に開示するリニアライズド処理に施される２段階の処理を行う必要はない。
【００４１】
リニアライズドと特定されたＰＤＦファイルには、図７の３０４に示されるように、リニアライズド処理を行ってもよい。３０４に関する図１０からわかるように、ストリーム・データは、４０１からわかるように、ストリーム・ストレージ・タスク・ジェネレータに送信されてもよい。ストリーム・ストレージ・タスク・ジェネレータは、リニアライズド処理を２段階に分割してもよい。段階１は、第１ページのストリーム・ストレージ及び解釈が含まれてもよい。段階２は、後のページのストレージと解釈が含まれてもよい。図１０からわかるように、段階１及び段階２は並行で処理されてもよい。これによって、すべてのデータが保存されるまで待機する必要がないため、第１ページの印刷速度が著しく向上できる。
【００４２】
一実施形態によると、段階１は、４０２に示されるように、第１ページのストリーム・ストレージを含んでもよい。第１ページのストリーム・データが、４０４に示されるように、処理されている間に、後のページのストリーム・ストレージを、４０３に示されるように、並行で行ってもよい。後のページ・データは、４０５に示されるように、その後、解釈されてもよい。
【００４３】
一実施形態によると、段階１の第１ページ・ストリーム・データは、システム・メモリ装置がハード・ドライブであっても、高速でＲＡＭメモリに保存されてもよい。これは、ＲＡＭにアクセスする方が、ハード・ドライブにアクセスするよりも速いかもしれないからである。しかしながら、段階１の第１ページ・ストリーム・データのサイズが使用可能なＲＡＭのサイズよりも大きな場合は、第１ページ・ストリーム・データはハード・ドライブ又は他のメモリ・ストレージ装置に保存されてもよい。ＲＡＭメモリ・バッファは、リニアライズド第１ページ・インタープリタによって直接使用されてもよく、ハード・ドライブの使用により必要とされる一時的メモリ・バッファを減らしてもよい。
【００４４】
４０４では、リニアライズド段階１インタープリタが、ＸＲＥＦテーブル等の解釈情報及びページ情報をリニアライゼーション・パラメータ・ディクショナリから直接利用してもよい。これは、５０２に示される非リニアライズド・インタープリタと比べて解釈速度が速くなってもよい。
【００４５】
ストリーム・データの保存中及び解釈中にエラーが生じた場合、エラー・ページは印刷され、メモリなし、フォントの欠陥等のエラー情報をもって個人１２に通知してもよい。しかしながら、リニアライゼーション処理に起因する誤ったエラーを生成してしまう特別な事態の場合もある。これは、リニアライゼーション・パラメータ・ディクショナリによって指定されたサイズが、実際のファイル・サイズに合致しない事態である。本願のプリンタ・ファームウェアは、３０６に示されるように、上記のエラー事態に対し、誤ったエラー・ページを印刷することなく、インタープリタ・エラー・ハンドラを提供してもよい。
【００４６】
図１１からわかるように、インタープリタ・エラー・ハンドラの操作が示される。インタープリタ・エラー・ハンドラは、６０１に見られるような、インタープリタ・エラーがあるか否かを判定する。インタープリタ・エラーがない場合、６０９に示されるように、エラー・メッセージは戻ってこない。インタープリタ・エラー・ハンドラがエラーを認識した場合、インタープリタ・エラー・ハンドラは、６０２に示されるように、リニアライズド段階１にエラーがあるか否かを判定する。リニアライズド段階１にエラーがない場合、６０８に示されるように、エラー・メッセージが戻ってくる。リニアライズド段階１エラーである場合、インタープリタ・エラー・ハンドラは、６０４に示されるように、ファイル・サイズ設定を判定する。ファイル・サイズがすでにわかっている場合、インタープリタ・エラー・ハンドラは、６０５に示されるように、ファイル・サイズがリニアライゼーション・パラメータ・ディクショナリの指定サイズであるＬＳｉｚｅと合致するか照合する。合致する場合、エラーは真のエラーで、６０８に示されるように、エラーが戻ってくる。そうでない場合は、誤ったリニアライズド・エラーである。この場合、エラー・ページの印刷は、６０６に示されるように、中止されてもよく、６０７に示されるように、誤ったリニアライズド・エラーの返信が報告されてもよい。ファイル・サイズが不明な場合、プリンタ・ファームウェアは、６０３に示されるように、ファイル・サイズを知るために、段階２でストリーム・データの保存が行われるまで待機してもよい。ＦｉｌｅＳｉｚｅがＬＳｉｚｅに合致する場合、６０８に示されるように、真のＰＤＦ解釈エラーが戻ってきてもよい。
【００４７】
図１２Ａを参照すると、現行では、エラーが検出された場合、７００に示されるように、ストリーム・データ・ストレージの完了後にエラー・ページが印刷されてもよい。しかしながら、図１２Ｂの８００に示されるように、ＰＤＦインタープリタ・タスク及びＰＤＦストリーム・ストレージ・タスクが異なるタスク・スレッドを使用するようにプリンタ・ファームウェアは構成されてもよい。ストリーム・ストレージ・データが完了する前にエラーが記録された場合、２つの分離したタスク・スレッドを使用してエラー・ページ印刷を対処し、同時に残りのストリーム・データを消費してもよい。このように、ストリーム・ストレージ及びエラー・ページ印刷は、並行して処理されてもよい。これは、ストリーム・データ・ストレージが完了した後のみエラー・ページが印刷できる先行技術とは反対に、よりタイムリーに行うことができるため、エラー・ジョブ印刷性能を向上できる。
【００４８】
上述の説明は、本発明の特定の実施形態の例示であり、その実践に対して制限する意図はない。以下の請求項は、そのすべての同意義のものを含め、本発明の適用範囲を明らかにする意図のものである。
【符号の説明】
【００４９】
１０  システム
１４  画像形成装置
１６  印刷サーバ
２２  ネットワーク
２０  リニアライズドＰＤＦコンバータ（線形変換モジュール）
１２  個人
１８Ａ  デスクトップ／ラップトップ・コンピューティング・システム  （パーソナル・コンピューティング・システム）
１８Ｂ  タブレット装置
１８Ｃ  携帯電話装置
【図１】
2018075826.tif 000003
【図２】
2018075826.tif 000004
【図３】
2018075826.tif 000005
【図４】
2018075826.tif 000006
【図５】
2018075826.tif 000007
【図６】
2018075826.tif 000008
【図７】
2018075826.tif 000009
【図８】
2018075826.tif 000010
【図９】
2018075826.tif 000011
【図１０】
2018075826.tif 000012
【図１１】
2018075826.tif 000013
【図１２Ａ】
2018075826.tif 000014
【図１２Ｂ】
2018075826.tif 000015
【外国語明細書】
System and Method for Processing Linearized and Non-Linearized Portable Document Format (Pdf) Files
FIELD
[0001]         The present application in general relates to printing devices, and more specifically, to a PDF image forming system configured to interpret and print all PDF formats including non-linearized and linearized PDF formats at a designated printing speed and which has an error handling mechanism to improve error processing performance when an error happens during file receiving timing both for linearized and non-linearized PDF processing and avoid printing false error page which may occur during linear processing of a PDF file.
BACKGROUND
[0002]         Portable Document Format (PDF) is a file format used to present and exchange documents independent of software, hardware, or operating system.  A document converted to or saved as a PDF file generally has the option of being saved as a specific PDF standard.  The PDF standard chosen is generally determined by the purpose for which the PDF document was created.
[0003]         When printing a PDF file, a user may send PDF file data from a printer driver, using a network command (such as LPR) or USB printing.  Printer firmware may need to handle all kinds of PDF formats such as PDF 1.2, 1.5, 1.7, as well as other PDF format types.  For simplicity, PDF files may be defined as having two types of layouts: non-linearized and linearized.
[0004]         Non-linearized PDF files may consume less disk space than linearized PDF files, though they may be slower to access because portions of the data required to assemble pages of the document may be scattered throughout the PDF file.  Thus, printing a non-linearized PDF file may require the printer to wait until all the file data has been received because the important interpreting information may be located at the end of file.
[0005]         Linearized PDF files (also called "optimized" or "web optimized" PDF files) may be constructed in a manner that enables them to be read in a Web browser plug-in without waiting for the entire file to download, since they are written to disk in a linear (as in page order) fashion.  Linearized PDF files may contain a Linearization Parameter Dictionary in the beginning of the file to specify linearization information such as total file size (LSize), 1st page size (1stPgSize) as well as other linearization information.  In the Linearized PDF file, both the interpreting information and the 1st page data are placed in the beginning of the file.  Thus, printer firmware may start interpreting and printing the 1st page data of the linearized PDF file without having to wait to receive the whole page data.  Thus, linearized PDF files generally are expected to have a better printing performance than non-linearized PDF files.
[0006]         It is possible to convert a non-linearized PDF file to a linearized PDF file.  However, due to the limitation of the printer system memory configuration and printing speed, adding a linearized PDF converter to the printer firmware may be costly and slow down the printer speed.  Further, it is necessary to support both formats in printer firmware as in some situations it may be more desirable to print the PDF file as a non-linearized PDF file as oppose to a linearized PDF file.
[0007]         Therefore, it would be desirable to provide a system and method that overcomes the above.  The system and method can interpret and print all PDF formats including non-linearized and linearized PDF formats.  The system and method provides a linearized PDF format detection and conversion mechanism in different devices in the pipeline base on different PDF printing flows.  The system and method provides an error handling mechanism in stream data storage to improve error handling performance and in interpreting PDF file to avoid printing false error page.
SUMMARY
[0008]         In accordance with one embodiment, a method of processing linearized and non-linearized Portable Document Format (PDF) files for printing is disclosed.  The method comprises: determining by printer firmware if a printer driver detected that the PDF file is linearized; saving and processing stream data of the PDF file by the printer firmware when the printer firmware determines the printer driver detected that the PDF file is linearized; and determining by the printer firmware if the PDF file is linearized when the PDF file is unidentified as being linearized by the printer driver.
[0009]         In accordance with one embodiment, a method of processing linearized and non-linearized Portable Document Format (PDF) files for printing is disclosed.  The method comprises: obtaining by a printer driver a file size of the PDF file; determining by the printer driver if the PDF file is linearized if the PDF file is sent to print via the printer driver; linearizing the PDF file by the printer driver when the PDF file is non-linearized; adding printer command information to the PDF file by the printer driver; sending the printer command information by the printer driver to printer firmware; determining by printer firmware if the printer driver detected that the PDF file is linearized; saving stream data of the PDF file by the printer firmware when the printer firmware determines the printer driver detected that the PDF file is linearized; determining by the printer firmware if the PDF file is linearized when the PDF file is unidentified as being linearized by the printer driver, identifying a linearization error by the printer firmware; and identifying and processing printing errors during saving and interpreting stream data by the printer firmware in a parallel manner.
[0010]         In accordance with one embodiment, a system for processing linearized and non-linearized Portable Document Format (PDF) files for printing is disclosed.  The system has a printer driver receiving the PDF file when the PDF file is sent to print via the printer driver, determining if the PDF file is linearized, linearizing the PDF file when the PDF file is non-linearized, and adding printer command information to the PDF file when linearizing the PDF file.  A printer firmware module determines if the printer driver detected that the PDF file is linearized, linearizes the PDF file when the PDF file is unidentified as being linearized by the printer driver, processes the PDF file as linearized when a size difference between a linearized specific file size of the PDF file and a first page file size of the PDF file is greater than a threshold size, processes the PDF file as non-linearized when the size difference between the linearized specific file size of the PDF file and the first page file size of the PDF file is less than a threshold size, and processes the PDF file as non-linearized when a linearized key string is unidentified in the first portion of the PDF file received, wherein the printer firmware identifies  real and false linearization error and identifies and processes printing errors in a parallel manner during saving and interpreting stream data.
BRIEF DESCRIPTION OF THE FIGURES
[0011]         The present application is further detailed with respect to the following drawings.  These figures are not intended to limit the scope of the present invention but rather illustrate certain attributes thereof.  
FIG. 1 is a diagram of an exemplary system for printing linearized and non-linearized PDF files according to one aspect of the present application;
FIG. 2 is a simplified block diagram showing an illustrative computing device depicted in FIG. 1 in accordance with one aspect of the present application; 
FIG. 3 is a simplified block diagram showing an illustrative image forming device depicted in FIG. 1 according to one aspect of the present application;
FIG. 4 is an exemplary embodiment of a flowchart depicting a method for printing linearized and non-linearized PDF files according to one aspect of the present application;
FIG. 5 is an exemplary embodiment of a flowchart depicting operation of an application tool used in the system of FIG. 1 according to one aspect of the present application;
FIG. 6 is an exemplary embodiment of a flowchart depicting operation of a printer driver used in the system of FIG. 1 according to one aspect of the present application;
FIG. 7 is an exemplary embodiment of a flowchart depicting operation of printer firmware used in the system of FIG. 1 according to one aspect of the present application;
FIG. 8 is an exemplary embodiment of a flowchart depicting an operation of a linearized detector used in the printer firmware of FIG. 7 according to one aspect of the present application;
FIG. 9 is an exemplary embodiment of a flowchart depicting non-linearized processing of the PDF file by the printer firmware of FIG. 7 according to one aspect of the present application;
FIG. 10 is an exemplary embodiment of a flowchart depicting linearized processing of the PDF file by the printer firmware of FIG. 7 according to one aspect of the present application;
FIG. 11 is an exemplary embodiment of a flowchart depicting operation of an error handling mechanism used in the printer firmware of FIG. 7 according to one aspect of the present application;
FIG. 12A is a prior art flowchart depicting error page printing by the printer firmware according to one aspect of the present application; and
FIG. 12B is an exemplary embodiment of a flowchart depicting error page printing by the printer firmware of FIG. 7 according to one aspect of the present application.
DETAILED DESCRIPTION
[0012]         The description set forth below in connection with the appended drawings is intended as a description of presently preferred embodiments of the disclosure and is not intended to represent the only forms in which the present disclosure can be constructed and/or utilized.  The description sets forth the functions and the sequence of steps for constructing and operating the disclosure in connection with the illustrated embodiments.  It is to be understood, however, that the same or equivalent functions and sequences can be accomplished by different embodiments that are also intended to be encompassed within the spirit and scope of this disclosure.
[0013]         Embodiments of the exemplary system and method relates to a PDF image forming system and method configured to interpret and print all PDF formats including non-linearized and linearized PDF formats.  The exemplary system and method provides a linearized PDF format detection and conversion mechanism in different devices in the printing pipeline wherein use of the detection and conversion mechanisms depend on the PDF print flows.  The linearization detection in the printer firmware happens on the fly when receiving stream data and there is no need to wait after the PDF file is saved.  This allows a decision to be made in an optimal manner.  For a linearized PDF file, the exemplary system and method checks the size difference between a total file size and a first page size (1stPgSize).  If a size difference is detected above a predetermined value, linearized processing may be used to save file storage time spent for later pages.  Otherwise, non-linearized processing may be used.  In linearized PDF processing, two processing stages may be introduced to seek parallel processing for fast printing.  The linearized stage1 may include saving the 1st page data to RAM and interpreting 1st page data so that 1st page printing does not need to wait until all the data is received.  Linearized stage 2 may include saving and interpreting the later page data.  As a result, 1st page printing speed may be optimized as well as the whole printing speed of the PDF document.  The exemplary system and method may provide an error handling mechanism for interpreting PDF files that may avoid printing false error pages.  The linearized specific error caused by un-known file size during the 1st page interpreting may be detected and non-linearized interpreter may be used to avoid print the error page.
[0014]         Referring now to FIG. 1, a system 10 may be shown.  The system 10 may be configured to interpret and print all PDF formats including non-linearized and linearized PDF files at an optimal printing speed.  The system 10 provides a linearized PDF format detection and conversion mechanism in different devices in the print pipeline base on different PDF printing flows.  The system 10 may have an error handling mechanism to avoid printing false error pages which may occur during linearization processing of a PDF file.  The components of the system 10 may be coupled through wired or wireless connections.  
[0015]         The system 10 may have an image forming device 14.  The image forming device 14 may be any type of device having printing capabilities.  For example, the image forming device 14 may be a printer, a copier, a fax machine, a multi-function peripheral including a scanner and one or more of functions of a copier, a facsimile device, and a printer and/or other types of rendering devices.  The image forming device 14 may be used for outputting a print job as described below.  
[0016]         The image forming device 14 may be coupled to a print server 16.  The print server 16 may be used to connect the image forming device 14 to one or more computing devices 18 over a network 22.  The network 22 may be a local area network (LAN), a general wide area network (WAN), wireless local area network (WLAN) and/or a public network.  The print server 16 may accept print jobs from the computing device 18 and may send the print jobs to the appropriate image forming device 14.  The print server 16 may queue the jobs locally as print jobs may arrive more quickly than the image forming device 14 may be able to print.  Alternatively, or in addition to, the computing device 18 may be directly coupled to the image forming device 14.
[0017]         Individuals 12 may use one or more computing devices 18 to send print jobs to the image forming device 14.  The computing devices 18 may be a client computer system such as a desktop computer, handheld or laptop device, tablet, mobile phone device, server computer system, multiprocessor system, microprocessor-based system, network PCs, and distributed cloud computing environments that include any of the above systems or devices, and the like.  The computing device 18 may be described in the general context of computer system executable instructions, such as program modules, being executed by a computer system as may be described below.  In the embodiment shown in FIG. 1, the computing device 18 may be seen as a desktop/laptop computing system 18A (which is also referred to as personal computing system), a tablet device 18B and a mobile phone device 18C.  However, this should not be seen in a limiting manner as any computing device 18 described above may be used.
[0018]         The computing devices 18 may be loaded with an operating system.  The operating system of the computing device 18 may manage hardware and software resources of the computing device 18 and provide common services for computer programs running on the computing device 18.  The computing device 18 may be loaded with a linear conversion module 20 (which is also referred to as linearized PDF converter).  The linear conversion module 20 may convert non-linear PDF files to linear PDF files as will be described below.  
[0019]         Referring now to FIG. 2, the computing device 18 may be described in more detail in terms of the machine elements that provide functionality to the systems and methods disclosed herein.  The components of the computing device 18 may include, but are not limited to, one or more processors or processing units 30, a system memory 32, and a system bus 34 that couples various system components including the system memory 32 to the processor 30.  The computing device 18 may typically include a variety of computer system readable media.  Such media may be chosen from any available media that is accessible by the computing device 18, including non-transitory, volatile and non-volatile media, removable and non-removable media.  The system memory 32 could include one or more personal computing system readable media in the form of volatile memory, such as a random access memory (RAM) 36 and/or a cache memory 38.  By way of example only, a storage system 40 may be provided for reading from and writing to a non-removable, non-volatile magnetic media device typically called a "hard drive".
[0020]         The system memory 32 may include at least one program product/utility 42 having a set (e.g., at least one) of program modules 44 that may be configured to carry out the functions of embodiments of the invention.  The program modules 44 may include, but is not limited to, an operating system, one or more application programs, other program modules, and program data.  Each of the operating systems, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment.  The program modules 44 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.  For example, the program modules 44 may have the linear conversion module 20.  In accordance with one embodiment, the linear conversion module 20 may form part of a printer driver stored in the system memory 32 of the computing device 18.
[0021]         The computing device 18 may communicate with one or more external devices 46 such as a keyboard, a pointing device, a display 48, or any similar devices (e.g., network card, modern, etc.).  The display 48 may be a Light Emitting Diode (LED) display, Liquid Crystal Display (LCD) display, Cathode Ray Tube (CRT) display and similar display devices.  The external devices 46 may enable the computing device 18 to communicate with the image forming device 14 (FIG. 1).  Such communication may occur via Input/Output (I/O) interfaces 50.  Alternatively, the personal computing system 18A may communicate with one or more networks 22 (FIG. 1) such as a local area network (LAN), a general wide area network (WAN), and/or a public network via a network adapter 52.  The computing device 18 may be coupled to the one or more networks via a wired or wireless connection.  As depicted, the network adapter 52 may communicate with the other components of the computing device 18 via the system bus 34.
[0022]         As will be appreciated by one skilled in the art, aspects of the disclosed invention may be embodied as a system, method or process, or computer program product.  Accordingly, aspects of the disclosed invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," "module," or "system."  Furthermore, aspects of the disclosed invention may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
[0023]         Any combination of one or more computer readable media (for example, storage system 40) may be utilized.  In the context of this disclosure, a computer readable storage medium may be any tangible or non-transitory medium that can contain, or store a program (for example, the program product 42) for use by or in connection with an instruction execution system, apparatus, or device.  A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
[0024]         Referring now to FIG. 3, the image forming device 14 may be described in more detail in terms of the machine elements that provide functionality to the systems and methods disclosed herein.  The components of the image forming device 14 may include, but are not limited to, one or more processors or processing units 60, a system memory 62, and a system bus 63 that may couple various system components including the system memory 62 to the processor 60.  The image forming device 14 may typically include a variety of computer system readable media.  Such media could be chosen from any available media that is accessible by the image forming device 14, including non-transitory, volatile and non-volatile media, removable and non-removable media.  The system memory 62 could include one or more image forming device readable media in the form of volatile memory, such as a random access memory (RAM) and/or a cache memory.  By way of example only, the system memory 62 may be provided for reading from and writing to a non-removable, non-volatile magnetic media device typically called a "hard drive".
[0025]         The system memory 62 may include at least one program product/utility 64 having a set (e.g., at least one) of program modules 66 that may be configured to carry out the functions of embodiments of the invention.  The program modules 66 may include, but is not limited to, an operating system, one or more application programs, other program modules, and program data.  Each of the operating systems, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment.  The program modules 66 may include procedures such as a page converter, rasterizer, compression code, page print scheduler, print engine manager, and similar printing applications (i.e., printer firmware).  The program modules 66 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.  
[0026]         The image forming device 14 may have one or more communication modules 68.  The communication modules 68 may allow the image forming device 14 to communicate with one or more networks (i.e., network 22 shown in FIG. 1) such as a local area network (LAN), a general wide area network (WAN), wireless local area network (WLAN) and/or a public network.  In accordance with one embodiment, the communication modules 68 may include a network communication processing unit 70A coupled to a network communication interface 70B.  The network communication processing unit 70A and the network communication interface 70B may allow the image forming device 14 to communicate with one or more networks 22.  These networks 22 may be a local area network (LAN), a general wide area network (WAN), a wireless local area network, a public network, a cellular network as well as other type of networks.   The communication modules 68 may include a near field communication processing unit 72A coupled to a near field communication interface 72B.  The near field communication processing unit 72A and the near field communication interface 72B may allow the image forming device 14 to communicate with other electronic devices located near the image forming device 14 using Bluetooth, infrared or similar wireless communication protocols.
[0027]         The image forming device 14 may include an operation panel 74.  The operation panel may include a display unit 76 and an input unit 78 for facilitating human interaction with the image forming device 14.  The display unit 76 may be any electronic video display, such as a LCD display, LED display and similar display types.  The input unit 78 may include any combination of devices that allow users to input information into the operation panel 74, such as buttons, a keyboard, switches, and/or dials.  In addition, the input unit 78 may include a touch-screen digitizer overlaid onto the display unit 76 that can sense touch and interact with the display unit 76.
[0028]         As will be appreciated by one skilled in the art, aspects of the disclosed invention may be embodied as a system, method or process, or computer program product.  Accordingly, aspects of the disclosed invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a "circuit," "module," or "system."  Furthermore, aspects of the disclosed invention may take the form of a computer program product embodied in one or more computer readable media having computer readable program code embodied thereon.
[0029]         Any combination of one or more computer readable media (for example, system memory 62) may be utilized.  In the context of this disclosure, a computer readable storage medium may be any tangible or non-transitory medium that can contain, or store a program (for example, the program module 66) for use by or in connection with an instruction execution system, apparatus, or device.  A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing.
[0030]         Referring now to FIGs. 1-12B, operation of the system 10 in accordance with one exemplary embodiment may be seen.  As shown in FIG. 4, operation of the system 10 may be based on how the PDF file is being sent to the image forming device 14.  The operation of the system 10 may be divided into two process flows.  Flow 1 may be defined as when a PDF document is opened in an application tool such as Adobe (trade mark) Reader, Adobe (trade mark) Pro, Microsoft (trade mark) Office and the like and is sent to print via a printer driver.  Flow 2 may be defined as when a PDF document is directly sent to print via network or USB printing.
[0031]         In Flow 1, a PDF application tool may be used to open a PDF document as shown in 101.  As may be seen in FIG. 5, the individual 12 who opened the PDF file in the application tool may need to determine if the application tool contains a linearized PDF converter as shown in 101A.  Some application tools such as Acrobat Pro, Microsoft Word, and the like, may have file saving options which may allow the individual 12 to save the PDF file under a linearized PDF file standard.  Thus, these application tools may allow the individual 12 to convert a non-linearized PDF file to a linearized PDF file inside the application tool.  If the application tool has a linearized PDF converter, the individual 12 should linearize the PDF file as shown in 101B by saving the PDF file as a linearized PDF file.  Saving the PDF file as a linearized PDF file may optimize the printing performance of the PDF file since the image forming device 14 may start interpreting and printing the 1st page data of the PDF file without having to wait to receive the whole page data.  Linearizing the PDF file in the application tool may further allow a linearized process flow for later printing pipeline uses.  However, some application tools such as Adobe (trade mark) Reader may not provide a linearized PDF converter.  Thus, if the PDF file is a non-linearized PDF file, the PDF file may remain a non-linearized PDF file as shown in 101C.  
[0032]         The data from the PDF file may be sent to a printer driver of the computing device 18 as shown in 102 (FIG. 4).  As may be seen in FIG. 6, the printer driver may receive the data from the PDF file as shown in 102A.  The printer driver may review the data to check the PDF file size as shown in 102B.  This information may be used by the printer driver as well as firmware stored in the system memory 62 (FIG. 3) of the image forming device 14 (FIG. 1, 3) as will be discussed below.
[0033]         The PDF data may be sent to the linearized PDF converter 20 (FIG. 1, 2) of the printer driver as shown in 102C.  The linearized PDF converter 20 of the printer driver my review the PDF date to make a determination of whether the PDF file is linearized or non-linearized as shown in 102D.  If the PDF file is a non-linearized PDF file, linearized PDF converter 20 of the printer driver may linearize the PDF file as shown in102E.  
[0034]         The printer driver may have a Print Job Language (PJL) command module as shown in 102F.  The PJL command module may be used to generate PJL commands.  For example, the PJL command module may generate PJL commands for the file size and linearization information.  In accordance with one embodiment, if the linearized PDF converter 20 of the printer driver linearizes the PDF file, the PJL command module may send the following PJL commands to printer firmware in the image forming device 14: 
@PJL SET LPARM:PDF KLINEARIZEDPDF=YES
@PJL SET LPARM:PDF KFILESIZE=PDF FILE SIZE
[0035]         If the PDF file is a linear PDF file, the PDF file may be sent directly to the PJL command module as shown in 102E without passing though linearized PDF converter 20.    After the PJL commands are generated, the PDF file, which is already linearized, may be sent to the image forming device 14 as shown in 103 (FIG. 4).  In accordance with one embodiment, the PJL command module may send the following PJL commands to printer firmware in the image forming device 14:
@PJL SET LPARM:PDF KLINEARIZEDPDF=NO
@PJL SET LPARM:PDF KFILESIZE=PDF FILE SIZE
[0036]         As may be seen in FIG. 4, for flow 2 printing, the PDF file may be sent directly to the image forming device 14 as shown in 103.  Since in flow 2 the PDF document is directly sent to print via network or USB printing, flow 2 does not use the application tool or printer driver.  Thus, in flow 2, printer firmware in the image forming device 14 may need to handle all input formats.
[0037]         The printer firmware may be used for both flow 1 and flow 2.  As shown in FIG. 7, the operation of the printer firmware of the image forming device 14 as shown in 103 (FIG. 4) may be seen.  The printer firmware of the image forming device 14 may perform a linearized detection of the PDF file received as shown in 301.  The printer firmware may determine if the PDF file is linearized as shown in 302.  The printer firmware may check to see if any PJL commands have been received.  In accordance with one embodiment, the printer firmware may check the PJL KLINEARIZEDPDF setting to find out if a linearization check was done in the printer driver or not.  If a linearization check is done in the printer driver, the printer firmware may start saving stream data based on the KLINEARIZEDPDF setting, otherwise, the printer firmware may perform the linearization detection to determine the PDF file type as shown in 301.
[0038]         The printer firmware may start to detect the linearization while it is receiving stream data instead of after saving all of the stream data into the image forming device 14.  This may allow the image forming device 14 to optimize the speed to start 1st page printing.  As shown in FIG. 8, the image forming device 14 may start to receive the stream data.  The printer firmware may determine if the image forming device 14 has received 1024 bytes of stream data as shown 301B.  If the less than 1024 bytes of stream data have been received, the image forming device 14 may continue to receive the stream data.  The printer firmware may start to do linearized detection after receiving 1024 bytes of stream buffer (Per PDF specification, the linearization parameter dictionary should be located within 1024bytes).  Linearized detection may occur by using the stream buffer and reviewing the data to search for “/Linearized” key words and parameter information (i.e., linearized key string) contained within the linearization parameter dictionary as shown in 301C.  If the linearized key string is not found, the PDF file is a non-linearized PDF file as shown in 301D.  If the string is found, the printer firmware may try and interpret the linearization parameter directory as shown in 302E.  The printer firmware may try to interpret the linearized dictionary to see if a PJL specified file size (FileSize) is known as shown in 302F. If the FileSize is known, the printer firmware may compare the linearized specified file size (LSize) to the FileSize as shown in 302G.  If the LSize is equal to the FileSize, the PDF file may be defined as a linearized PDF file as shown in 302H.  Otherwise, the PDF file may be defined as a non-linearized PDF file as shown in 301D.  If the FileSize is unable to be determine in no printer driver situation, the PDF file may still be defined as a linearized PDF file as shown in 302H.
[0039]         Referring back to FIG. 7, if the PDF file is defined as a non-linearized PDF file, non-linearized processing may be applied to the PDF file as shown in 305.  As may be seen in FIG. 9, for non-linearized processing of the PDF file, the whole PDF file is saved in system memory 62 of the image forming device 14 as shown in 501.  Once the PDF file is saved, it is interpreted and print data is generated as shown in 502.
[0040]         If the PDF file is defined as a linearized PDF file, the firmware of the image forming device 14 may check the size difference between LSize and 1stPgSize which are specified by linearization parameter dictionary as shown in 303.  If the size difference between LSize and 1stPgSize is bigger than a predetermined threshold size (ThresholdSize), linearized processing may be applied to the PDF file as shown in 304.  If the size difference between LSize and 1stPgSize is smaller than a predetermined ThresholdSize, non-linearized processing may be applied as shown 305.  Non-linearized processing may be applied since when the size difference is smaller than a predetermined threshold value, there is no need to have two (2) stage processing as may be applied to linearized processing as disclosed below since the time savings for printing may be minimal.
[0041]         For PDF files identified as linearized, linearized processing may be performed as shown in 304 of FIG. 7.  As may be seen in FIG. 10 for 304, stream data may be sent to a stream storage task generator as may be seen in 401.  The stream storage task generator may divide the linearized processing into two stages.  Stage 1 may involve 1st page stream storage and interpreting.  Stage 2 may be involve with storage and interpreting of later pages.  As may be seen in FIG. 10, stage 1 and stage 2 may be processed in a parallel way.  This may improve the 1st page printing speed significantly as it does not need to wait until all data is saved.
[0042]         In accordance with one embodiment, stage 1 may involve 1st page stream storage as shown in 402.  While the 1st page stream data is being processed as shown in 404, stream storage of later pages may be done as shown in 403 in a parallel manner.  The later page data may then be interpreted as shown in 405.
[0043]         In accordance with one embodiment, the stage 1 1st page stream data may be saved in the RAM memory at fast speed even if the system memory device is a hard drive.  This is because accessing RAM may be faster than accessing the hard drive.  However, when stage 1 1st page stream data size is bigger than available RAM size, the 1st page stream data may be saved into the hard drive or other memory storage device.  The RAM memory buffer may be used directly by the linearized 1st page interpreter, which may reduce temp memory buffer that is required by using the hard drive.
[0044]         In 404, the linearized stage 1 interpreter may utilize interpreting information such as XREF table and page information directly from the linearization parameter dictionary.  This may result in faster interpreting speed compared to the non-linearized interpreter shown in 502.
[0045]         If any error happens during saving stream data and interpreting, an error page may be printed to notify the individual 12 with error information such as no memory, lack of fonts etc.  However, there may be a special case which produces a false error due to linearization processing.  This is the case where the size specified by the linearization parameter dictionary does not match the real file size.  The printer firmware of the present application may provide an interpreter error handler for the above error case without printing false error page as shown in 306.
[0046]         As may be seen in FIG. 11, operation of the interpreter error handler is shown.  The interpreter error handler determines if there is an interpreter error as may be seen in 601.  If there is no interpreter error, no error message is returned as shown in 609.  When interpreter error handler identifies an error, the interpreter error handler determines if it is in linearized Stage 1 as shown in 602.  If it is not, an error message is returned as shown in 608.  If it is a linearized stage 1 error, the interpreter error handler determines the file size setting as shown in 604.  If file size is known already, then the interpreter error handler checks if file size matches linearization parameter dictionary specified size LSize as shown in 605.  If it does match, then the error is a real error and an error is returned as shown in 608.  Otherwise, it is False Linearized Error.  In this situation, printing of an error page may be aborted as shown in 606 and a return of a false linearized error maybe reported as shown in 607.  If file size is unknown, the printer firmware may wait until saving stage 2 stream data is done as shown in 603 in order to get the file size.  If fileSize matches LSize, a true PDF interpreting error may be returned as shown in 608.
[0047]         Referring to FIG. 12A, presently, when an error is detected, the error page may be printed after stream data storage is completed as shown in 700.  However, the printer firmware may be configured so that the PDF interpreter task and PDF stream storage task use different task threads as shown in 800 of FIG. 12B.  In case an error is recorded before stream storage data has been completed, two separate task threads may be used to handle error page printing and consuming the rest of the stream data at the same time.   Thus, stream storage and error page printing may be processed in parallel.  This may improve error job printing performance as it may be done more timely as opposed to the prior art where the error page may be printed only after stream data storage is completed.
[0048]         The foregoing description is illustrative of particular embodiments of the invention, but is not meant to be a limitation upon the practice thereof.  The following claims, including all equivalents thereof, are intended to define the scope of the invention.
REFFERENCE SIGNS LIST
[0049]          
10    System
14    Image Forming Device
16    Print Server
22    Network
20    Linearized PDF Converter (Linear Conversion Module)
12    Individual
18A    Desktop/Laptop Computing System (Personal Computing System）
18b    Tablet Device
18c    Mobile Phone Device
What is claimed is:
1.    A method of processing linearized and non-linearized Portable Document Format (PDF) files for printing comprising:
determining by printer firmware if a printer driver detected that the PDF file is linearized;
saving stream data of the PDF file by the printer firmware when the printer firmware determines the printer driver detected that the PDF file is linearized; and
determining by the printer firmware if the PDF file is linearized when the PDF file is unidentified as being linearized by the printer driver.
2.    The method of Claim 1, wherein the determining by the printer firmware if the PDF file is linearized comprises:
monitoring a first portion of the stream data of the PDF file received by the printer firmware for a linearized key string; 
interpreting the linearized key string if the linearized key string is found;
processing the PDF file as linearized when the linearized key string is found; and
processing the PDF file as non-linearized when the linearized key string is unidentified in the first portion of the PDF file received.
3.    The method of Claim 2, wherein monitoring a first portion of the stream data of the PDF file received by the printer firmware for a linearized key string comprises monitoring by the printer firmware for the linearized key string after receiving 1024 bytes of stream data of the PDF file.
4.    The method of Claim 2 or 3, wherein interpreting the linearized key string comprises comparing a linearized specific file size of the PDF file to an actual file size of the PDF file.
5.    The method of any of Claims 2 to 4, processing the PDF file as linearized when the linearized key string is found comprising:
comparing a size difference between a linearized specific file size of the PDF file and a first page file size of the PDF file;
processing the PDF file as linearized when the size difference between the linearized specific file size of the PDF file and the first page file size of the PDF file is greater than a threshold size; and
processing the PDF file as non-linearized when the size difference between the linearized specific file size of the PDF file and the first page file size of the PDF file is less than a threshold size.
6.    The method of Claim 5, wherein processing the PDF file as linearized when the size difference between the linearized specific file size of the PDF file and the first page file size of the PDF file is greater than a threshold size comprises:
storing and interpreting first page stream data of the PDF file; and
storing and interpreting non-first page stream data of the PDF file.
7.    The method of Claim 5, wherein processing the PDF file as linearized when the size difference between the linearized specific file size of the PDF file and the first page file size of the PDF file is greater than a threshold size comprises:
storing a first page stream data of the PDF file;
interpreting first page stream data of the PDF file;
storing non-first page stream data of the PDF file; and
interpreting non-first page stream data of the PDF file;
wherein interpreting first page stream data of the PDF file and storing non-first page stream data of the PDF file is done in parallel.
8.    The method of Claim 7, wherein storing first page stream data of the PDF file comprises storing the first page stream data of the PDF file in Random Access Memory (RAM), the first page stream data of the PDF file being stored in other system memory when the RAM is full or the RAM is unavailable.
9.    The method of Claim 7, wherein interpreting first page stream data of the PDF file interpreting data directly from information in a linearization parameter dictionary.
10.   The method of any of Claims 5 to 9, comprising:
monitoring for a processing error when processing the PDF file as linearized;
comparing a file size of the PDF file to the linearized specific file size of the PDF file when the processing error occurs;
sending an error message when the file size of the PDF file is equal to the linearized specific file size of the PDF file; and
aborting the sending of the error message, terminating the linearized processing and re-processing the PDF file as non-linearized when the file size of the PDF file and the linearized specific file size of the PDF file is unequal and above a predetermined threshold limit.
11.   The method of any of Claims 1 to 10, comprising detecting an error, wherein two separate task threads are used to handle error page printing and consuming a remainder of stream storage when the error is recorded prior to stream storage being completed.
12.   The method of any of Claims 1 to 11, comprising:
determining by the printer driver if the PDF file is linearized when the PDF file is sent to print via the printer driver; and
linearizing the PDF file by the printer driver when the PDF file is non-linearized.
13.   The method of Claim 12, comprising:
adding printer command information to the PDF file by the printer driver; and
sending the printer command information by the printer driver to the printer firmware.
14.   The method of Claim 13, wherein the printer command information comprises file size data and linearization data.
15.   The method of any of Claims 1 to 14, comprising:
opening the PDF file in a PDF application; and
saving the PDF file as a linearized PDF file when the PDF application has a linearization module.
16.   A method of processing linearized and non-linearized Portable Document Format (PDF) files for printing comprising:
determining by the printer driver if the PDF file is linearized if the PDF file is sent to print via the printer driver; 
linearizing the PDF file by the printer driver when the PDF file is non-linearized;
adding printer command information to the PDF file by the printer driver;
sending the printer command information by the printer driver to printer firmware;
determining by printer firmware if the printer driver detected that the PDF file is linearized;
saving stream data of the PDF file by the printer firmware when the printer firmware determines the printer driver detected that the PDF file is linearized;
determining by the printer firmware if the PDF file is linearized when the PDF file is unidentified as being linearized by the printer driver;
identifying a linearization error by the printer firmware; and
identifying and processing printing errors during saving and interpreting stream data by the printer firmware in a parallel manner.
17.   The method of Claim 16, wherein identifying a linearization error by the printer firmware comprises:
comparing a file size of the PDF file to a linearized specific file size of the PDF file;
sending an error message when the file size of the PDF file is equal to the linearized specific file size of the PDF file; and
aborting the sending of the error message, terminating the linearized processing and re-processing the PDF file as non-linearized when the file size of the PDF file and the linearized specific file size of the PDF file is unequal and above a predetermined threshold limit.
18.   The method of Claim 17, wherein identifying and processing printing errors during saving and interpreting stream data by the printer firmware in a parallel manner comprises processing two separate task threads to handle error page printing and consuming a remainder of stream storage when the error is recorded prior to stream storage being completed.
19.   A system for processing linearized and non-linearized Portable Document Format (PDF) files for printing comprising:
a printer driver module receiving the PDF file when the PDF file is sent to print via the printer driver, determining if the PDF file is linearized, linearizing the PDF file when the PDF file is non-linearized, and adding printer command information to the PDF file when linearizing the PDF file; and
a printer firmware module determining if the printer driver detected that the PDF file is linearized, linearizing the PDF file when the PDF file is unidentified as being linearized by the printer driver, processing the PDF file as linearized when a size difference between a linearized specific file size of the PDF file and a first page file size of the PDF file is greater than a threshold size, processing the PDF file as non-linearized when the size difference between the linearized specific file size of the PDF file and the first page file size of the PDF file is less than a threshold size, and processing the PDF file as non-linearized when a linearized key string is unidentified in the first portion of the PDF file received, wherein the printer firmware identifies  real and false linearization error and identifies and processes printing errors in a parallel manner during saving and interpreting stream data.
20.   The system of Claim 19, comprising an error detection module stored in the printer firmware module, the error detection module monitoring for a processing error when processing the PDF file as linearized, comparing a file size of the PDF file to the linearized specific file size of the PDF file when the processing error occurs, sending an error message when the file size of the PDF file is equal to the linearized specific file size of the PDF file, and processing the PDF file as non-linearized when the file size of the PDF file and the linearized specific file size of the PDF file is un-equal.
1.   Abstract
2.   SOLUTION
A method of processing linearized and non-linearized Portable Document Format (PDF) files for printing comprises: determining by printer firmware if a printer driver detected that the PDF file is linearized; saving stream data of the PDF file by the printer firmware when the printer firmware determines the printer driver detected that the PDF file is linearized; and determining by the printer firmware if the PDF file is linearized when the PDF file is unidentified as being linearized by the printer driver, wherein the printer firmware identifies real and false linearization error during linearized processing and identifies and processes printing errors in a parallel manner during saving and interpreting stream data.
Drawing: Fig. 1
2018075826.tif 000016
2018075826.tif 000017
2018075826.tif 000018
2018075826.tif 000019
2018075826.tif 000020
2018075826.tif 000021
2018075826.tif 000022
2018075826.tif 000023
2018075826.tif 000024
2018075826.tif 000025
2018075826.tif 000026
2018075826.tif 000027
2018075826.tif 000028