Example #1
0
        public static ParentApprovalReport GetParentApprovalReport(ParentApproval approval)
        {
            var sigImg = GetSignature(approval);
            var report = new ParentApprovalReport();

            PrintingSettings.PassPdfDrawingExceptions = true;
            foreach (Band b in report.Bands)
            {
                foreach (XRControl c in b.Controls)
                {
                    if (c.Name == "xrPictureBox2")
                    {
                        ((XRPictureBox)c).Image = sigImg;
                    }
                }
            }
            report.Parameters["ParentApprovalID"].Value = approval.ID;
            return(report);
        }
Example #2
0
        private static Image GetSignature(ParentApproval approval)
        {
            // Get the most recent signature before the approval date.
            var sig = AppService.Current.DataContextV2.ParentSignatures
                      .Where(x => x.LoginID == approval.ParentLoginID &&
                             x.Date < approval.DateApproved)
                      .OrderByDescending(x => x.Date).FirstOrDefault();

            // Convert transparent to white
            Bitmap sigImgWhite;

            if (sig != null)
            {
                var   base64Data = Regex.Match(sig.Data, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
                var   binData    = Convert.FromBase64String(base64Data);
                Image sigImg;
                using (var stream = new MemoryStream(binData))
                {
                    sigImg = new Bitmap(stream);
                }
                sigImgWhite = new Bitmap(sigImg.Width, sigImg.Height);
                var rect = new Rectangle(Point.Empty, sigImgWhite.Size);
                using (var G = Graphics.FromImage(sigImgWhite))
                {
                    G.Clear(Color.White);
                    G.DrawImageUnscaledAndClipped(sigImg, rect);
                }
            }
            else
            {
                sigImgWhite = new Bitmap(100, 100);
                using (var G = Graphics.FromImage(sigImgWhite))
                {
                    G.Clear(Color.White);
                }
            }
            return(sigImgWhite);
        }