Makalemin ilk bölümünde barkod yazıcısından çıktı alma tekniklerinden bahsetmiştim. Bu makalenin ilk bölümüne buradan ulaşabilirsiniz. İlk makalemde iki yöntemden bahsetmiştim ve bunun ilk bölümünü nasıl yapabileceğimizi incelemiştik. Şimdi ise ikinci yöntemden bahsedeceğim. Bunun için Barkod yazıcımızın driver CD nin içersinde bulunan Barkod tasarım programını kuralım. Benim yazıcımın markası Zebra olduğundan ben ZebraDesigner programını kurdum ve aşağıdaki gibi etiketimi tasarlayıp Print ekranında Print to File seçeneğini işaretleyerek şablon dosyamı kaydettim.
Oluşturmuş olduğumuz şablon dosyasını Not defteri ile açıp içeriğini inceleyelim.
Birinci bölümde barkodun başlık bilgileri yazıcı ayarları bulunmaktadır. İkinci bölmde ise yazılacak verileri ve kordinatları içermektedir. Biz hazırlayacağımız prgramdan bu dosyaya erişip etikete yazılacak yazıyı ve barkod numarasını değiştireceğimizden dosyamızdaki ikinci bölümde bulunan satırı aşağıdaki gibi değiştirelim.
A665,62,2,4,1,1,N,"*Yazi"
B339,84,2,1,3,9,46,B,"*Barkod"
Amacım * ile başlayan yanı *Yazi değişkenini Programız çalışıyorken bulup ve yerine yazdırmak istediğimiz yazıyı yazdırmak. Bir adet Windows Form Uygulaması açıyoruz ve Formumuza bir adet Button bir adette PrintDocument nesnesi ekliyoruz. Projemize using System.IO; namespacesini eklemeyi unutmayalım. Butonumuzun Click Eventinede aşağıdaki kodları yazalım.
StreamReader SR = new StreamReader("Temp.prn", Encoding.Default);
String Temp = SR.ReadToEnd();
SR.Close();
Temp = Temp.Replace("*Yazi", "Merhaba");
Temp = Temp.Replace("*Barkod*", "147852369");
printDocument1.DocumentName = Temp;
printDocument1.Print();
Bu kod parçası şablonumuzu açarak içeriğini okur ve verdiğimiz değişken isimlerini bularak verdiğimiz değerlerle değiştirip yazdırır.
Umarım faydalı olabilmişimdir. Bir sonraki makalemizde görüşmek üzere.
Barcode.rar (39,51 kb)
Barkod yazıcı kullanarak barkod basmak gerektiğinde kullanılabilecek 2 ana yöntem vardır
Yazıcıyı windows sürücüleri ile yüklemek ve herhangi bir windows yazıcısı gibi kullanmak
Yazıcının desteklediği PPLA, PPLB, ZPL gibi barkod basma komut setlerini kullanarak yazıcı ile konuşmak
Makalemin ilk bölümünde ilk seçenekteki gibi normal bir yazıcı olarak nasıl barkod çıktısı alabileceğimizi inceleyecez. Kullanacagımız yazıcı modeli ZDesigner TLP 2844. Yazıcımızı bilgisayara bağlayıp gerekli sürücüleri yükledikten sonra yazıcıyı aşağıdaki resimlerdeki gibi ayarlıyoruz.
Yukarıdaki ilk resimde işraretlediğim alana siz kendi etiketinizin boyutlarını girmeyi unutmayın. Barkod için biz FRE3OF9X.TTF fontunu kullanacağız. Fontu buradan indiebilirsiniz. Bir adet Windows Form Uygulaması açıyoruz ve Formumuza bir adet Button bir adet PrintDialog ve bir adette PrintDocument nesnesi ekliyoruz. Projemize using System.Drawing.Text; namespacesini eklemeyi unutmayalım PrintDocument nesnemizin PrintPage Event'ine aşağıdaki gibi kodlarımızı yazıyoruz.
PrivateFontCollection pfc = new PrivateFontCollection();
pfc.AddFontFile("Font/FRE3OF9X.TTF"); // Fontumuzun projemizde bulunduğu adresi belirtiyoruz.
FontFamily fmy = new FontFamily("Free 3 Of 9 Extended", pfc);// Belirttiğimiz font dosyasındaki hangi font ailesini kullanacağımızı belirtiyoruz.
Font fb = new Font(fmy, 16);// Belirttiğimiz font ailesinden Fontun boyutunu belirtiyoruz.
Font f = new Font("Arial", 10);
Brush b = Brushes.Black; // Kullanacagımız rengi seciyoruz.
Graphics gr = e.Graphics;
gr.DrawString("Merhaba.", f, b, 30, 18);// Etikete yazılacak olan yazıyı, fontu, rengi, ve X Y kordinatlarını belirtiyoruz.
gr.DrawString("147852369", fb, b, 30, 28);// burada fonta dikkat projemize eklediğimiz barkod fontunu seciyoruz.
Butonumuzun Click Eventinede aşağıdaki kodları yazalım.
printDialog1.Document = printDocument1;
printDocument1.PrinterSettings.PrinterName = "Etiket 1";
printDocument1.Print();
Projemizi derleyip çalıştıralım ve butona tıkladığımızda belirtilen kordinatlarda yani üstte "Merhaba." yazısı ve altta "147852369" rakamlarına karşılık gelen borkod çıktısı alacağız. Bir sonraki makalemde yanı barkod çıktısının ikinci bölümü olan kısma değineceğiz.
Bir sonraki makalede görüşmek üzere .Net'le kalın:).
Bu yazımda C# ve .Net 3.5 yardımı ile Microsoft Word belgesindeki bir degeri bulup değiştireceğiz. Bu işlemi bir uygulamada dökümanı yazdırıken bazı alanları değiştirerek dinamik bir word döküman oluşturabilirsiniz. Bir projede dinamik word dökümanı oluşturulması gerekiyordu ben bu şekilde bir çözüm ürettim ve sizlerinde ihtiyacı olabileceğini düşündüm.
Visual Studio 2008 de bir Windows Forms Application açarak işlemlere başlayalım. İlk olarak Solution Explorer da projemize sağ tıklayara Add Referance diyerek Microsoft Word 12.0 Objet Library refesans olarak ekleyelim. Bende Office 2007 kurulu olduğundan dolayı ben Microsoft Word 12.0 Objet Library ekledim sizde farklı bir office sürümü varsa bu değişebilir. (Mesala Office 2003 için Microsoft Word 11.0 Objet Library gibi.)
Referansımızı ekledikten sonra kullanabilmek için aşağıdaki isim alanlarını ekleyelim. İsim alanlarınıda ekledikten sonra formumuzun üzerine bir adet Button ve bir adet de OpenFileDialog kontrolü ekleyerek kodlarımızı yazmaya başlayalım.
using System.Reflection;using Microsoft.Office.Core;using Word = Microsoft.Office.Interop.Word;
Bir word belgesi açarak içeriğini aşağıdaki gibi düzenleyelim;
Adı: <Adi>Soyadı: <Soyadi>Telefon: <Telefon>e-posta: <eposta>
Küçük büyük işareti ve arasındaki kelimeyi buldurup değiştirteceğiz. Bunun için bir BulveDegistir isminde bir metot oluşturuyoruz ve içeriği aşağıdaki gibi düzenliyoruz.
private void BulveDegistir(Word.Application WordApp, object findText, object replaceText){bject matchCase = true; object matchWholeWord = true; object matchWildCards = false; object matchSoundsLike = false; object matchAllWordForms = false;object forward = true; object format = false; object matchKashida = false; object matchDiacritics = false;object matchAlefHamza = false; object matchControl = false; object read_only = false; object visible = true; object replace = 2; object wrap = 1; WordApp.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord, ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceText, ref replace, ref matchKashida, ref matchDiacritics, ref matchAlefHamza, refmatchControl);}
Bu metoda aranacak ve değiştirilecek kelimeleri yollayarak bulup ve değiştirmesini sağlıyoruz.
Formumuzda bulunan button1 in click event'i ise aşagıdaki gibi olacak.
private void button1_Click(object sender, EventArgs e){if (openFileDialog1.ShowDialog() == DialogResult.OK){ object missing = Missing.Value;Word.Application WordApp = new Word.ApplicationClass(); //WordApp isminde word nesnesi tanmlyoruz. ,bject filename = openFileDialog1.FileName; //OpenFileDialog penceresinden etiimiz dknann yolunu alyoruz.object readOnly = false;object isVisible = true;//Gerekli ayarlar yapldktan sonra word dosyasn ayoruzWordApp.Documents.Open(ref filename, ref missing, ref readOnly, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing, ref missing);// BulveDegistir metoduna aranacak kelimelerle deitirilecek kelimeleri yolluyoruz.
BulveDegistir(WordApp,
"<Adi>", "Bilal");BulveDegistir(WordApp, "<Soyadi>", "KORKMAZ");BulveDegistir(WordApp, "<Telefon>", "01234567890");BulveDegistir(WordApp, "<eposta>", "bk@bilalkorkmaz.com");WordApp.Visible = true; // Son olarakta Office uygulamasını görünür hale getiriyoruz.}}
Son olarak projemizi derleyip çalıştırıyoruz ve açılan ekranda butona tıklayarak olusturduğumuz Word dökümanını şeciyoruz ve karşımıza gelen word ekranında sayadaki verilerin gönderdiğimiz verilerle değiştiğini görüyoruz.
Bu uygulamayı istediğiniz gibi geliştirip projelerinizde kullanarak dinamik word dökümanları oluşturabilirsiniz.
Umarım yararlı olabilmişimdir. Bir sonraki makalemizde grüşmek üzere...
Bloğuma ilk yazımımdan sonra fazla zaman geçmeden tekarar sizlerleyim. Bu yazımda BlogEngine'deki urllerde oluşan Türkçe karakterler daha doğrusu urldeki "ı" karakterinin çözüm yolundan bahsedeceğim. Diğer Türkçe karakterlerde herhangi bir sorun yok sadece küçük "ı" karakterinde sorun var. İlk yazımı yazdıımda urldeki "http://www.bilalkorkmaz.com/post/Ilk-Yazc4b1m.aspx" "ı" karakterinin yerne değişik bir karakter kümesinin çıktığını farkettim hemen BlogEnginenin kaynak kodlarını açarak incelemeye başladım ve kısa bir süre içerisinde sorunu hallettim. BloagEnginenin kaynak kodlarını açarak işlemlere başlayalım. (BloagEnginenin kaynak kodlarını indermek için buradan "BlogEngine.NET 1.6 (source)" isimli linki tıklayarak indirebilirsiniz.) Projeyi Vusial Studio ile açtıktan sonra Solution Explorer'da BlogEngine.Core katmanının altındaki "Utils.cs" Class dosyasını açalım. "Utils.cs" Class dosyasını açtıktan sonra "RemoveIllegalCharacters" methoduna "text = text.Replace("ı", "i");" kod parçaçığını ekleyip projeyi derleyelim.
Bin klasörünün altında oluşan dosyaları BlogEngine kurulu olan hostingimizdeki aynı klasöre yolladıktan sonra işimiz bitiyor. Yaptığımız bu değişiklikten sonra yazacağımız yazıların urllelerinde herhangi bir Türkçe karakter sorun olmayacatır.
Bir sonraki makalemizde görüşmek üzere.