2012-03-23 20 views
5

Barkod yazdırmak için this device kullanıyorum ancak yazıcı kapatmayı durdurana kadar boş etiketler veriyor. this question numaralı telefonu buldum ancak Paper Size'nin belirtilmesi bana yardımcı olmadı. KullandığımBaskı durdurulamıyor

kodu:

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(); 

Santimetre Yöntem:

// Converts the unit "Hundredths of an inch" to centimeter. 
int Centimeters(int centimeters) 
{ 
    return (int)((centimeters * 100)/2.54); 
} 

Bu doğru ilk etikete barkod yazdırır ama durmaz. Etiketler 7x5 cm. ve kağıt boyutunu buna göre ayarladım, başka ne yapabileceğimi bilmiyorum.

Düzenleme: false Ayar HasMorePages yardım etmedi ve kullandığım cihazın olduğundan değil biliyorum: diğer bazı Şu anda barkod yazdırmak için kullanmak programları ve hepsi iş vardır.

+0

kullanın ayıklayıcı. PrintPage lambda kodu * ve * Print() çağrısında bir kesme noktası ayarlayın. Print() çağırma noktasının bir kereden fazla çarpmasıyla ilgili önemli oranlar. Nasıl olduğunu görmek için çağrı yığınına bak. –

+0

@Hans, nope, sadece bir kez vurur. –

+0

Baskı stoğunu değiştiriyor musunuz? (Çoğu) Termal yazıcıların etiket boyutunun değiştiğini fark etmeden önce kalibre edilmesi gerekir. (sManual_English.pdf p27) – charlesbridge

cevap

5

Seti false eventArgs arasında HasMorePages özelliği:

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

Cevabınız için teşekkür ederiz ama işe yaramadı. Güç anahtarını kapatana kadar hala devam ediyor. –

+0

Zaten yanlış, nedeni bu değil. –