2012-03-23 22 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); 
} 

それは正しく最初のタグにバーコードを印刷しますが、それは停止しません。タグは7x5cmです。私はこれにしたがって用紙サイズを設定しましたが、他に何ができるか分かりません。

編集:falseに設定HasMorePagesは助けにはならなかったと私は私が使用するデバイスのために、それはありません知っている:他のいくつかの私は、現在のバーコードを印刷するのに使用するプログラムと、彼らはすべての作業があります。

+0

は、デバッガを使用してください。 PrintPageラムダコード*と* Print()呼び出しにブレークポイントを設定します。 Print()コールブレークポイントが2回以上ヒットするというかなりのオッズがあります。コールスタックを見て、それがどうなったかを見てください。 –

+0

@ハンス、いいえ、一度だけヒットします。 –

+0

印刷用紙を交換していますか? (大部分の)サーマルプリンタは、ラベルのサイズが変わったことに気づく前に、再度校正する必要があります。 (sManual_English.pdf p27) – charlesbridge

答えて

5

はfalseにeventArgsHasMorePagesプロパティを設定します。

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

あなたの答えをありがとうが、うまくいかなかった。私は電源スイッチをオフにするまで、それはまだ続ける。 –

+0

これはすでに間違っていますが、これは原因ではありません。 –

関連する問題