public string NextPage(string sessionID) { var bytes = (byte[])TempData["pdfBin_" + sessionID]; int currentPage = (int)TempData["pageNumber_" + sessionID]; TempData.Remove("pdfBin_" + sessionID); TempData.Remove("pageNumber_" + sessionID); TempData.Add("pdfBin_" + sessionID, bytes); if (bytes == null) { return(""); } var base64string = GhostScript.RasterizePdf(bytes).ToBase64Strings(); int totalPage = base64string.Count(); if (currentPage < totalPage) { TempData.Add("pageNumber_" + sessionID, currentPage + 1); return(base64string[currentPage]); } else { TempData.Add("pageNumber_" + sessionID, currentPage); return(base64string[currentPage - 1]); } }
public JsonResult ReadReport(string sessionID) { var result = new Libs.KmoAjaxResult() { success = false }; var rptReq = TempData["rptReq_" + sessionID] as Libs.ReportRequest; TempData.Remove("rptReq_" + sessionID); TempData.Add("rptReq_" + sessionID, rptReq); try { if (!TempData.ContainsKey("pdfbin_" + rptReq.SessionID)) { Libs.ReportParameterCollection rptPars; if (!string.IsNullOrEmpty(rptReq.RecordSelectionFormula)) { rptPars = Application.Report_Crpt_BuildParameters(rptReq.ReportName, rptReq.RecordSelectionFormula); } else { rptPars = Application.Report_Crpt_BuildParameters(rptReq.ReportName); } rptPars.AddRange(rptReq.Parameters.ToArray()); var pdfBin = Application.Report_Crpt_BuildRptPdf(rptPars).Result; var base64string = GhostScript.RasterizePdf(pdfBin).ToBase64Strings(); var rptView = new Libs.ReportViewModel(); rptView.CurrentPage = 1; rptView.TotalPage = base64string.Count(); rptView.PageData = base64string[0]; rptView.SessionID = sessionID; result.data = rptView; if (TempData.ContainsKey("pageNumber_" + rptReq.SessionID)) { TempData.Remove("pageNumber_" + rptReq.SessionID); } TempData.Add("pdfbin_" + rptReq.SessionID, pdfBin); TempData.Add("pageNumber_" + rptReq.SessionID, (Int32)1); result.success = true; } else { var pdfBin = (byte[])TempData["pdfbin_" + rptReq.SessionID]; var base64string = GhostScript.RasterizePdf(pdfBin).ToBase64Strings(); var page = base64string[0]; var rptView = new Libs.ReportViewModel(); rptView.CurrentPage = 1; rptView.TotalPage = base64string.Count(); rptView.PageData = base64string[0]; rptView.SessionID = sessionID; result.data = rptView; if (TempData.ContainsKey("pageNumber_" + rptReq.SessionID)) { TempData.Remove("pageNumber_" + rptReq.SessionID); } TempData.Add("pageNumber_" + rptReq.SessionID, (Int32)1); TempData.Remove("pdfbin_" + rptReq.SessionID); TempData.Add("pdfbin_" + rptReq.SessionID, pdfBin); result.success = true; } } catch (Exception x) { result.message = x.Message; } return(Json(result, JsonRequestBehavior.AllowGet)); }