使用C#将pdf保存在特定位置

时间:2014-08-08 08:15:28

标签: c# asp.net

这是我的C#代码:

protected void Button1_Click(object sender, EventArgs e)
{
string attachment = "attachment; filename=" + Session["pdf_name"] + ".pdf";
        Response.ClearContent();
        Response.AddHeader("content-disposition", attachment);
        Response.ContentType = "application/pdf";
        StringWriter s_tw = new StringWriter();
        HtmlTextWriter h_textw = new HtmlTextWriter(s_tw);
        Label1.Style.Add("font-size", "16pt");
        Label2.Style.Add("font-size", "16pt");
        Label3.Style.Add("font-size", "16pt");
        h_textw.AddStyleAttribute("font-size", "8pt");
        h_textw.AddStyleAttribute("color", "Black");
        Panel1.RenderControl(h_textw);
        Document doc = new Document();
        PdfWriter.GetInstance(doc, Response.OutputStream);
        doc.Open();
        StringReader s_tr = new StringReader(s_tw.ToString());
        HTMLWorker html_worker = new HTMLWorker(doc);
        html_worker.Parse(s_tr);
        doc.Close();
        Response.Write(doc);
}

我想在此路径中保存此pdf“H:\ new \ web \ pdf_filename.pdf”

我正在使用ASP.Net C#。

2 个答案:

答案 0 :(得分:0)

您无法指定客户端计算机上保存下载文件的位置。

如果您需要这种类型的功能,则需要在可以访问本地文件系统的浏览器客户端中运行插件。

浏览器会将您在附件标题值中指定的文件名作为建议,但即使这样,用户在实际保存时也可以覆盖它。

如果要将其保存在服务器上,只需使用任何与文件相关的方法或类型将其保存在本地(到服务器)的某个位置。

答案 1 :(得分:0)

PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(@"H:\new\web\pdf_filename.pdf", FileMode.Create));

尝试查看是否有效,请确保您的身份验证类型允许用户访问该文件夹。不是每个人都将H驱动器映射到相同的网络路径,