マスター お世話になります。
サンプルプログラム集
「011_プリンタドライバの情報をDEVMODE構造体から取得」での質問です。
やりたい事はPrinterSetupDialogを表示して「用紙サイズ」(種類)を変更したり
「印刷の向き」を変更することで変更された用紙の大きさ(縦・横の長さ)を
得て印刷データの行数を決めたいのです。
dmOrientation,dmPaperSize,dmPaperLength,dmPaperWidthの情報がそれらに
該当するのですが、
サンプルに同梱されている「DEVMODE_Structure.exe」で試したところ
A4縦 → portrait,A4,2970,2100(初期値)
A4横 → landscape,A4,2970,2100
再度 A4横 → landscape,A4,2970,2100
A4縦 → portrait,A4,2970,2100
となります。縦と横の長さが入れ替わるかなと予想したのですが、
そうではないようです。
次に用紙のサイズ(種類)を変更したところ
B5縦 → portrait,B5,2970,2100 (A4用紙の長さが残る?)
再度 B5縦 → portrait,B5,2570,1820 (B5に直った)
となりました。
A4縦 → portrait,A4,2570,1820 (B5用紙の長さが残る?)
再度 A4縦 → portrait,A4,2970,2100 (A4に直った)
どうやらdmPaperLength,dmPaperWidthの情報は直ちには反映されない
ようなのですが、これは仕様?なのでしょうか。
それとも私のPCもしくはプリンタードライバーだけの現象なのでしょうか。
環境 Windows7 Pro,Delphi XE4 Starter,Canon MG5430
|