.NET:强制打印机使用默认大小(而不是以前的打印机)

时间:2018-06-27 19:52:56

标签: printing zebra-printers printdialog

上下文:我有一个VB.NET Win Forms应用程序,该应用程序允许用户打印几种不同类型的标签,因此他们需要切换打印机,以便可以在不同的标签库存尺寸上进行打印。 。我们使用几种不同类型的打印机,但在这种情况下,我使用的是GX430t Zebra标签打印机。

问题:在不同尺寸的打印机之间切换时,新选择的打印机上的第一个打印作业始终会错误地保留先前选择的打印机上的打印作业的页面大小...有谁知道为什么/有一个简单的解决办法?我想强制应用程序将打印机设置为使用默认页面大小...

在新选择的打印机上进行第一次打印后,它始终会自行修复,但是除非用户自己进入并自行纠正页面大小,否则第一个标签总是很奇怪。

例如:

这是当我在第一台打印机上打印标签时;大小设置为4x4: enter image description here

这是在切换标签类型并切换到第二台打印机之后: enter image description here 左图是我从应用程序弹出的打印对话框中获得的第二台打印机的打印机属性(请注意,它是第一个打印作业中的4x4!),右图是第二个打印机的默认打印机设置打印机。

打印此标签后,它变形了(因为它试图将4x4放在3x3的纸上),但是在第二张打印纸上,它进行了校正,因此将其设置为自动打印3x3。

解决方法

prt.PrinterSettings.DefaultPageSettings.PaperSize = New PaperSize("Custom", correctWidth, correctHeight)   

现在,我只是使用此代码来覆盖设置为默认页面大小的任何内容,但是我不得不在我们拥有的每一种打印方法中(很多)执行此操作,这让我感到很不雅。

0 个答案:

没有答案