2012-03-23 10 views
5

Io uso this device per stampare un codice a barre ma la stampante non interrompe la stampa, dandomi tag vuoti fino a quando non la spengo. Ho trovato this question ma specificare le dimensioni della carta non mi ha aiutato.Impossibile interrompere la stampa

Il codice che uso:

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

Centimetri Metodo:

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

Esso stampa il codice a barre al primo tag correttamente, ma non si ferma. I tag sono 7x5 cm. e ho impostato il formato della carta in base a questo, non ho idea di cos'altro posso fare.

Edit: Impostazione HasMorePages false non ha aiutato e so che non è a causa del dispositivo che uso: Ci sono alcuni altri programmi Attualmente uso di stampare codici a barre e tutti lavorano.

+0

utilizzare il debugger. Impostare un punto di interruzione sul codice lambda PrintPage * e * sulla chiamata Print(). Con notevoli probabilità che il breakpoint di chiamata Print() colpisca più di una volta. Guarda lo stack delle chiamate per vedere come è successo. –

+0

@Hans, no, colpisce solo una volta. –

+0

Stai modificando lo stock di stampa? (La maggior parte) Le stampanti termiche devono essere nuovamente calibrate prima che notino che la dimensione dell'etichetta è cambiata. (sManual_English.pdf p27) – charlesbridge

risposta

5

Impostare la HasMorePages proprietà del eventArgs su false:

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

Grazie per la risposta, ma non ha funzionato. Continua a funzionare finché non spengo l'interruttore di alimentazione. –

+0

È già falso, questa non è la causa. –

Problemi correlati