2012-03-23 2 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 на false не помогла, и я знаю, что это не из-за устройства, которое я использую: Есть некоторые другие программы, которые я использую для печати штрих-кодов, и все они работают.

+0

Используйте отладчик. Установите точку останова на лямбда-код PrintPage * и * вызов Print(). Имея значительные шансы на то, что точка останова печати() встречается более одного раза. Посмотрите на стек вызовов, чтобы узнать, как это произошло. –

+0

@ Ханы, нет, он попадает только один раз. –

+0

Вы меняете печать? (Большинство) Термальные принтеры необходимо откалибровать, прежде чем он заметит, что размер этикетки изменился. (sManual_English.pdf p27) – charlesbridge

ответ

5

Установите HasMorePages свойство eventArgs ложь:

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

Спасибо за ваш ответ, но это не сработало. Он все еще продолжается, пока я не выключу выключатель питания. –

+0

Это уже неверно, это не причина. –