Asp.net ile tarayıcı üzerinde pdf görüntüleme(Pdf'yi indirmeden)

notify (538) 6 yıl önce sordu

Merhaba;

İtextxsharp kütüğhanesini kullanarak aşağıdaki gibi butona basınca ck editorden pdf dosyama veri çekiyorum fakat dosyayı indiriyor. Benim amacım ise indirmeden yeni sekmede pdf'yi görüntülemek. Bu kütüphaneyi kurmadan önce tarayıcıda görüntülebilmeyi desekliyor sanıyordum. Fakat desteklemiyor.Bunu nasıl sağlayabilirim?

    protected void pdf_Click(object sender, EventArgs e)
    {
        iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4);
        MemoryStream output = new MemoryStream();
        iTextSharp.text.pdf.PdfWriter.GetInstance(doc, output);
        doc.Open();
        HtmlDocument htmlDoc = new HtmlDocument();
        htmlDoc.LoadHtml(CKEditorControl1.Text);
        string htmlsiz = htmlDoc.DocumentNode.InnerText;
        doc.Add(new iTextSharp.text.Paragraph(htmlsiz));
        doc.Close();
        Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=Export.pdf");
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(output.ToArray());
        Response.End();
    }

@alattin abi :)

Toplam 2 cevap


alattin (17014) 6 yıl önce cevapladı

PDF.Js adında bi javascript kütüphanesi var: https://mozilla.github.io/pdf.js/

Bununla PDF dosyasını indirmeden web sayfanda görüntüleyebilirsin.

indirdiğin zip dosyasındaki dosyaları ViewerJS klasörü adı ile web sitenin rootuna kaydet. Daha sonra pdf dosyasını görüntülemek istediğin yerde şu kodu kullan

 <iframe src="/ViewerJS/#../belge.pdf" width='900' height='350' allowfullscreen webkitallowfullscreen></iframe>

 

notify 6 yıl önce

@alattin abi peki ben bunu üsteki gibi ck editore nasıl bağlayabilirim.

alattin 6 yıl önce

editörden gelen veriyi pdf olarak diske yaz sonra yukarıdaki js kütüphanesine bağla. sen en kolay bu şekilde yapabilirsin @notify

notify 6 yıl önce

tamam @alattin abi öyle yapayım :) sağol

notify (538) 6 yıl önce cevapladı

Tamamen tesadüf bir şekilde bulduğum bir yolu paylaşayım :)

Yukarıdaki kodlarla uğraşırken şöyle birşey denedim ve hakikaten'de pdf'yi indirmeden aynı kodlar ile sadece bikaç değişiklik yaparak tarayıcıda göstermeyi başarım :) Şöyle ki;

    protected void pdf_Click(object sender, EventArgs e)
    {
        iTextSharp.text.Document doc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4);
        MemoryStream output = new MemoryStream();
        iTextSharp.text.pdf.PdfWriter.GetInstance(doc, output);
        doc.Open();
        HtmlDocument htmlDoc = new HtmlDocument();
        htmlDoc.LoadHtml(CKEditorControl1.Text);
        string htmlsiz = htmlDoc.DocumentNode.InnerText;
        doc.Add(new iTextSharp.text.Paragraph(htmlsiz));
        doc.Close();
        Response.Clear();
        Response.AddHeader("content-disposition", "inline; filename=" + SozlesmeNo".pdf");
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(output.ToArray());
        Response.End();
    }

Yani burada yaptığımız sadece yukarıdaki şu alanı;

Response.AddHeader("content-disposition", "attachment;filename=Export.pdf");

Buna çevirmek;

Response.AddHeader("content-disposition", "inline; filename=" + SozlesmeNo".pdf");