【问题标题】:In C#, what's the difference of PrinterSettings from a PrintDocument and PrintDialog?在 C# 中,PrintDocument 和 PrintDialog 中的 PrinterSettings 有什么区别?
【发布时间】: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;

可以让打印机工作吗?

【问题讨论】:

    标签: c# driver printers


    【解决方案1】:

    RawKind 的文档没有说明 0 是有效值。它还指出,任何高于 118 的值都表示自定义纸张尺寸。由于您要指定自定义纸张尺寸,因此值 256 表示该尺寸是自定义的,这就是它起作用的原因。

    【讨论】:

    • 哦,我明白了。你知道PrintDialog和PrintDocument的默认PrinterSettings的区别吗?
    猜你喜欢
    • 2012-03-31
    • 1970-01-01
    • 2014-03-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 2010-10-01
    相关资源
    最近更新 更多