Вопрос по asp.net – iTextSharp генерирует PDF и показывает его в браузере напрямую

3

Как открыть файл PDF после его создания с помощью iTextSharp на ASP.Net? Я не хочу сохранять это на сервере, но напрямую когда генерируется новый PDF, он отображается в браузере. Можно ли это сделать?

Вот пример того, что я имею в виду:Кликните сюд Но в этом примере файл загружен напрямую.

Как мне это сделать

<code>    Dim doc1 = New Document()

    'use a variable to let my code fit across the page...
    Dim path As String = Server.MapPath("PDFs")
    PdfWriter.GetInstance(doc1, New FileStream(path & "/Doc1.pdf", FileMode.Create))

    doc1.Open()
    doc1.Add(New Paragraph("My first PDF"))
    doc1.Close()
</code>

Приведенный выше код сохраняет PDF-файл на сервере.

Заранее большое спасибо! :)

Ваш Ответ

2   ответа
5

Тебе нужно установитьContent Type изResponse object и добавьbinary формаpdf вheader

 private void ReadPdfFile()
    {
        string path = @"C:\Somefile.pdf";
        WebClient client = new WebClient();
        Byte[] buffer =  client.DownloadData(path);

        if (buffer != null)
        {
            Response.ContentType = "application/pdf"; 
            Response.AddHeader("content-length",buffer.Length.ToString()); 
            Response.BinaryWrite(buffer); 
        }

    }

(или) вы можете использоватьSystem.IO.MemoryStream для чтения и отображения:

Здесь ты найдешь способ сделать это

Open Сгенерировал pdf файл напрямую через код, не сохраняя его на диск

Значит, мне все еще нужно сохранить PDF-файл на сервере и затем прочитать его? mrjimoy_05
Да, и есть еще один способ сделать как обновленный. coder
4

    HttpContext.Current.Response.ContentType = "application/pdf"
    HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.pdf")
    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache)

    Dim pdfDoc As New Document()
    PdfWriter.GetInstance(pdfDoc, HttpContext.Current.Response.OutputStream)

    pdfDoc.Open()
    'WRITE PDF <<<<<<

    pdfDoc.Add(New Paragraph("My first PDF"))

    'END WRITE PDF >>>>>
    pdfDoc.Close()

    HttpContext.Current.Response.Write(pdfDoc)
    HttpContext.Current.Response.End()

Надеюсь, поможет! :)

@ mrjimoy. как открыть его в новой вкладке ... в настоящее время открыть в той же вкладке, чтобы веб-страница была заменена и не могла быть запущена ... Sivajith

Похожие вопросы