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,这是我的第一份工作,我到了一个甚至都不记得早餐吃了什么的年龄。:)我也没有那个时代的任何证据可供参考。关于这个应用程序,我记得的唯一一件事是,我们实际上已经发布了它,而且它的打印效果还不错(我知道这帮不了什么忙——再次为没有及时更新这里而道歉)。