Herkeze merhaba,
C# ile bildiğimiz klasik yöntemler ile (print page, print document vs. vs.) barkod oluşturup bunu yazdırabilirmiyiz ??
Cevap evet,nasıl mı??
İş hayatında hemen hemen herkes bu konuyla ilgili hiçbir bilgisi olmadığı halde uygulama geliştirmeye zorlanmıştır. İşte aynı durum geçtiğimiz günlerde karşıma çıktı.Bir Connection string ve birkaç tablo ismi,ek olarak birde barkod yazıcı.Neyse
Kullandığım Zebra LP 2844 marka ve modelli bir barkod yazıcı.Hemen eski yaptığım uygulamalara göz gezdirdim,Hatırladığım daha önce kullandığım bir class ile bu işi halledebileceğimdi.Class ı makale sonunda paylaşacağım ,class ın yaptığım uygulamadaki görevi verdiğim parametreler ile bana barkod oluşturması.
Peki yazdırma işlemi ?? Kodları görünce bu işin ne kadar kolay olduğunu göreceksiniz.
ihtiyacımız olan class
PrintDocument doc = new PrintDocument();
Kod kısmında örenğini aldığım PrintDocument classımın PrintPage eventini yakalamak için
doc.PrintPage += new PrintPageEventHandler(doc_PrintPage);
+= işaretlerinden sonra <strong>Tab</strong> tuşuna 2 kez basarsanız
void doc_PrintPage(object sender, PrintPageEventArgs e)
{
}
oluştuğunu göreceksiniz işte tüm yazdırma işlemleri bu metodun içinde gerçekleşiyor.
yazdırma kodlarını paylaşmadan önce barkodun nasıl oluşturulacağına değinmeliyim.
İndirdiğiniz classı projenize dahil edin.Uygulamanızda clasın örneğini alın
Ean13Barcode2005.Ean13 barcode = new Ean13Barcode2005.Ean13();
oluşturduğumuz barcode örneğinin şu özelliklerine
//bu kod barkodun ilk 2 hanesi -ülke kodu
barcode.CountryCode = "90";
//Bu kod üretici-imalatçı numarası -bu kısımın legal illegal gibi durumları da var
barcode.ManufacturerCode = "1234";
//Bu kod ürün kodu -ID si falanı felanı
barcode.ProductCode = "000001";
//Bu kısım boş geçilsede birşey değişmiyor EAN-13 te zaten 12 veri okuyorsunuz ,bu sayı barkodun sonunda oluyor.
barcode.ChecksumDigit = "5";
Barkod da oluştuğuna göre Print Page olayımıza dönebiliriz.Kodlar şöyle
void doc_PrintPage(object sender, PrintPageEventArgs e)
{
//Burda Barkod Kağıdının başına Ben büyük Punto ile Başlık-Firma adı yazıyorum
e.Graphics.DrawString("FİRMA ADI", new System.Drawing.Font(new FontFamily("Arial"), 15, FontStyle.Bold), Brushes.Red, new PointF(50, 5));
//Gerekli bir kaç bilgi veriyorum
e.Graphics.DrawString("Telefon : (212) 123 12 12Fax : (212) 123 12 12", new System.Drawing.Font(new FontFamily("Arial"), 8, FontStyle.Bold), Brushes.Red, new PointF(18, 45));
//Burası önemli aşağıdaki kod bakodu yazan kod
barcode.DrawEan13Barcode(e.Graphics, (new PointF(25, 50)));
//Aşağıdaki kodlara ek olarak ben Elektronik Tartı cihazından gelen verileri aktarmıştım
e.Graphics.DrawString("Lot :", new System.Drawing.Font(new FontFamily("Arial"), 10, FontStyle.Bold), Brushes.Red, new PointF(20, 120));
e.Graphics.DrawString("Brt :", new System.Drawing.Font(new FontFamily("Arial"), 10, FontStyle.Bold), Brushes.Red, new PointF(20, 145));
e.Graphics.DrawString("Net :", new System.Drawing.Font(new FontFamily("Arial"), 10, FontStyle.Bold), Brushes.Red, new PointF(20, 165));
}
Evet butonumuz yada yazdırma işlemini uygulayacağımız kontrole Print() metodunu verdikten sonra denemeler yapabilirsiniz. Unutulmaması gereken
kodların sağındaki new pointf ler bunlar sayfadaki koordinat oluyor ve yine unutmamanız gereken şey yazıcınızı kurduktan sonra sağlıklı çıktı almak
istiyorsanız yazıcı özelliklerinizden sayfa boyutlarını belirtmeniz.
Şimdilik bu kadar herkeze iyi çalışmalar.
Barkod Class için TIKLA