C# の PrinterSettings について質問があります。デスクトッププリンターで PrinterSettings.Copies を 2 に設定すると、2 つのドキュメントが印刷されます。
ただし、部数を 2 に設定するZebra GK420d Label printer
と、定義した部数がプリンターのデフォルトの部数で上書きされます。Zebra プリンターは、プリンター設定 ([スタート] -> [デバイスとプリンター] -> [プリンターのプロパティ]) で部数を定義できる唯一のプリンターです。
ただし、PrintDialog を開いてコピー数を 2 に設定すると、しかし、プログラムでそれを行うと、うまくいきません。これが私の状況です:
フォーム:プリンター設定、フォームをロードすると、次のコードが実行されます
ps_Current = new PrinterSettings();
ps_Current.PrinterName = cbPrinters.Text;
これは正しく機能し、PrinterSettings 変数が初期化され、PrinterName が選択したプリンターに設定されます。次に、コピー数の下に次のものがあります。
ps_Current.Copies = (short)seAantalKopieen.Value;
これも正しく動作します (Zebra プリンタを除くすべてのプリンタで)。どういうわけか、Zebra プリンターは、コードを使用して入力したものではなく、デフォルトのプリンター設定を使用します。
コードを次のように変更すると:
PrintDialog PD = new PrintDialog();
PD.PrinterSettings = ps_Current;
PD.ShowDialog();
ps_Current = PD.PrinterSettings;
これにより、プリンターと部数を選択できる PrintDialog 画面が表示されます。ここで Zebra プリンタを選択し、部数を 2 に変更すると動作します。しかし、私は Windows PrintDialog を使用したくありません。自分の印刷ダイアログのみが必要です。
Printer:
Source:
Amount of copies:
しかし、私はそれを機能させることができません。