C# ta PDF dosyası nasıl oluşturulur? (itextsharp)

Fatura vb. pdf oluşturmak için itextsharp dll kullanılabilir. Nuget ile “Install-Package iTextSharp” komutu ile de yüklenilebilir. Dll’i buradan indirebilirsiniz.
Fatura oluşturmak için kullandığım method;

void BillSend()
{
    #region kullanılan klasörleri oluştur
    if (!Directory.Exists(@"c:\ITrack"))
    {
    Directory.CreateDirectory(@"c:\ITrack");
    Directory.CreateDirectory(@"c:\ITrack\img\");
    Directory.CreateDirectory(@"c:\ITrack\pdf");
    }
    #endregion

    #region Font seç
    BaseFont trArial = BaseFont.CreateFont(@"C:\WINDOWS\Fonts\tahoma.ttf", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
    iTextSharp.text.Font fontArial = new iTextSharp.text.Font(trArial, 10, iTextSharp.text.Font.NORMAL, iTextSharp.text.BaseColor.DARK_GRAY);
    iTextSharp.text.Font fontArialHeader = new iTextSharp.text.Font(trArial, 13, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.BLACK);
    iTextSharp.text.Font fontArialbold = new iTextSharp.text.Font(trArial, 9, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.DARK_GRAY);
    iTextSharp.text.Font fontArialboldgeneral = new iTextSharp.text.Font(trArial, 10, iTextSharp.text.Font.BOLD, iTextSharp.text.BaseColor.BLACK);
    #endregion

    #region Fatura pdf oluştur
    iTextSharp.text.Document pdfFile = new iTextSharp.text.Document();
    PdfWriter.GetInstance(pdfFile, new FileStream("C:\\ITrack\\pdf\\First.pdf", FileMode.Create));
    pdfFile.Open();
    #endregion

    #region Fatura oluşturan bilgileri
    pdfFile.AddCreator("ITrack"); //Oluşturan kişinin isminin eklenmesi
    pdfFile.AddCreationDate();//Oluşturulma tarihinin eklenmesi
    pdfFile.AddAuthor("ITrack v.1.0"); //Yazarın isiminin eklenmesi
    pdfFile.AddHeader("Başlık", "PDF UYGULAMASI OLUSTUR");
    pdfFile.AddTitle("ITrack Aylık Fatura"); //Başlık ve title eklenmesi
    #endregion

    #region Fatura firma resmi ve tarihi oluştur
    iTextSharp.text.Image jpgimg = iTextSharp.text.Image.GetInstance(@"C:\ITrack\img\kipa.png");
    jpgimg.ScalePercent(35);
    jpgimg.Alignment = iTextSharp.text.Image.LEFT_ALIGN;
            
    PdfPTable pdfTableHeader = new PdfPTable(3);
    pdfTableHeader.TotalWidth = 500f;
    pdfTableHeader.LockedWidth = true;
    pdfTableHeader.DefaultCell.Border = Rectangle.NO_BORDER;

    PdfPCell cellheader1 = new PdfPCell(jpgimg);
    cellheader1.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
    cellheader1.VerticalAlignment = PdfPCell.ALIGN_BOTTOM;
    cellheader1.FixedHeight = 60f;
    cellheader1.Border = 0;
    pdfTableHeader.AddCell(cellheader1);

    PdfPCell cellheader2 = new PdfPCell(new Phrase("AYLIK KARNE", fontArialHeader));
    cellheader2.HorizontalAlignment = PdfPCell.ALIGN_CENTER;
    cellheader2.VerticalAlignment = PdfPCell.ALIGN_MIDDLE;
    cellheader2.FixedHeight = 60f;
    cellheader2.Border = 0;
    pdfTableHeader.AddCell(cellheader2);


    PdfPCell cellheader3 = new PdfPCell(new Phrase(DateTime.Now.ToShortDateString(), fontArial));
    cellheader3.HorizontalAlignment = PdfPCell.ALIGN_RIGHT;
    cellheader3.VerticalAlignment = PdfPCell.ALIGN_MIDDLE;
    cellheader3.FixedHeight = 60f;
    cellheader3.Border = 0;
    pdfTableHeader.AddCell(cellheader3);
    #endregion

    Phrase p = new Phrase("\n");

    #region Tabloyu Oluştur
    PdfPTable pdfTable = new PdfPTable(3);
    pdfTable.TotalWidth = 500f;
    pdfTable.LockedWidth = true;
    pdfTable.DefaultCell.Padding = 5;
    pdfTable.DefaultCell.BorderColor = iTextSharp.text.BaseColor.GRAY;

    pdfTable.AddCell(new Phrase("AYDINLATMA", fontArial));
    pdfTable.AddCell(new Phrase("10TL", fontArial));
    pdfTable.AddCell(new Phrase("200KWH", fontArial));

    pdfTable.AddCell(new Phrase("KLİMA", fontArial));
    pdfTable.AddCell(new Phrase("210TL", fontArial));
    pdfTable.AddCell(new Phrase("2900KWH", fontArial));

    pdfTable.AddCell(new Phrase("DİĞER", fontArial));
    pdfTable.AddCell(new Phrase("700TL", fontArial));
    pdfTable.AddCell(new Phrase("1200KWH", fontArial));

    #region Reaktif Kapasite satırı oluştur resimli
    PdfPCell cellCapasitive = new PdfPCell(new Phrase("KAPASİTİF REAKTİF",fontArial));
    cellCapasitive.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
    cellCapasitive.VerticalAlignment = PdfPCell.ALIGN_MIDDLE;
    cellCapasitive.BorderColor = iTextSharp.text.BaseColor.GRAY;
    pdfTable.AddCell(cellCapasitive);

    PdfPCell cellReaktive = new PdfPCell(new Phrase("218KWH", fontArial));
    cellReaktive.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
    cellReaktive.VerticalAlignment = PdfPCell.ALIGN_MIDDLE;
    cellReaktive.BorderColor = iTextSharp.text.BaseColor.GRAY;
    pdfTable.AddCell(cellReaktive);

    iTextSharp.text.Image imgKapasitif = iTextSharp.text.Image.GetInstance(@"C:\ITrack\img\KapasitifReaktif.png");
    imgKapasitif.ScalePercent(85);
    PdfPCell cellreaktifimg = new PdfPCell(imgKapasitif);
    cellreaktifimg.BorderColor = iTextSharp.text.BaseColor.GRAY;
    cellreaktifimg.HorizontalAlignment = PdfPCell.ALIGN_LEFT;
    cellreaktifimg.VerticalAlignment = PdfPCell.ALIGN_MIDDLE;
    cellreaktifimg.PaddingLeft = 3;
    cellreaktifimg.FixedHeight = 70f;
    pdfTable.AddCell(cellreaktifimg);
    #endregion

    pdfTable.AddCell(new Phrase("GENEL TOPLAM", fontArialboldgeneral));
    pdfTable.AddCell(new Phrase("920TL", fontArialboldgeneral));
    pdfTable.AddCell(new Phrase("4300KWH", fontArialboldgeneral));

    #endregion

    #region Pdfe yaz ve dosyayı kapat
    if (pdfFile.IsOpen() == false) pdfFile.Open();
    pdfFile.Add(pdfTableHeader);
    pdfFile.Add(p);
    pdfFile.Add(pdfTable);
    pdfFile.Close();
    #endregion

}

Ekran Çıktısı;

3 thoughts on “C# ta PDF dosyası nasıl oluşturulur? (itextsharp)

  1. çok faydalı oldu. pdf fonksiyonlarının nerdeyse hepsi kullanılmış gerçekçi örnek üzerinden anlatılmış. çok teşekkürler

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s