如何在ASP.Net上使用iTextSharp创建后打开PDF文件?我不想将其保存在服务器上,而是直接生成新PDF时,它会显示在浏览器上。有可能吗?
以下是我的意思:Click here。但是在这个例子中,文件直接下载。
我该怎么做?
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保存到服务器。
非常感谢您提前! :)
答案 0 :(得分:5)
您需要设置Content Type
的{{1}}并在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);
}
}
阅读和显示:
在这里你可以找到这样做的方式
Open Generated pdf file through code directly without saving it onto the disk
答案 1 :(得分: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()
希望有所帮助! :)