public Bitmap CreateBarcode(string data)
{
data = "55536";
string barcodeData = "*" + data + "*";
Bitmap barcode = new Bitmap(1, 1);
Font threeOfNine = new Font("Free 3 of 9 Extended", 31, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
Font arial = new Font("Arial", 13,
System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point);
Graphics graphics = Graphics.FromImage(barcode);
SizeF dataSize = graphics.MeasureString(barcodeData, threeOfNine);
dataSize.Height = 70;
barcode = new Bitmap(barcode, dataSize.ToSize());
graphics = Graphics.FromImage(barcode);
graphics.Clear(Color.White);
graphics.TextRenderingHint = TextRenderingHint.SingleBitPerPixel;
graphics.DrawString(barcodeData, threeOfNine, new SolidBrush(Color.Black), 0, 0);
graphics.DrawString(data, arial, new SolidBrush(Color.Black), 50, 40);
graphics.Flush();
threeOfNine.Dispose();
graphics.Dispose();
return barcode;
}
ho generare codice a barre con il codice di cui sopra, ma il mio scanner non riesce a leggere il codice a barre generato (per 55536). MA se cambio il valore dei dati su "1111" o "2222", il codice a barre viene letto molto bene. quindi penso che non sia un problema con lo scanner, qualcuno lo sa, cosa c'è di sbagliato in quel codice? per favore consiglio.Generare codice a barre con gratuito 3 su 9 carattere
Da dove hai preso questo carattere? –
E una domanda successiva, può leggere 11111? Non stai davvero confrontando le mele con le mele perché il codice a barre reale è di cinque cifre, ma quelle di prova sono quattro. –
Non correlato, ma si assegna un nuovo Bitmap (1, 1) al codice a barre e successivamente lo si imposta su un'istanza Bitmap diversa. La prima bitmap perde perché non la si elimina mai. Si dovrebbe usare l'istruzione using() con gli oggetti usa e getta poiché renderà più ovvia la portata degli oggetti usa e getta e renderà meno problematica la gestione dello smaltimento. Anche il font Arial perde. – Pete