3

ASP.Net で iTextSharp を使用して作成した後に PDF ファイルを開く方法は? サーバーに保存したくありませんが、新しい PDF が生成されると直接ブラウザに表示されます。それは可能ですか?

これが私が言いたいことの例です:ここをクリックしてください。ただし、この例では、ファイルは直接ダウンロードされます。

どうやってやるの?

    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()

上記のコードは、PDF をサーバーに保存します。

事前にどうもありがとうございました!:)

4

2 に答える 2

5

Content Typeを設定し、のフォームをResponse object追加する必要がありますbinarypdfheader

 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の読み取りと表示に使用できます。

ここでは、その方法を見つけることができます

生成された pdf ファイルをディスクに保存せずに直接コードで開く

于 2012-05-05T14:46:22.930 に答える
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()

助けてください!:)

于 2012-05-05T15:09:30.833 に答える