C# dataGridView’den PDF Dosyasına Veri Aktarma

Bu yazımızda Datagridview deki kayıtlarımızı nasıl pdf dosyasına aktaracağımıza bakacağız.

Öncelikle projemize İtextSharp kütüphanesini eklememiz gerekmektedir. Açık kaynaklı olan bu kütüphane ile içeriklerimizi Pdf çevirebiliriz.

İtextSharp kütüphanesini indirmek için Tıklayınız .

Kütüphanemizi indirdikten sonra projemize ekleyelim Türkçe olanlar için Başvurular sağ tıklayıp başvuru ekle diyip itextsharp.dll kütüphanemizi referans olarak ekleyelim

Daha sonra kod kısmına geçebiliriz.

using System;
using System.IO;
using System.Windows.Forms;
using iTextSharp.text.pdf;
using iTextSharp.text;

namespace Proje1
{
  class pdfAktar
   {
       public static void pdfKaydet(DataGridView veriTablosu)
       {
           try
           {
               PdfPTable pdfTablosu = new PdfPTable(veriTablosu.ColumnCount);
               pdfTablosu.DefaultCell.Padding = 3;
               pdfTablosu.WidthPercentage = 100;
               pdfTablosu.HorizontalAlignment = Element.ALIGN_LEFT;
               pdfTablosu.DefaultCell.BorderWidth = 1;
               foreach (DataGridViewColumn sutun in veriTablosu.Columns)
               {
                   PdfPCell pdfHucresi = new PdfPCell(new Phrase(sutun.HeaderText));
                   pdfHucresi.BackgroundColor = Color.LIGHT_GRAY;
                   pdfTablosu.AddCell(pdfHucresi);
               }
               foreach (DataGridViewRow satir in veriTablosu.Rows)
               {
                   foreach (DataGridViewCell cell in satir.Cells)
                   {
                       pdfTablosu.AddCell(cell.Value.ToString());
                   }
               }

               SaveFileDialog dosyakaydet = new SaveFileDialog();
               dosyakaydet.FileName = "projePDfDosyaAdı";
               dosyakaydet.InitialDirectory = Environment.SpecialFolder.Desktop.ToString();
               dosyakaydet.Filter = "PDF Dosyası|*.pdf";
               if (dosyakaydet.ShowDialog() == DialogResult.OK)
               {
                   using (FileStream stream = new FileStream(dosyakaydet.FileName, FileMode.Create))
                   {
                       Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
                       PdfWriter.GetInstance(pdfDoc, stream);
                       pdfDoc.Open();
                       pdfDoc.Add(pdfTablosu);
                       pdfDoc.Close();
                       stream.Close();
                       MessageBox.Show("PDF dosyası başarıyla oluşturuldu!\n" + "Dosya Konumu: " + dosyakaydet.FileName, "İşlem Tamam");
                   }
               }
           }
           catch (Exception hata)
           {
               MessageBox.Show(hata.Message);
           }
       }
   }
}

Yukarıdaki kodlarımızı inceleyerek daha detaylı bilgi edinebilirsiniz .

Kullanımı :

Kullanımı için pdfAktar.pdfKaydet(dataGridView1); şeklinde ilgili kısımda tanımlama yapmanız yeterlidir. dataGridView1  yerine eger nesne için farklı bir nesne adı belirlediyseniz onu kullanmanız gerekmektedir.

 

Read More