0

ユーザーが自分の印刷設定ダイアログ内でプリンターに適した用紙サイズを選択できるようにしようとしています。誰もが実行可能な解決策を知っていますか - できればクロスプラットフォームですが、それ以外は OSX です。

TPageSetupDialog を使用すると、実行時に Invalidpmobject の PASever ウィンドウでエラーが発生しますが、ダイアログは表示されますが、現在のプリンターの用紙サイズには影響しないようです。ユーザーが何を選択したかを確認するプロパティもないようです。

ユーザーが最初に新しい用紙サイズで調整できるようにする必要があるため、実際に印刷せずに用紙サイズを設定する必要があります。

4

1 に答える 1

0

私は最終的に問題を理解したので、問題を抱えている他の人のための解決策は次のとおりです。

TPageSetupDialog を使用しますが、呼び出す前に現在のプリンターの有効なページ幅とページ高さの値を設定する必要があります。そうしないと、PAServer ウィンドウにエラーが報告され、プリンター選択ボックスが現在のプリンター名ではなく「任意のプリンター」に設定されます。

残念ながら、用紙サイズではなく印刷可能領域を報告するため、プリンターのページ幅と解像度から直接用紙サイズを導き出すことはできません。そのため、ユーザーが別のプリンターを選択するたびに、デフォルトの A4 を設定します。A4をサポートしていないプリンターの世話をしたい場合は、printer.pagewidth/printer.activeprinter.activedpi.xから計算された値に最も近い標準用紙サイズを設定できると思います。

もう 1 つの注意点は、TPageSetupDialog コンポーネントのデフォルトのページ サイズが間違っていることです。単位を mm に設定し、幅 210000 と高さ 297000 (デフォルト値よりも 10 倍大きいことに注意してください) を使用して、ほとんどのプリンターがサポートする必要がある A4 サイズを指定します。

于 2015-10-25T12:11:49.443 に答える