高度な検索
Developer Connection
Member Login ログイン | ご入会 ADC連絡先



QD54 - アプリケーションからの横向き印刷の設定方法

(98 年 1 月 16 日)

Q: アプリケーションから横向きの印刷を設定するにはどうしたらよいでしょう。

A: Apple は、横向きに印刷することを強要するアプリケーションに対しては常に警告を行ってきました。しかしながら、そうせざるを得ないアプリケーションが市場にはいくつかあります。そのため、従来の印刷 API には横向きモードに設定する API はありませんが、実現可能な方法をひとつ示します。プリント・ジョブのプリント方向を強制する方法は次の通りです。

  1. 使用中のプリント・レコードに対して PrValidate を呼び出して、プリント・レコードの内容が現在アクティブなプリンタ・ドライバと互換性があることを確認します。

  2. プリント・レコード内の用紙を表す矩形の値を調べてください。縦よりも横の方が長い場合は、すでにユーザが横向きモードを選択しています。縦の方が長い場合は、横向きモードを選択する警告ボックスを表示し、その後、PrStlDialog を呼び出して、ユーザに用紙方向を設定してもらいます。

  3. PrValidate をもう一度呼び出し、ユーザが横向きモードに変更したことを確認してください。それでも用紙の矩形が縦長の場合は、手順 2 に戻って、ユーザにもう一度設定をやり直すように求めます。なぜならこれは、ユーザが手順 2 の通り操作しなかったか、説明が理解できなかったからです。

  4. プリファレンス・ファイルのリソース・フォークに、正しい方向のプリント・レコードを保存し、ユーザが印刷を行うたびにこれを読み直します。プリント・レコードの保存方法については、『develop 1990 - Premier Issue』の 58 ページを参照してください。保存したプリント・レコードを使うようにすれば、ユーザは一度だけ PrStlDialog を操作するだけで済みます。その後、印刷時には、プリント・レコードをプリファレンスから取得して使用します。

  5. ユーザがセレクタでプリンタ・ドライバを変更すると、PrValidate への呼び出しが失敗するので、PrDefault を呼び出さなければなりません。すると、新しいプリンタ・ドライバ用の新しいプリント・レコードが作成され、デフォルトの用紙方向は横ではなく縦向きになるため、再び手順 2 に戻らなくてはなりません。

注意:
プリンタ・ドライバによって用紙方向の設定に関する実装方法が違うため、この方法がすべてのプリンタ・ドライバに対して有効とはかぎりません。また、ユーザが頻繁にプリンタを変更するような環境では、この方法では対処できないかもしれません。

-- Ingrid Kelly
devsupport@apple.com


[ Technical Q&A's : Graphics & Media : QuickDraw : QD54 ]