【发布时间】:2015-03-20 09:56:11
【问题描述】:
嗯,这是一个很奇怪的问题,我已经找到了一个黑色的魔法解决方案。我很好奇原因。
我正在编写一个程序,它使用 Brother QL-700 标签打印机来打印标签。我需要在不显示打印机对话框的情况下打印标签。 标签打印机支持不同尺寸的标签卷,标签卷的默认尺寸是29mm,而我需要的是62mm。我发现我可以通过
设置页面大小PrintDocument doc = new PrintDocument();
PaperSize size = new PaperSize() ;
size.Width = 244;//2.44 inch = 62mm
size.Height = 244;
size.RawKind = 256;//RawKind=0 does not work, I don't know why
doc.PrinterSettings.DefaultPageSettings.PaperSize = size;
但是,这不起作用,打印机的驱动程序会显示一条消息,说宽度不适合。
但是如果我从PrintDialog() 更改了PrinterSettings 的副本,而不显示它,
PrintDialog dlg = new PrintDialog();
doc.PrinterSettings = dlg.PrinterSettings;
然后就可以了。
总之,我不明白的是为什么
size.RawKind = 256;
和
PrintDialog dlg = new PrintDialog();
doc.PrinterSettings = dlg.PrinterSettings;
可以让打印机工作吗?
【问题讨论】: