我对 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:
但我无法让它工作。