C# Can';不要停止印刷

C# Can';不要停止印刷,c#,printing,barcode,C#,Printing,Barcode,我过去常常打印条形码,但打印机不会停止打印,直到我关闭它,才会给我空标签。我找到了,但指定纸张大小对我没有帮助 我使用的代码是: PrintDocument document = new PrintDocument(); document.DefaultPageSettings.PaperSize = new PaperSize("Custom", Centimeters(7), Centimeters(5)); document.PrintPage += (s, a) => {

我过去常常打印条形码,但打印机不会停止打印,直到我关闭它,才会给我空标签。我找到了,但指定纸张大小对我没有帮助

我使用的代码是:

PrintDocument document = new PrintDocument();
document.DefaultPageSettings.PaperSize =
    new PaperSize("Custom", Centimeters(7), Centimeters(5));
document.PrintPage += (s, a) =>
{
    a.Graphics.DrawString("*123456*",
                          BarcodeFont,
                          new SolidBrush(Color.Black),
                          new Point(0, 0));
}
document.Print();
厘米法:

// Converts the unit "Hundredths of an inch" to centimeter.
int Centimeters(int centimeters)
{
    return (int)((centimeters * 100) / 2.54);
}
它正确地将条形码打印到第一个标签,但不会停止。标签为7x5厘米。我根据这个设定纸张尺寸,我不知道我还能做什么


编辑:将HasMorePages设置为false没有帮助,我知道这不是因为我使用的设备:我目前使用一些其他程序来打印条形码,它们都可以工作。

事件参数的
HasMorePages
属性设置为false:

document.PrintPage += (s, a) =>
{
    a.Graphics.DrawString("*123456*",
                          BarcodeFont,
                          new SolidBrush(Color.Black),
                          new Point(0, 0));
    a.HasMorePages = false;
}

谢谢你的回答,但没有用。在我关掉电源开关之前,它一直在运行。它已经是错误的,这不是原因。请使用调试器。在PrintPage lambda代码和Print()调用上设置断点。Print()调用断点多次命中的可能性很大。看一下调用堆栈,看看这是怎么发生的。@Hans,不,它只命中一次。你在更改打印库存吗?(大多数)热敏打印机需要重新校准才能注意到标签尺寸已更改。(sManual_English.pdf第27页)这个问题已经问了8年了。。。但我迫切需要知道解决这个问题的方法。。。希望萨法克看到这条消息……对不起@EHOng,这是我的第一份工作,我到了一个甚至都不记得早餐吃了什么的年龄。:)我也没有那个时代的任何证据可供参考。关于这个应用程序,我记得的唯一一件事是,我们实际上已经发布了它,而且它的打印效果还不错(我知道这帮不了什么忙——再次为没有及时更新这里而道歉)。