Pdf文件未在asp.net应用程序中更新

时间:2013-12-03 11:51:26

标签: c# asp.net pdf-generation itextsharp

在我的asp.net应用程序中,我们使用ITextSharp.dll生成pdf 现在我的问题是每次相同的pdf打开(不刷新),除非直到清除我的浏览器历史记录它是相同的。我正在使用Chrome浏览器。

这是我的代码

private void fillForm() {
    try {
        string Phone = "", Physical = "";
        string formFile = Server.MapPath("~\\Inspection.pdf");
        string newFile = Server.MapPath("~\\InspectionPrint.pdf");
        PdfReader reader = new PdfReader(formFile);
        PdfStamper stamper = new PdfStamper(reader, new FileStream(newFile, FileMode.Create));
        AcroFields fields = stamper.AcroFields;
        PdfContentByte d = new PdfContentByte(stamper.Writer);
        //getting values from DB
        SqlCommand comd = new SqlCommand("usp_PrintInspection", QMSConn);
        QMSConn.Open();
        comd.CommandType = CommandType.StoredProcedure;
        comd.Parameters.Add("@QuoteNumber", SqlDbType.VarChar);
        comd.Parameters["@QuoteNumber"].Value = Session["CurrQuoteNumber"].ToString();
        DataSet ds = new DataSet();
        SqlDataAdapter sqlAdapter = new SqlDataAdapter();
        sqlAdapter.SelectCommand = comd;
        sqlAdapter.Fill(ds, "Table");
        if (ds.Tables[0].Rows.Count > 0) {
            // set form fields
            string Name = ds.Tables[0].Rows[0]["NAME"].ToString();
            string Address1 = ds.Tables[0].Rows[0]["Address1"].ToString();
            string CompanyID = ds.Tables[0].Rows[0]["CompanyID"].ToString();
            string PolicyNumber = ds.Tables[0].Rows[0]["PolicyNumber"].ToString();

            fields.SetField("Name", Name);
            fields.SetField("Address1", Address1);
            fields.SetField("CompanyID ", CompanyID);
            fields.SetField("PolicyNumber", PolicyNumber);

            stamper.FormFlattening = false;
            stamper.Close();

            string file = "InspectionPrint";

            string Url = "../" + file + ".pdf";
            String js = @"WindowPopup('" + Url + "');";
            ScriptManager.RegisterStartupScript(this, this.GetType(), "Key", js, true);
        }
        else {
            showalert("No Record Available For This Quote");
        }
    }
    catch(exception ex) {
    }
}

1 个答案:

答案 0 :(得分:0)

正如您所说它在Localhost中工作但不在生产服务器中工作,很可能在我看来是URL/Path问题。

1。在观察您的代码之后,您将创建另一个字符串Url变量,而不使用现有的String formFile变量。

因为您应该使用valid path而不是formFile提供Url,因为您使用formFile创建了Server.MapPath()

试试这个:

/*string Url = "../" + file + ".pdf";*/ //comment or remove
String js = @"WindowPopup('" + formFile + "');";//use formFile instead of Url