Makale Özeti
Bu makalemizde ASP.Net ile PDF dosya oluşturmadan söz edeceğiz. PDF dosyasının oluşturulması ve düzenlenmesi için açık kaynak kodlu iTextSharp sınıfını kullanacağız.
Makale
Bu makalemizde ASP.Net ile PDF dosya oluşturmadan söz edeceğiz. PDF dosyasının oluşturulması ve düzenlenmesi için açık kaynak kodlu iTextSharp sınıfını kullanacağız. Aşağıdaki adresten ulaşabilirsiniz.
http://sourceforge.net/projects/itextsharp/
Öncelikle temel olarak basit bir örnek oluşturacağız, sonrasında her nesne için detaylı kullanımları göreceğiz.
//Document class’ı temel PDF dosyamızın temelini içeriyor. //PageSize ile dosya boyutunu belirtebiliyoruz. Bunun yerine Rectangle da kullanabiliriz. iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4); //MemoryStream Response’a binary olarak gönderip, çıktıyı üretmemizi sağlayacak olan Class’ımız. MemoryStream output = new MemoryStream(); //PdfWriter PDF dosyamız ile stream’i eşitleyen class’ımız. iTextSharp.text.pdf.PdfWriter.GetInstance(doc, output); //Dosya işlemleri öncesinde değişiklikler için Open() methodunu çağırıyoruz. doc.Open(); //Add() methodu ile en basit anlamda bir metni PDF dosyamızın içerisine ekliyoruz. doc.Add(new iTextSharp.text.Paragraph(“Deneme…”)); //Dosya işlemlerinin bittiğini belirtmek için Close() methodunu çağırıyoruz. doc.Close(); //Ekran çıktısını temizliyoruz. Response.Clear(); //Dosya ismini belirtiyoruz. Response.AddHeader(“content-disposition”, “attachment;filename=Export.pdf”); //Dosya tipini PDF olarak belirtiyoruz. Response.ContentType = “application/pdf”; //Dosyanın içeriğini Response içerisine aktarıyoruz. Response.BinaryWrite(output.ToArray()); //Son aşama da işlemleri bitirip, ekran çıktısına ulaşıyoruz. Response.End(); |
Document Bu sınıf temel olarak PDF dosyamızı temsil ediyor. Daha sonradan göreceğimiz içerik bilgilerinin tutulduğu Paragraph, Image, PdfTable vs. gibi nesneleri içerisinde barındırır. Author, Creator, Keywords, Subject Title vs. gibi dosyaya özel bilgileri de tutar. //Author bilgisi eklemek için kullanılır. //Standart kağıt ölçüleri için PageSize kullanabilirsiniz. |
Font & Color Bu kısımda belirteceğimiz Font ve Color System.Drawing altında nesneler değil. iTextSharp’ın kendine özel Font ve Color sınıflarını kullanmak zorundayız. //Bu kısımda FontFamily altındaki standart fontları kullanabiliyoruz. TIMES_ROMAN, COURIER, HELVETICA gibi…
//Farklı bir font eklemek istediğimizde aşağıdaki gibi BaseFont sınıfını kullanabiliriz. //Sistemde var olan fontlar içinde FontFactory sınıfı kullanılabilir.
//SetStyle() Stil eklemek için kullanılır. 0: Normal, 1:Bold, 2:Italic temsil eder. //Standart renkler için BaseColor sınıfı kullanılabilir.
|
Paragraph HTML ile karşılaştıracak olursak <p> tag’ine denk geldiğini söyleyebiliriz. Belli sözcük gruplarını içinde tutabilen nesnemizi ifade ediyor. Font, Color, Aligment vs. gibi bilgilerini verebiliyoruz. iTextSharp.text.Paragraph p = new iTextSharp.text.Paragraph(); //En basit şekliyle Add() methodu ile içerisine string olarak metin belirleyebiliriz. |
Image //Ekleyeceğimiz resmi Image nesnemize atıyoruz. iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(Server.MapPath(“~/Koala.jpg”)); //Boyutlandırma için ScaleToFit() methodunu ya da ScalePercent() methodunu kullanabiliriz. img.ScaleToFit(200, 100); //Çerçeve vermek için aşağıdaki özelliklerini kullanabiliriz. img.Border = iTextSharp.text.Rectangle.BOX; img.BorderColor = iTextSharp.text.BaseColor.BLACK; img.BorderWidth = 5f; //Sonrasında diğer nesnelerdeki gibi Document içine yada Paragraph içerisine ekleyebiliriz. doc.Add(img);
|
Chunk HTML ile karşılaştıracak olursak <span> tagine denk geldiğini söyleyebiliriz. //Paragraph gibi font belirleyebiliyoruz, buradaki amaç aynı paragraph içindeki farklı font, color vs. değerleri birbirinden ayırabilmek |
Bir sonraki makalemiz de PDF içerisinde Tablo, Satır ve Sütunları oluşturmayı göreceğiz.
Başka bir makalede görüşmek dileğiyle…
Gökhan BAĞCI
Web & Mobile Developer
Comments 0