Pazartesi, Şubat 06, 2006

DYMO ve 20000 etiket

Geçen sene kurum içinde kullanılmak üzere geliştirdiğim demirbaş otomasyonunda kullandığımız DYMO LM450 ile yaklaşık olarak 20000 adet etiket başmışız. Geçen hafta arıza için servise gönderdiğimizde , artık printer için bir şey yapılamayacağını söylemişler.

Dymo LM450 nin özelliği, desktop için kullnılan , klavyesi de olan, istenilen datayı kendi etiketlerine basabilmesi.

Demirbaş uygulamasında en büyük problem etiketin uzunluğu ayarlabilmek ve yazıcının düşük özellikli termal başlığından barkod ve resim basabilmekti.

Brush br = new SolidBrush(Color.Black);
if (m_change_settings)
{
EtiketPrinterSettings sd = new EtiketPrinterSettings();
PrinterData pss = new PrinterData();

pss.Duplex = PageDuplex.DMDUP_SIMPLEX;
pss.Size = PaperSize.DMPAPER_USER;
pss.source = PaperSource.DMBIN_FORMSOURCE;
pss.Orientation = PageOrientation.DMORIENT_LANDSCAPE;
sd.MyEtiketUzunluk = m_e_uz;
sd.MyEtiketWidth = m_e_w;
sd.ChangePrinterSetting(m_PrinterName,pss);
}

if (m_show_image)
{

Bitmap bmp = new Bitmap("amblem.bmp");
g.DrawImage(bmp, 0, 0 , 50, 50);

g.DrawString( m_Header , m_PrintFont, br, 40, 0);
g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, 52, 10);
//g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, rfet);
}
else
{
g.DrawString(m_Header , m_PrintFont, br, 5, 5);
m_BarcodeFont = new Font("CarolinaBar-25F2", 10);
g.DrawString( "*" + m_BarcodeData +"*" , m_BarcodeFont, br, 10, 13);
if(m_ShowHumanReadable)
{
g.DrawString(m_label_info, m_PrintFont, br, 5, 40);
}
}

yordamıyla standart graphics işlemlerini kullanrak printerdan çıktıları alıyorum. Buradaki EtiketPrinterSettings nesnesi intenet ve microsofta bulunabilen standart winspool.drv implementasyonu. Etiket boyuda standar DEVMODE içinde tanımlı değişkenlerden ayarlanabiliyor.

Hiç yorum yok: