Delphi 10.3.3 Cmt Edt での
FMX (FireMonkey) にて
印刷を行う直前、PrinterSetupDialog にて
プリンター名の切り替え・用紙サイズ・向きを
指定しますけれども、用紙サイズを変更しているのに
用紙サイズが変わってくれない場合があります。
2回目は、変ってくれたりします。
何なんでしょう、これ? 謎挙動です。

あと
印刷前に、解像度の指定を SelectDPI で行って
使用プリンターがそれに近い解像度の指定になってくれる
らしいので、そのあと再度、解像度を取得してそれを使う
みたいな事をしないといけないみたい。
解像度の指定の初期値(デフォルト値)というのはなくて
SelectDPI をしないと DPI=0 とかやってくれちゃって
印刷できなくなります。
SelectDPI で 600dpi を指定したとしても、そのプリンターが
300dpi までしか無ければ 300dpi となりますので
600dpi に指定したからといって 600dpiのまま計算をして
印刷させようとしてもおかしくなります。

VCLでプログラミングする際は、そんな処理にはならないし
プリンターの用紙サイズを変えたら直後にその通りになるので
VCL プログラミングとはかなりの違和感があります。

Printer.PageWidth、Printer.PageHeight で印刷領域サイズは
取得出来ますし、取りあえず何とか印刷は出来そうな感じです。