如何在asp.net中保存PDF文件?

时间:2014-06-16 13:20:31

标签: c# asp.net pdf pdf-conversion

我使用流动代码创建一个pdf文件。当我运行我的代码时,生成的pdf文件存储在Downloads文件夹中。我想改变这条道路。我想把它保存到我的解决方案中。我该怎么做?

这是代码:

            Document pdfDoc = new Document(new Rectangle(624f, 568f),0f,0f,0f,0f);
            try
            {
                PdfWriter.GetInstance(pdfDoc, System.Web.HttpContext.Current.Response.OutputStream);
                pdfDoc.Open();
                string imageFilePath = System.Web.HttpContext.Current.Server.MapPath("../images/1.jpg");
                iTextSharp.text.Image jpg = iTextSharp.text.Image.GetInstance(imageFilePath);

                jpg.ScaleToFit(624f, 468f);
                pdfDoc.Add(jpg);
                pdfDoc.Close();
                Response.ContentType = "application/pdf";


                Response.AddHeader("content-disposition", "attachment; filename= " + System.DateTime.Now.ToString("yyyyMMdd_HHmmssff") + ".pdf");

                Response.End(); 

            }
            catch (DocumentException de)
            {
                System.Web.HttpContext.Current.Response.Write(de.Message);
            }

2 个答案:

答案 0 :(得分:3)

  

我想在服务器中保存指定文件夹,此pdf将保存。

你做不到。服务器端代码不会(并且不能)知道有关客户端文件系统的任何信息。这是出于一系列建筑和安全原因。

  

用户无法更改此路径。

如果他们通过网络浏览器访问它,他们肯定可以。如果没有编写自己的自定义Web浏览器,用户可以指定要保存文件的位置。 (或者,如果他们想要保存它们。)

  

那我怎么能这样做呢?

编写自定义Web浏览器并要求您的用户仅从该浏览器访问您的Web应用程序,或者编写客户端应用程序以传输文件(以及您需要的任何其他功能),并要求您的用户使用该应用程序他们的网络浏览器。

Web应用程序无法访问客户端文件系统。

答案 1 :(得分:1)

我认为你可以使用以下方法

HttpContext.Current.Server.MapPath()

更多信息here