Html Kodunu Pdf’e Çevirme

Posted by

Merhaba arkadaşlar, bu yazımda sizlere Html Kodunu Pdf’e Çevirme konusundan bahsedeceğim.

Bir web sitesi ya da bir uygulama oluşturduğumuzda genel olarak bizden istenilen özellikler mevcuttur. Bunlara örnek vermek gerekirse excel dosyasına veri çıkartma, pdf dosyası oluşturup indirtme, xml dosyası oluşturma ve indirme vs. gibi. Bu yazıda pdf oluşturma işleminden bahsedeceğim.

PDF işlemlerini gerçekleştirmek için Nuget Package Manager üzerinden bir paket yüklememiz gerekiyor.

Yüklememiz gereken paket ise NReco.PdfGenerator

Paket ile ilgili örnekler ve detaylı bilgi için ise kendi sitesine aşağıdaki link üzerinden ulaşabilirsiniz.
https://www.nrecosite.com/pdf_generator_net.aspx

Hemen örnek bir kod üzerinden inceleyelim:

var htmlString = File.ReadAllText(@"...\ornek.html");

var htmlToPdfConverter = new NReco.PdfGenerator.HtmlToPdfConverter();

var pdf = htmlToPdfConverter.GeneratePdf(htmlString);

File.WriteAllBytes(@"...\ornek.pdf",pdf);

1) ReadAllText() ile html içeriğimizi okuyoruz.

2) Yüklediğimiz paket içerisinde bulunan HtmlToPdfConverter nesnemizi oluşturuyoruz.

3) Oluşturduğumuz nesne içerisinde GeneratePdf() metodumuzu kullanarak parametresine de html içeriğimizi veriyoruz. GeneratePdf(htmlString) metodumuz bize geriye byte array dönüyor ve bunu da pdf isimli bir değişken oluşturup ona atamasını yapıyoruz.

4) Son olarak da System.IO altında bulunan File.WriteAllBytes() metodumuzu kullanarak dosyamızı belirlediğimiz yolu ve atama yaptığımız pdf değişkenini kullanarak işlemi gerçekleştiriyoruz.

Umarım faydalı olur.

Bir sonraki yazıda görüşmek üzere…

6 comments

  1. Üstad bunun ilgili örnek görürsen paylaşabilir misin Byte olarak döndürdüm ama yinede kod bloğum çalışmadı

    1. Kod bloğunu e-mail olarak gönderebilir misin? Hakkımda kısmında bulunan e-posta adresine gönderim sağlayabilirsin.

  2. Üstad bilgilendirme için teşekkürler . Bende dosya şeklinde değilde şeklinde html kod var bu kodların içinde türkçe karakter içeren yazılar var türkçe karakter sorunu yaşamadan bu kodları nasıl html e çevirebilirim?

    1. Merhaba, eğer elinde bir html bulunuyor ise bu html koduna charset bilgileri eklemesini yapabilirsen türkçe karakter problemi çözülür. Eğer html oluşturmak istiyorsan da StringBuilder kullanarak tag’leri oluşturarak ve gerekli yazıları girerek html içeriğini oluşturabilirsin. Html kodlarını oluştururken charset bilgileri eklemesi yapabilirsin yine.

  3. Örnek için teşekkürler.
    Arkadaşlar ek olarak HTML veriyi PDF ‘e otomatik sığdırma yaptırmak istiyorsanız da aşağıdaki kodu ekleyebilirsiniz.

    var generator = new NReco.PdfGenerator.HtmlToPdfConverter
    {
    CustomWkHtmlArgs = “–disable-smart-shrinking” // otomatik sığdırma işlemi yapar.
    };

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir