[MacOS] 印刷時に使用する NSPrintInfo の単位は、ポイントです

macOS アプリで印刷機能を実装しようとすると、NSPrintInfo を扱うことになります。そのなかの PaperSize について説明します。

環境&対象

以下の環境で動作確認を行なっています。

  • macOS Big Sur 11.1
  • Xcode 12.3

NSPrintInfo

印刷やプリンタダイアログ表示前に設定するクラスです。

Apple のドキュメントは、こちら

paperSize

NSPrintInfo のプロパティの1つに、paperSize があります。

Apple のドキュメントは、こちら

paperSize

var paperSize: NSSize { get set }

説明として、「The size is measured in points in the user coordinate space.」と書かれています。

単位は、mm 系でも inch 系でもなく、ポイントでした。(ある意味、inch 系ですが。)

ポイントの定義は、複数あるようなのですが、わかりやすいところでは、 1ポイント = 1/72 インチ というものがあるようです。
ちなみに、この定義で計算すると 1 mm は 2.83 ポイント になります。

paperSize だけにとどまらず、topMargin 等も ポイントで指定するようになっています。

まとめ:NSPrintInfo での単位は、ポイント

NSPrintInfo での単位は、ポイント
  • paperSize, topMargin, bottomMargin, leftMargin, rightMargin は、ポイントで指定する必要がある
  • 1mm は、2.83 ポイント

説明は以上です。
不明な点やおかしな点ありましたら、こちらまで。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です