QD54 - アプリケーションからの横向き印刷の設定方法(98 年 1 月 16 日)
Q:
アプリケーションから横向きの印刷を設定するにはどうしたらよいでしょう。
A:
Apple は、横向きに印刷することを強要するアプリケーションに対しては常に警告を行ってきました。しかしながら、そうせざるを得ないアプリケーションが市場にはいくつかあります。そのため、従来の印刷 API には横向きモードに設定する API はありませんが、実現可能な方法をひとつ示します。プリント・ジョブのプリント方向を強制する方法は次の通りです。
- 使用中のプリント・レコードに対して
PrValidate を呼び出して、プリント・レコードの内容が現在アクティブなプリンタ・ドライバと互換性があることを確認します。
- プリント・レコード内の用紙を表す矩形の値を調べてください。縦よりも横の方が長い場合は、すでにユーザが横向きモードを選択しています。縦の方が長い場合は、横向きモードを選択する警告ボックスを表示し、その後、
PrStlDialog を呼び出して、ユーザに用紙方向を設定してもらいます。
-
PrValidate をもう一度呼び出し、ユーザが横向きモードに変更したことを確認してください。それでも用紙の矩形が縦長の場合は、手順 2 に戻って、ユーザにもう一度設定をやり直すように求めます。なぜならこれは、ユーザが手順 2 の通り操作しなかったか、説明が理解できなかったからです。
- プリファレンス・ファイルのリソース・フォークに、正しい方向のプリント・レコードを保存し、ユーザが印刷を行うたびにこれを読み直します。プリント・レコードの保存方法については、『develop 1990 - Premier Issue』の 58 ページを参照してください。保存したプリント・レコードを使うようにすれば、ユーザは一度だけ
PrStlDialog を操作するだけで済みます。その後、印刷時には、プリント・レコードをプリファレンスから取得して使用します。
- ユーザがセレクタでプリンタ・ドライバを変更すると、
PrValidate への呼び出しが失敗するので、PrDefault を呼び出さなければなりません。すると、新しいプリンタ・ドライバ用の新しいプリント・レコードが作成され、デフォルトの用紙方向は横ではなく縦向きになるため、再び手順 2 に戻らなくてはなりません。
|
注意:
プリンタ・ドライバによって用紙方向の設定に関する実装方法が違うため、この方法がすべてのプリンタ・ドライバに対して有効とはかぎりません。また、ユーザが頻繁にプリンタを変更するような環境では、この方法では対処できないかもしれません。
|
-- Ingrid Kelly
devsupport@apple.com
[ Technical Q&A's : Graphics & Media : QuickDraw : QD54 ]
|