Esempio n. 1
0
 private static CreateChapter AddSectionBySetLine(CreateChapter chapter, string topicSection, string titleChart, Image pic, KeyValuePair <object, System.Drawing.Image> image, Dictionary <object, List <PdfPTable> > pdfPTables)
 {
     chapter.AddSection(FontPolish(topicSection), 2);
     chapter.createSection.AddTitleCHart(FontTitleChart(titleChart), pic.Width);
     chapter.createSection.AddImage(pic);
     vs.Add(ConvertImage(image.Value));
     SetLine(image, chapter.createSection, pdfPTables);
     return(chapter);
 }
Esempio n. 2
0
        public static void GeneratePDF(Dictionary <object, System.Drawing.Image> images, Dictionary <object, List <PdfPTable> > pdfPTables) //, List<IdParking> listcarParks, List<List<IdParking>> listListCarParks, List<List<IdParking>> listListCarParksPercent)
        {
            using (Document document = new Document(PageSize.A4, 30f, 20f, 55f, 80f))
            {
                CreateChapter chapter = null;
                Dictionary <object, System.Drawing.Image> imagesbyMonth = images;
                PdfWriter pdfWriter = CreateOrChooseFile(document);
                pdfWriter.PageEvent = new PdfPageEvent();
                document.Open();
                bool   sumOfParkedByMonth = false;
                bool   lineChart          = false;
                string name = null;
                CreateTableOfContents.AddTableOfContent(document, images, pdfWriter);
                string   nameParking   = String.Empty;
                string[] chwilowy      = null;
                int      chapterNumber = 1;
                foreach (var image in images)
                {
                    try
                    {
                        Image pic = Image.GetInstance(image.Value, System.Drawing.Imaging.ImageFormat.Jpeg);
                        if (pic.Height > pic.Width)
                        {
                            float percentage = 0.0f;
                            percentage = 700 / pic.Height;
                            pic.ScalePercent(percentage * 80);
                        }
                        else
                        {
                            float percentage = 0.0f;
                            percentage = 540 / pic.Width;
                            pic.ScalePercent(percentage * 80);
                        }

                        if (image.Key is SumOfParked)
                        {
                            chwilowy = image.Value.Tag.ToString().Split(',');
                            chapter  = AddChapter(chwilowy[1], chapterNumber, "Suma pojazdów z całego okresu", pic, image, pdfPTables);
                            document.Add(chapter.GetChapter());
                            chapter = null;
                            chapterNumber++;
                        }
                        if (image.Key is SumOfParkedByMonth)
                        {
                            sumOfParkedByMonth = true;
                            nameParking        = null;
                            chwilowy           = image.Value.Tag.ToString().Split(',');
                            for (int i = 2; i < chwilowy.Length; i++)
                            {
                                nameParking += $"{chwilowy[i]},";
                            }
                            chapter = AddChapterSectionAndSubSection("Ilosc wzbudzeń w podziale na poszczególne miesiące.", $"Porównanie ilości wzbudzeń na Parkingu {nameParking} w danych miesiącach.", chwilowy[1], chapterNumber, "Porównanie parkingów", pic, image, pdfPTables);
                            document.Add(chapter.GetChapter());
                            chapterNumber++;
                        }
                        if (image.Key is SumOfParkedByMonthPercent)
                        {
                            chwilowy = image.Value.Tag.ToString().Split(',');

                            if (sumOfParkedByMonth == false)
                            {
                                nameParking        = null;
                                sumOfParkedByMonth = true;
                                for (int i = 2; i < chwilowy.Length; i++)
                                {
                                    nameParking += $"{chwilowy[i]},";
                                }
                                chapter = AddChapterSectionAndSubSection("Ilosc wzbudzeń w podziale na poszczególne miesiące.", $"Porównanie ilości wzbudzeń na Parkingu {nameParking} w danych miesiącach.", chwilowy[1], chapterNumber, "Porównanie parkingów", pic, image, pdfPTables);
                                document.Add(chapter.GetChapter());
                                chapterNumber++;
                            }
                            else
                            {
                                document.NewPage();
                                document.Add(AddSubSection(chapter, chwilowy[1], "Procentowe porównanie parkingów", pic, image, pdfPTables).GetSubSection());
                            }
                        }
                        if (image.Key is SumOfVehiclesInMonthOnCarPark)
                        {
                            if (sumOfParkedByMonth == false)
                            {
                                chwilowy    = image.Value.Tag.ToString().Split(',');
                                nameParking = null;
                                for (int i = 2; i < chwilowy.Length; i++)
                                {
                                    nameParking += $"{chwilowy[i]},";
                                }
                                chapter = AddChapterSectionAndSubSection("Ilosc wzbudzeń w podziale na poszczególne miesiące.", $"Ilość wzbudzeń na Parkingu {chwilowy[2]} w danych miesiacach", chwilowy[1], chapterNumber, chwilowy[2], pic, image, pdfPTables);
                                document.Add(chapter.GetChapter());
                                chapterNumber++;
                            }
                            else
                            {
                                document.NewPage();
                                chwilowy = image.Value.Tag.ToString().Split(',');
                                document.Add(AddSectionAndSubSection(chapter, $"Ilość wzbudzeń na Parkingu {chwilowy[2]} w danych miesiacach", chwilowy[1], chwilowy[2], pic, image, pdfPTables).GetSection());
                            }
                        }
                        if (image.Key is SumOfParkedInEachMonthPercent)
                        {
                            chwilowy = image.Value.Tag.ToString().Split(',');
                            document.NewPage();
                            document.Add(AddSubSection(chapter, chwilowy[1], $"{chwilowy[2]}-%", pic, image, pdfPTables).GetSubSection());
                        }
                        if (image.Key is LineChart)
                        {
                            chapter     = null;
                            nameParking = null;
                            lineChart   = true;
                            chwilowy    = image.Value.Tag.ToString().Split(',');
                            for (int i = 1; i < chwilowy.Length; i++)
                            {
                                nameParking += $"{chwilowy[i]},";
                            }
                            chapter = new CreateChapter(new Paragraph(FontPolish("Zestawienie godzinowe ilość wzbudzeń w całym okresie raportu - wartości procentowe.")), chapterNumber);
                            chapter.AddSection(FontPolish($"Porównanie ilości wzbudzeń na parkingach {nameParking}"), 2);
                            chapter.AddTitleCHartToLineChart(new Paragraph(FontPolish("Porównanie %")), image.Value.Width);
                            chapter.AddImageToLineChart(pic);
                            vs.Add(ConvertImage(image.Value));
                            document.Add(chapter.GetChapter());
                            chapterNumber++;
                        }
                        if (image.Key is LineSumByHour)
                        {
                            if (lineChart == false)
                            {
                                chapter = new CreateChapter(new Paragraph(FontPolish("Zestawienie godzinowe ilość wzbudzeń w całym okresie raportu - wartości procentowe.")), chapterNumber);
                            }
                            document.NewPage();
                            chwilowy = image.Value.Tag.ToString().Split(',');
                            document.Add(AddSectionBySetLine(chapter, chwilowy[1], $"{chwilowy[1]}-%", pic, image, pdfPTables).GetSection());
                        }
                        if (image.Key is LineSumByHourEachMonth)
                        {
                            chwilowy = image.Value.Tag.ToString().Split(',');
                            if (name == null)
                            {
                                chapter = AddChapterSectionAndSubSectionBySetLine("Zestawienie godzinowe ilości wzbudzeń w podziale na poszczególne miesiące.", $"{chwilowy[1]}", $"{Enum.GetName(typeof(EnumMonth), int.Parse(chwilowy[2]))}", chapterNumber, $"{chwilowy[1]} - %", pic, image, pdfPTables);
                                document.Add(chapter.GetChapter());
                                name = chwilowy[1];
                                chapterNumber++;
                            }
                            else if (name == chwilowy[1])
                            {
                                document.NewPage();
                                document.Add(AddSubSectionBySetLine(chapter, $"{Enum.GetName(typeof(EnumMonth), int.Parse(chwilowy[2]))}", $"{chwilowy[1]} - %", pic, image, pdfPTables).GetSubSection());
                                name = chwilowy[1];
                            }
                            else if (name != chwilowy[1])
                            {
                                document.NewPage();
                                document.Add(AddSectionAndSubSectionBySetLine(chapter, chwilowy[1], $"{Enum.GetName(typeof(EnumMonth), int.Parse(chwilowy[2]))}", $"{chwilowy[1]} - %", pic, image, pdfPTables).GetSection());
                                name = chwilowy[1];
                            }
                        }
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show(e.ToString());
                    }
                }
                try
                {
                    document.Close();
                    MessageBox.Show("PDF Wygenerowany");
                }
                catch
                {
                    MessageBox.Show("Wystąpił problem z zamknięciem pliku PDF");
                }
            }
        }