21 Ocak 2009 Çarşamba

Barkod yazıcısından etiket dökümü.

Bir firma için yazdığım depo uygulamasında barkod yazıcısından etiket dökümü almak için kullandığım kod parçası belki işinize yarar. :)

//YaziciCiktisi Methodunu kullanarak yazıcı ayarları ve seçiminin yapılması istersek print preview ile çıktıyı önce ekrana alabiliriz.
private void YaziciCiktisi()
{
PrintDocument dokuman = new PrintDocument();
PrintDialog yazici = new PrintDialog();
try
{
dokuman.PrintPage += new PrintPageEventHandler(YazdirilacakEtiketBilgileri);
yazici.PrinterSettings = new PrinterSettings();
yazici.Document = dokuman;
yazici.UseEXDialog = true;
if (DialogResult.OK == yazici.ShowDialog(this))
{
dokuman.PrinterSettings.PrinterName = yazici.PrinterSettings.PrinterName;
dokuman.Print();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
dokuman.Dispose();
}
}

//Başlık ve detay satırları şeklinde kullandım. etiketin üst kısmında firma bilgileri ve sonrasında koli içersinendeki ürün bilgileri yazdırdım.
void YazdirilacakEtiketBilgileri(object sender, PrintPageEventArgs e)
{
Font fontFirmaBaslik = new Font("Arial", 12);
Font fontStatik = new Font("Arial", 10);
Font fontDinamikBaslik = new Font("Arial", 9);
Font fontDinamik = new Font("Arial", 7);

e.Graphics.DrawString("FİRMA ÜNVANI", fontFirmaBaslik, Brushes.Black, 130, 10);

e.Graphics.DrawString(lblFirmaUnvani.Text.ToUpper(), fontStatik, Brushes.Black, 10, 40);
e.Graphics.DrawString(": " + txtFirmaUnvani.Text, fontStatik, Brushes.Black, 110, 40);

e.Graphics.DrawString("İLİ", fontStatik, Brushes.Black, 10, 55);
e.Graphics.DrawString(": " + txtIli.Text, fontStatik, Brushes.Black, 110, 55);

e.Graphics.DrawString("ALT MÜŞTERİ", fontStatik, Brushes.Black, 10, 70);
e.Graphics.DrawString(": " + txtAltMusteri.Text, fontStatik, Brushes.Black, 110, 70);

e.Graphics.DrawString(lblIrsaliyeNo.Text.ToUpper(), fontStatik, Brushes.Black, 10, 85);
e.Graphics.DrawString(": " + txtIrsaliyeSeriSiraNo.Text, fontStatik, Brushes.Black, 110, 85);

e.Graphics.DrawString(lblKoliBilgisi.Text.ToUpper(), fontStatik, Brushes.Black, 200, 85);

e.Graphics.DrawString("ÜRÜN KODU", fontDinamikBaslik, Brushes.Black, 10, 120);
e.Graphics.DrawString("ÜRÜN ADI", fontDinamikBaslik, Brushes.Black, 110, 120);
e.Graphics.DrawString("MİKTAR", fontDinamikBaslik, Brushes.Black, 300, 120);
e.Graphics.DrawString("BİRİM", fontDinamikBaslik, Brushes.Black, 350, 120);

int satir = 135, koliNo = 0;


if (_yazKoliNo > 0) koliNo = _yazKoliNo;
else koliNo = _koliNo;

//Detay satırlarını yazdırıyoruz.
for (int i = 0; i < dgSiparisListesi.Rows.Count; i++)
{
if (Convert.ToInt32(dgSiparisListesi.Rows[i].Cells["KOLI"].Value) == koliNo)
{
e.Graphics.DrawString(dgSiparisListesi.Rows[i].Cells["sip_stok_kod"].Value.ToString(), fontDinamik, Brushes.Black, 10, satir);
e.Graphics.DrawString(dgSiparisListesi.Rows[i].Cells["sto_isim"].Value.ToString(), fontDinamik, Brushes.Black, 110, satir);
e.Graphics.DrawString(dgSiparisListesi.Rows[i].Cells["MIKTAR"].Value.ToString(), fontDinamik, Brushes.Black, 310, satir);
e.Graphics.DrawString("ADET", fontDinamik, Brushes.Black, 350, satir);
satir = satir + 15;
}
}
}

1 yorum:

Adsız dedi ki...

Orhan hocam merhaba,

bende barkod basmayla ilgili bir program yapıyorum fakat araştırdıgım kadarıyla bu zebra printerlara özel kodlar mevcut galiba onları pek çözemedim açıkcası.burada takıldıgım bir çok nokta var.varsa programın kodlarını mcwolkan@hotmail.com a mail atabilirmisin?.