By LaZoLi53 Administratör
Mesaj Sayısı : 152 Nerden : mars\'dan İş/Hobiler : pc,hacked Kayıt tarihi : 18/02/08
By Poyraz masterhack: (0/0)
| Konu: Java Uygulamasından Yazıcıya Bilgi Yollamak C.tesi Mart 22, 2008 12:39 pm | |
| Java Uygulamasından Yazıcıya Bilgi Yollamak Java'da print işlemleri AWT vasıtasıyla gerçekleştiriliyor. Bizim için en önemli sınıf java.awt.PrintJob sınıfı. Bu sınıf vasıtasıyla yazıcınızın özelliklerini öğrenebilirsiniz. Bunun için aşağıdaki fonksiyonlar mevcuttur. int getPageResolution() Dimension getPageDimension() boolean lastPageFirst() getPageResolution( ): Inç başına düşen nokta sayısını verir. getPageDimension( ): Yazılabilir alanın piksel olarak boyutlarını verir. lastPageFirst( ): Eğer son sayfa ilk önce basılacak ise true yollar, en son basılacaksa false yollar. Eğer bu kodu bir frame içinde çalıştırdığımız düşünürsek bu kod aşağıdaki gibi olacaktır. java.awt.PrintJob pjob = getToolkit().getPrintJob( this,"Liste Yazimi", ozellikler); Burada this kullandığımız Frame'i ifade ediyor. Yukardaki fonksiyonlardan dönen bilgileri kullanarak sayfaya çizim işlemlerinin nasıl gerçekleşeceğini kendiniz belirleyeceksiniz. Kısacana bu bilgiler yardımıyla kağıdın dışına taşmamayı ve kağıtların basım sırasına göre yazıcıya gidecek bilgiyi ayarlayacaksınız. İlk olarak bir PrintJob nesnesine ihtiyacımız var. Çizim işlemi appletin draw fonksiyonundaki gibi java.awt.Graphics sınıfı yardımıyla gerçekleşir. Bu sınıfın desteklediği her türlü çizim işlemini yapabilirsiniz. Grephics nesnesini PrintJob'tan aşağıdaki şekilde ulaşmalısınız. java.awt.Graphics sayfa = pjob.getGraphics(); Şimdi sıra unutmamanız gereken noktaya geldi. PrintJob'tan alınan Graphics objesinine bir font atanmamıştır. Eğer sizde bir font atamazsanız program sırasında exception yemektesiniz. Bundan dolayı Graphics nesnesini çizim için kullanmadan önce fontunu ayarlamalısınız.
Font helv = new Font("Helvetica", Font.PLAIN, 12); sayfa.setFont(helv); Fontumuzuda ayarladığımıza göre artık çizim işlemlerine geçebiliriz. Burada başlangıçtada bahsettğimiz bir kaç noktaya tekrar deyinmemizde yarar görmekteyim. Sayfaya çizim yaparken sayfanın dışına çizdirme yapmamak için belli kontroller yapmalısınız. ( eni aşmama, boyu aşmama gibi ) . Bu işlem için ise kullandığınız fontun boyutları bilimenizde yarar var. Aşağıda bir fontun boyutlarının naıl alınacağına dağir kodları görebilirsiniz. FontMetrics fm = sayfa.getFontMetrics(helv); int fontHeight = fm.getHeight(); int fontDescent = fm.getDescent(); Bu işlemden sonra istediğiniz çizimleri yapabilirsiniz. Her sayfa sonunda Graphics nesnesini dispose edip, yeni sayfa için PrintJob'tan tekrar istemelisiniz. Yazıcıya bilgiler Graphics nesnesi dispose olduktan sonra yollanmaktadır. Sayfa sonları için aşağıdakine benzer bir kod görebilirsiniz. Dikkat edilecek olursa fontu set etmeyi unutmuyoruz. sayfa.dispose(); sayfa = pjob.getGraphics(); if (sayfa != null) { sayfa.setFont (helv); } En sonuda da PrintJob işlemini end( )ile sonlandırıyoruz. pjob.end(); Örnek Program: Yazımış olduğum örnek uygulama bir frame içersinde bir list, button, text field ve label dan oluşmaktadır. Textfield'e yazdıktan sonra enter'a bastığınızda text field içindeki bilgi listeye eklenmekte . Yaz buttonuna bastığınızda ise bu bilgi yazıcıya gönderilmektedir. Bu sırada label içersinde durumu belirten mesajlar yazılmaktadır. Yazdırma işlemi program içersinde yaz() fonksiyonunda yapılmaktadır Programdan bir görüntü aşağıdaki gibidir. Bu görüntü yaz tuşuna basıldıktan sonra elde edilmiştir. Yaz tuşuna basıldığında Yazıcıya ait ekran geliyor. Programı nasıl çalıştıracağım Kodu javac PrintTest2.java şeklinde derleyiniz. PrintTest2.class dosyası oluşacak java PrintTest2 şeklinde programı çalıştırınız.
Programı İndirmek İçin Tıkla | |
|