Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
C# dataGridView'den PDF Dosyasına Veri Aktarma
#1
Merhaba Arkadaşlar;

DataGridView'den PDF dosyasına veri aktarmak için oluşturup düzenlediğim class c# proje dosyasını ve gerekli dll kütüphane dosyasını sizlerle paylaşmak istiyorum. Aşağıda sınıf kodlarını  yazı içinde paylaştı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. Bu işlemde esas işi yapan aşağıda paylaşacak olduğum itextsharp.dll kütüphane dosyasıdır ve bu dosyayı projenizde referans olarak eklemelisiniz.

Kod:
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);
           }
       }
   }
}

İNDİR

ALTERNATİF İNDİR

Not: Dosya silinmemesi adına 4shared.com'a yüklenmiştir. Dns kullanarak 4shared.com dosya paylaşım sitesine erişip dosyayı indirebilirsiniz. DNS kolayca değişmek için buradaki programı kullanabilirsiniz. DNS değişikliğinin ardından etkili olabilmesi için tarayıcınızı kapatıp açmanız gereklidir.
Cevapla
#2
(06-04-2016, 15:03)Merhaba, Türkçe Karakter Uyumlu Olması İçin Gerekli Güncellemenin yapılıp kodu yeniden gönderir misiniz ?Teşekkür Ederim. p esimist_61x Adlı Kullanıcıdan Alıntı: Merhaba Arkadaşlar;

DataGridView'den PDF dosyasına veri aktarmak için oluşturup düzenlediğim class c# proje dosyasını ve gerekli dll kütüphane dosyasını sizlerle paylaşmak istiyorum. Aşağıda sınıf kodlarını  yazı içinde paylaştı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. Bu işlemde esas işi yapan aşağıda paylaşacak olduğum itextsharp.dll kütüphane dosyasıdır ve bu dosyayı projenizde referans olarak eklemelisiniz.

Kod:
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);
           }
       }
   }
}

İNDİR

ALTERNATİF İNDİR

Not: Dosya silinmemesi adına 4shared.com'a yüklenmiştir. Dns kullanarak 4shared.com dosya paylaşım sitesine erişip dosyayı indirebilirsiniz. DNS kolayca değişmek için buradaki programı kullanabilirsiniz. DNS değişikliğinin ardından etkili olabilmesi için tarayıcınızı kapatıp açmanız gereklidir.
Bul
Cevapla
#3
Musait bir zamanda bakıcam; Kütüphanenin türkçe karakter veya utf8 desteği var mı varsa kodlaması nasıldır diye.
Cevapla
#4
(26-12-2016, 14:00)mfyildiz Adlı Kullanıcıdan Alıntı: Merhaba, Türkçe Karakter Uyumlu Olması İçin Gerekli Güncellemenin yapılıp kodu yeniden gönderir misiniz ?Teşekkür Ederim.


aşağıdaki kodu kullanırsan türkçe karakterler de sıkıntı olmaz. Aslında yine sıkıntı yok ama varsayılan olarak kullandığı fontun tr karakter desteği yok sanırım. Kodda yapılan değişikliği, o kodun altına açıklama satırı ile bellittim.


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

namespace MusteriRehberi
{
   class pdfAktar
    {
        public static void pdfKaydet(DataGridView veriTablosu)
        {
            try
            {

                string Tahoma = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Fonts), "Tahoma.TTF");
                BaseFont bf = BaseFont.CreateFont(Tahoma, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
                //pdf font tahoma tr karakterler için tanımlama yaptık.

                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, new Font(bf)));
                    // new Font(bf) ile ekledik böylece font tanımlamış olduk başlıklar için.
                    pdfHucresi.BackgroundColor = Color.LIGHT_GRAY;
                    pdfTablosu.AddCell(pdfHucresi);
                }
                foreach (DataGridViewRow satir in veriTablosu.Rows)
                {
                    foreach (DataGridViewCell cell in satir.Cells)
                    {
                        pdfTablosu.AddCell(new Phrase(cell.Value.ToString(), new Font(bf)));
                        // burada new Phare nesnesi kullanarak kod içeriğini yeniden yazdık ve font tanımlamasınıda yaptık.
                    }
                }

                SaveFileDialog dosyakaydet = new SaveFileDialog();
                dosyakaydet.FileName = "Müşteriler";
                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);
            }
        }
    }
}
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  C# dataGridView'den TXT Dosyasına Veri Aktarma root 0 7,007 06-04-2016, 15:09
Son Yorum: root
  C# dataGridView'den Exel'e Veri Aktarma root 0 5,252 06-04-2016, 14:53
Son Yorum: root
  DataGridView Sağ Tuş İle Kayıt Seçme Administrator 0 4,339 04-03-2016, 09:50
Son Yorum: Administrator

Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi