Ejemplo n.º 1
0
        public MemoryStream GenerateCert()
        {
            var image = Converter.ConvertHtmlString(GenerateHtmlTemplate());
            var ms    = new MemoryStream();

            image.Save(ms, ImageFormat.Png);
            return(ms);
        }
Ejemplo n.º 2
0
        internal void GenerateToImage()
        {
            //these fields is not change with each student
            string htmlTable              = "";
            string studyAvg               = dt.Rows[0]["KL HT tb"].ToString();
            string studentClass           = dt.Rows[0]["Lớp"].ToString();
            string studyCompletedLastWeek = dt.Rows[0]["KL học tập đã TH tuần trước"].ToString();
            string timeRemain             = dt.Rows[0]["thời gian còn lại"].ToString();

            studyAvg = BeautiNumber(studyAvg, "{0:0.0}");
            studyCompletedLastWeek = BeautiNumber(studyCompletedLastWeek, "{0:0.0}");
            timeRemain             = BeautiNumber(timeRemain, "{0:0}");

            foreach (DataRow row in dt.Rows)
            {
                try
                {
                    string course       = row["Môn"].ToString();
                    string exam         = row["Exam"].ToString();
                    string quest        = row["% ques"].ToString();
                    string quiz         = row["% quiz"].ToString();
                    string asm          = row["% asm"].ToString();
                    string lab          = row["%Lab"].ToString();
                    string courseStatus = row["Trạng thái môn"].ToString();


                    courseStatus = BeautiNumber(courseStatus, "{0:0.0}");
                    lab          = BeautiNumber(lab, "{0:0.0%}");
                    quest        = BeautiNumber(quest, "{0:0.0%}");
                    quiz         = BeautiNumber(quiz, "{0:0.0%}");
                    asm          = BeautiNumber(asm, "{0:0.0%}");

                    htmlTable += $@"<tr>
                        <td>{course}</td>
                        <td>{courseStatus}</td>
                        <td>{quest}</td>
                        <td>{quiz}</td>
                        <td>{lab}</td>
                        <td>{asm}</td>
                        <td>{exam}</td>
                    </tr>";
                }
                catch (Exception e)
                {
                    //MessageBox.Show(e.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    throw e;
                }
            }

            string width = "";
            var    weeks = Convert.ToInt16(ConfigurationManager.AppSettings[$"{certificate}"]);

            if (string.IsNullOrEmpty(timeRemain) || timeRemain.Equals("N/A"))
            {
                width = "0%";
            }
            else
            {
                width = Convert.ToDouble(timeRemain) / weeks * 100 + "%";
            }
            string[]    parameters  = { folder, reportedDate.ToString("dd/MM/yyyy"), studentName, studentId, timeRemain, weeks.ToString(), width, studyAvg, studyCompletedLastWeek, htmlTable };
            HtmlToImage htmlToImage = new HtmlToImage(850);

            string html = string.Format(contentHtml, parameters);
            Image  img  = htmlToImage.ConvertHtmlString(html);

            DirectoryInfo directory = new DirectoryInfo(Path.Combine(folderStoragePath, $"{studentClass}"));

            if (!directory.Exists)
            {
                directory.Create();
            }

            FileStream stream = File.Open(Path.Combine(folderStoragePath, $"{studentClass}/{studentId} - {studentName}.png"), FileMode.Create);

            img.Save(stream, ImageFormat.Png);
            stream.Close();
        }