可以使用iTextSharp在内存中创建PDF文档,使用户可以选择“打开”或“保存”?如果打开则会在浏览器窗口中打开。
目前我唯一将它保存到磁盘。
编辑:
好吧,我已经怀疑了。我最终不得不将文件写入文件夹,但它只是暂时的,因为每次都被覆盖。这是它的价值所在的解决方案:private void GeneratePDF() {
var doc1 = new Document();
string path = Server.MapPath("~/pdfs/");
string filepath = path + "Doc1.pdf";
PdfWriter.GetInstance(doc1, new FileStream(filepath, FileMode.Create));
doc1.Open();
doc1.Add(new Paragraph("A new Document"));
doc1.Add(new Paragraph(DateTime.Now.ToString()));
doc1.Close();
Response.Buffer = false; //transmitfile self buffers
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "attachment; filename=myPDF.pdf");
Response.TransmitFile(filepath);
Response.End();
}
答案 0 :(得分:3)
您可以将PDF保存到内存流并将其写入浏览器,如下所示。
protected void Page_Load(object sender, EventArgs e)
{
MemoryStream ms;
using (ms = new MemoryStream())
{
PdfWriter writer = PdfWriter.GetInstance(myPdfDoc, ms);
Response.ContentType = "application/pdf";
Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length);
Response.OutputStream.Flush();
Response.OutputStream.Close();
}
}
答案 1 :(得分:0)
您需要将其保存到临时文件夹,然后在文件上调用Process.Start
。
答案 2 :(得分:0)
要打开/显示PDF,您可以在将文件保存到临时文件夹后使用acrobat activex组件。在早期的一项研究中,我无法找到显示PDF的免费控件。