2012-03-23 107 views
5

我使用this device打印條形碼,但打印機不停止打印,直到關閉它纔給出空標籤。我發現this question,但指定紙張大小並沒有幫助我。無法停止打印

我使用的代碼:

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的假沒幫助,我知道這是不是因爲我用的裝置:有我目前使用的打印條碼其他一些程序,他們的所有工作。

+0

使用調試器。在PrintPage lambda代碼*和* Print()調用上設置一個斷點。 Print()調用斷點不止一次觸發的可能性很大。看看調用堆棧,看看發生了什麼。 – 2012-03-24 14:25:13

+0

@Hans,不,它只擊中一次。 – 2012-03-26 08:06:49

+0

您是否在更換打印紙? (大部分)熱敏打印機需要重新校準才能注意到標籤尺寸已經改變。 (sManual_English.pdf p27) – charlesbridge 2012-03-26 11:28:19

回答

5

設置eventArgsHasMorePages屬性設置爲false:

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

謝謝你的回答,但它沒有奏效。它仍然繼續,直到我關掉電源開關。 – 2012-03-23 22:02:53

+0

這已經是假的,這不是原因。 – 2012-03-24 14:23:25