我有一个关于PrinterSettings in C#的问题。当我在桌面打印机上将PrinterSettings.Copies设置为2时,它将打印2个文档。
但是,当我在Zebra GK420d Label printer上将副本设置为2时,我定义的拷贝数将被打印机覆盖,默认拷贝数。斑马打印机是唯一允许我在打印机设置(启动->设备和打印机->打印机属性)中定义副本数量的打印机。
但是,当我打开一个PrintDialog并将其中的拷贝数设置为2个时。但如果我按程序来做它就行不通了。以下是我的情况:
表单:打印机设置,当我加载表单时,将执行以下代码
ps_Current = new PrinterSettings();
ps_Current.PrinterName = cbPrinters.Text;这是正确的,PrinterSettings变量被初始化,PrinterName被设置为我选择的打印机。然后,在副本的数量下,我有以下内容:
ps_Current.Copies = (short)seAantalKopieen.Value;这也是正确的(除了斑马打印机以外的所有打印机)。不知何故,斑马打印机采用默认打印机设置,而不是我使用代码放入的打印机设置。
当我将代码更改为:
PrintDialog PD = new PrintDialog();
PD.PrinterSettings = ps_Current;
PD.ShowDialog();
ps_Current = PD.PrinterSettings;这将给我一个PrintDialog屏幕,在那里我可以选择打印机和拷贝的数量。如果我在这里选择斑马打印机,并将副本更改为2,它将工作。但是我不想使用PrintDialog,我只想使用我自己的打印对话框:
Printer:
Source:
Amount of copies:但我不能让它起作用。
发布于 2014-12-18 05:32:35
当您调用PD.ShowDialog()时,您允许用户更改他们想要的任何设置。当用户单击OK打印文档时,他们选择的设置将更新PD.PrinterSettings。您应该可以通过以下操作打印两份:
PrintDialog PD = new PrintDialog();
PD.ShowDialog();
ps_Current = PD.PrinterSettings;
// Essentially you override what the user chose, which can be frustrating for the user.
ps_Current.Copies = (short)seAantalKopieen.Value;https://stackoverflow.com/questions/27109035
复制相似问题