| ログイン | ご入会 |
ADC連絡先
|
|
印刷処理の古い方法
ステップ 3 ではエラーチェックを行って、Printing Manager によるクローズが適切であるかどうか、またすべての一時メモリが解放されているかどうかを確認してください。
印刷中のエラー条件のチェック アプリケーションでは、書類の印刷中に常にエラー条件をチェックするようにしてください。この処理は PrError を呼び出して実行できます。PrError は、印刷中に発生する
Printing Manager のエラー (および一部の AppleTalk エラーと OS エラー) を返します。前出のコード例で示したように、Printing Manager の関数またはプロシージャを呼び出すたびに、アプリケーションでは PrError を呼び出す必要があります。呼び出しを実行するたびに一貫して PrError
をチェックすることで、アプリケーションは印刷時に発生したエラーを捕捉し、ダイアログボックス経由でアプリケーションのユーザにそれらのエラーをレポートできるようになります。いくつかの一般的なエラー処理のためのガイドライン 次に、いくつかの一般的なエラー処理を行うためのガイドラインを示します。
ただし、 resNotFound エラーは、現在のプリンタドライバで PrGeneral
がサポートされていないということを意味します。サポートされていないこと自体はアプリケーションにとって問題ではありませんが、アプリケーションではこのエラーを処理する準備を整えておく必要があります。PrError
から resNotFound エラーを取得した場合は、PrSetError(0) を呼び出してエラーをクリアします。そうしないと、PrError
を次にチェックするまで、PrError にこのエラーが残ってしまい、アプリケーションが印刷できなくなってしまいます。印刷プロセスのキャンセルまたは一時停止 印刷プロセスを一時停止するオプションを使って、印刷のキャンセルをリクエストするプロシージャをインストールする場合は、印刷にネットワークプリンタを使用するときのタイムアウトの問題に注意してください。Macintosh とネットワークプリンタとの通信は、ジョブまたは待機タイムアウトを防ぐために常時維持されている必要があります。一定の時間 (ほぼ 2 分程度) にわたってデータのやり取りがないと、プリンタはタイムアウトになり、印刷ジョブは待機タイムアウトのために中止されてしまいます。また、印刷を終了するまでに 3 分を超える時間が必要な場合は、ジョブタイムアウトのために印刷ジョブが中止されてしまいます。印刷に使用しているプリンタのタイプを確実に決定する方法が存在しないため、2 分あるいはそれ以上にわたって "一時停止" ボタンを選択していると、ネットワークプリンタのタイムアウトが発生することを、アプリケーションの README ファイルに明記しておくのが最善の方法といえます。 エラーメッセージ Printing Manager は、ここで説明するエラーメッセージをレポートします。Printing Manager に関係のないエラーが発生すると、Printing Manager ではそのエラーを下位メモリに置き、必要な場合は印刷ループの実行を中止します。下位メモリに置かれたエラーは PrError を呼び出して取得することができます。すでに説明したように、印刷ループの途中でエラーが発生した場合は、ループを抜けずにループの実行が失敗するのを待ち、Printing
Manager を適切な形で終了させます。最も一般的に発生する可能性のあるエラーは -4101 です。このエラーは、選択した
LaserWriter がネットワーク上で使用できない場合に発生します。このエラーはかなり頻繁に発生するため、このエラーが発生したときには、セレクタから別のプリンタを選択するよう要求するダイアログボックスを表示するのがよいでしょう。一般的な Printing Manager エラーとシステムエラー 次に、一般的な Printing Manager エラーとシステムエラーのコードを示します。
PrGeneral のエラー C 言語では、次のように PrGeneral を宣言します。
pascal void PrGeneral (Ptr pData);
struct TGnlData {
short iOpCode;
short iError;
long lReserved;
};
PrGeneral の詳細については、Pete 'Luke' Alexander による「develop 3:
Meet PrGeneral」を参照してください。LaserWriter ドライバファミリのエラー
LaserWriter 8 の内部エラー 注意: 次に示すエラーコードは、LaserWriter 8 の内部コードに対応するものです。これらのエラーコードはデバッグには役立ちますが、アプリケーションの実行時にこれらのエラーを解釈したり使用したりすることは絶対に避けてください。
要約 これ以上、特に付け加えることはありません。このTECHNOTEで説明したルールに従ってエラーメッセージを適切に処理すれば、アプリケーションは Macintosh Printing Manager を使って正常に印刷することができるはずです。 参考文献
改訂の履歴
|