Rakkoc.Com Recep Akkoç / Rakkocun Yazıtları

8Eyl/150

C# ve Printer 2

Merhaba sevgili okurlar,

Ben hep kendim yazıyorum kendim okuyorum diye düşünüyordum ama pek öyle değilmiş. Blog daki yazılar ile ilgili mail ve sms atanlar oldu. Entity framework ve Csharp printer ile ilgili yazılarımın devamını sormuşlar. Entity biraz zor, o konuda db hazırla örnek hazırla vs zaman istiyor. Devam edemeyeceğim o konuya büyük ihtimal ile.

Fazla uzatmadan direk printer ve resim ile ilgili bir basit örnek paylaşayim dedim.

proje dosyasınıda buradan indire bilirsiniz: testApp32

sifre : blog.rakkoc.com

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Printing;
using System.Text;
using System.Windows.Forms;

namespace testApp32
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        PrintDocument pd = new PrintDocument();

        private void Form1_Load(object sender, EventArgs e)
        {
            pd.PrintPage += pd_PrintPage;
        }


        private void btnGetPrinterList_Click(object sender, EventArgs e)
        {
            //ListBox'i temizle
            listBox1.Items.Clear();
            // her bir yuklu printer
            foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
            {
                //listeye ekle.
                listBox1.Items.Add(printer);
            }
        }

        private void btnPrintImage_Click(object sender, EventArgs e)
        {
            //print al
            pd.Print();
        }

        void pd_PrintPage(object sender, PrintPageEventArgs e)
        {
            // Sayfa olcu birimi olarak milimetre kullanacak
            e.Graphics.PageUnit = GraphicsUnit.Millimeter;

            //oylesine bir imaj olusturalim.
            Bitmap biImage = new Bitmap("Yoroca.png");
            // X, Y, Width, height gibi olculer istege bagli milimetrik olarak girilir.
            e.Graphics.DrawImage(biImage, 10, 10);

            //bir tanede string koyalim
            e.Graphics.DrawString("test 1 2 3", new Font("Arial", 4), (Brush)Brushes.Black, 1, 1);

        }

        //listeden Printer secilirse
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                //Secilen printeri printdocument objesinin printer adina atayalim.
                pd.PrinterSettings.PrinterName = Convert.ToString(listBox1.Items[listBox1.SelectedIndex]);

            }
            catch (Exception exp)
            {
                MessageBox.Show(exp.Message);
            }
        }

    }
}