Ejemplo n.º 1
0
        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]);
            }
        }
Ejemplo n.º 2
0
        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));
        }