Esempio n. 1
0
        public LetterWindow(List<SessionRow> sessions, LetterTemplate letterTemplate)
        {
            InitializeComponent();

            tbKenmerk.Text = letterTemplate.Kenmerk;
            tbContactpersonen.Text = letterTemplate.Contactpersonen;
            tbTelefoon.Text = letterTemplate.Telefoon;
            tbEmail.Text = letterTemplate.Email;
            tbAvansAdres.Text = letterTemplate.AvansAdres;
            tbAvansLocatie.Text = letterTemplate.AvansLocatie;
            tbBeginKern.Text = letterTemplate.BeginKern;
            tbReisInformatie.Text = letterTemplate.ReisInformatie;
            tbVerdereInformatie.Text = letterTemplate.VerdereInformatie;
            tbAfzenders.Text = letterTemplate.Afzenders;
            tbBijlagen.Text = letterTemplate.Bijlagen;
            tbVoettekstLinks.Text = letterTemplate.VoettekstLinks;
            tbVoettekstMidden.Text = letterTemplate.VoettekstCenter;
            tbVoettekstRechts.Text = letterTemplate.VoettekstRechts;

            _experts = new List<Expert>();
            _receivers = new Dictionary<int, Expert>();
            _sessions = sessions;

            // Note: Dit ziet er misschien klote uit, maar een List.Contains check schijnt niet te werken(mogelijk zijn er dubbele expert objecten?)
            Dictionary<int, Expert> experts = new Dictionary<int, Expert>();

            foreach (SessionRow session in sessions)
            {
                Session sessionModel = session.GetSessionModel();

                foreach (KeyValuePair<int, Expert> keyValuePair in sessionModel.Experts)
                {
                    if(!experts.ContainsKey(keyValuePair.Key))
                        experts.Add(keyValuePair.Key, keyValuePair.Value);
                }
            }

            // En nu weer naar een List omdat Dictionary faalt en niet kan sorten
            foreach (KeyValuePair<int, Expert> keyValuePair in experts)
                _experts.Add(keyValuePair.Value);

            _experts.Sort();

            ExpertsToevoegen();

            _controller = PAZController.GetInstance();
            _ini = _controller.IniReader;
            _letterTemplate = letterTemplate;

            btnSave.IsEnabled = false;
        }
Esempio n. 2
0
        /**
         * Dit maakt de brieven om te versturen naar de experts in zijn geheel en zet ze in een PDF document
         */
        public void CreateLetterPDF(String filename, Dictionary<int, Expert> receivers, LetterTemplate letterTemplate)
        {
            // het document(standaard A4-formaat) maken
            iTextSharp.text.Document document = new iText.Document(PageSize.A4, 75.0f, 75.0f, 0.0f, 0.0f);

            try
            {
                // Creeër een PDF pagina instantie(deze regelt de footer, meer niet)
                pdfPage page = new pdfPage(letterTemplate);

                // De writer maken die naar het document luistert en zet de stream om in een PDF-bestand
                PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(filename, FileMode.Create));

                // Zet de PageEvent van de writer klasse naar de instantie van de pagina
                writer.PageEvent = page;

                // het document openen
                document.Open();
                for (int rowNo = 0; rowNo < _dataGrid.Items.Count; ++rowNo)
                {
                    SessionRow rowSession = (SessionRow)_dataGrid.Items[rowNo];
                    Session sessionModel = rowSession.GetSessionModel();

                    Dictionary<int, Expert> experts = sessionModel.Experts;

                    foreach(KeyValuePair<int, Expert> expertKeyValuePair in experts)
                    {
                        if (!receivers.ContainsKey(expertKeyValuePair.Key))
                            continue;

                        Expert expert = expertKeyValuePair.Value;

                        document.NewPage();

                        // Een titel maken
                        iText.Paragraph titel = new iText.Paragraph("Academie voor " + sessionModel.Pair.Student1.Study, FontFactory.GetFont("Arial", 12, Font.BOLD));
                        titel.Alignment = 1;

                        // Subtitel maken
                        iText.Paragraph subTitel = new iText.Paragraph(letterTemplate.AvansLocatie, FontFactory.GetFont(STANDARD_FONT_FAMILY, STANDARD_FONT_SIZE - 1));
                        subTitel.Alignment = 1;

                        // elementen toevoegen aan het document
                        document.Add(titel); // de titel toevoegen
                        document.Add(subTitel); // de subtitel toevoegen

                        // Leeg ruimte toevoegen
                        document.Add(new iText.Paragraph(" "));
                        document.Add(new iText.Paragraph(" "));

                        // Bepaal het standaard font om te gebruiken in het grootste deel van het document
                        Font standardFont = FontFactory.GetFont(STANDARD_FONT_FAMILY, STANDARD_FONT_SIZE);

                        // Adressering
                        document.Add(new iText.Paragraph(expert.Company, standardFont));
                        document.Add(new iText.Paragraph(expert.Firstname + " " + expert.Surname, standardFont));
                        document.Add(new iText.Paragraph(expert.Address, standardFont));
                        document.Add(new iText.Paragraph(expert.Postcode + " " +  expert.City, standardFont));

                        // Leeg ruimte toevoegen
                        document.Add(new iText.Paragraph(" "));
                        document.Add(new iText.Paragraph(" "));
                        document.Add(new iText.Paragraph(" "));
                        document.Add(new iText.Paragraph(" "));

                        // Contact informatie tabel
                        document.Add(MakeContactInformationTable(letterTemplate));

                        // Leeg ruimte toevoegen
                        document.Add(new iText.Paragraph(" "));
                        document.Add(new iText.Paragraph(" "));
                        document.Add(new iText.Paragraph(" "));

                        // Inhoud brief
                        document.Add(new iText.Paragraph("Geachte heer/mevrouw " + expert.Surname + ",\r\r", standardFont));

                        Teacher[] teachers = new Teacher[2];
                        int index = -1;
                        foreach (KeyValuePair<int, Teacher> teacherKeyValuePair in sessionModel.Teachers)
                            teachers[++index] = teacherKeyValuePair.Value;

                        bool isPairInvite = sessionModel.Pair.Student2 != null;
                        string studentParagraphString = "Hierbij ontvangt u de afstudeerscriptie van onze ";

                        if (isPairInvite)
                            studentParagraphString += "studenten ";
                        else
                            studentParagraphString += "student ";

                        studentParagraphString += sessionModel.Pair.Student1.Study + ", " + sessionModel.Pair.Student1.Firstname + " " + sessionModel.Pair.Student1.Surname + " ";

                        if (isPairInvite)
                            studentParagraphString += "en " + sessionModel.Pair.Student2.Firstname + " " + sessionModel.Pair.Student2.Surname + " ";

                        // Inleiding
                        document.Add(new iText.Paragraph(studentParagraphString + "van wie u de afstudeerbespreking zult bijwonen. Begeleidende docenten " + teachers[0].Firstname + " " + teachers[0].Surname + " en " + teachers[1].Firstname + " " + teachers[1].Surname + " zullen bij de zitting aanwezig zijn.\r\r", standardFont));

                        document.Add(new iText.Paragraph("De afstudeerzitting is gepland op, " + rowSession.Datum + " om " + sessionModel.Daytime.GetStarttime() + ", in lokaal " + rowSession.Lokaal + " van Avans Hogeschool, " + letterTemplate.AvansAdres + " te " + letterTemplate.AvansLocatie + ".\r\r", standardFont));

                        // Kern van de brief
                        document.Add(new iText.Paragraph(letterTemplate.BeginKern + "\r\r", standardFont));
                        document.Add(new iText.Paragraph(letterTemplate.ReisInformatie + "\r\r", standardFont));
                        document.Add(new iText.Paragraph(letterTemplate.VerdereInformatie + "\r\r", standardFont));

                        // Afsluiting
                        document.Add(new iText.Paragraph("Wij danken u hartelijk voor uw medewerking.", standardFont));
                        document.Add(new iText.Paragraph("Met vriendelijke groet,\r\r", standardFont));
                        document.Add(new iText.Paragraph(letterTemplate.Afzenders, standardFont));

                        // Verander de font style tijdelijk
                        standardFont.SetStyle(Font.ITALIC);

                        document.Add(new iText.Paragraph("Coördinatoren stage en afstuderen", standardFont));

                        // Verander de font style weer terug
                        standardFont.SetStyle(Font.NORMAL);

                        document.Add(new iText.Phrase("", standardFont));

                        iText.Paragraph bijlagenParagraph = new iText.Paragraph("Bijlage(n):      " + letterTemplate.Bijlagen, standardFont);
                        bijlagenParagraph.FirstLineIndent = -55;
                        bijlagenParagraph.IndentationLeft = 75;
                        document.Add(bijlagenParagraph);

                        expert.WasChanged = false;
                    }
                }

                // toon bericht dat exporteren naar PDF gelukt is
                MessageBox.Show("Exporteren gelukt! Bestand is geëxporteerd naar " + filename, "Melding");

                // open het PDF-bestand
                System.Diagnostics.Process.Start(filename);
            }
            catch (PdfException ex)
            {
                // toon bericht als er iets fout gaat
                MessageBox.Show(ex.Message);
            }
            finally
            {
                // het document sluiten
                document.Close();
            }
        }
Esempio n. 3
0
 public pdfPage(LetterTemplate letterTemplate)
     : base()
 {
     _letterTemplate = letterTemplate;
 }
Esempio n. 4
0
        /**
         * Dit maakt de contact informatie tabel zoals te zien is bovenaan de brief bij de adressering
         * Return: De gemaakte tabel
         */
        private PdfPTable MakeContactInformationTable(LetterTemplate letterTemplate)
        {
            // Maak een tabel met het opgegeven aantal kolommen
            PdfPTable rosterTable = new PdfPTable(CONTACT_INFORMATION_NUM_COLUMNS);

            // Bepaal de breedte voor elke kolom
            rosterTable.SetWidths(new float[] { 0.15f, 0.3f, 0.15f, 0.4f });

            // Breedte van tabel instellen
            rosterTable.WidthPercentage = 100;

            // Bepaal het standaard font om te gebruiken bij deze tabel
            Font standardFont = FontFactory.GetFont(STANDARD_FONT_FAMILY, STANDARD_FONT_SIZE - 2);

            // Bepaal het standaard font(vet) om te gebruiken bij deze tabel
            Font standardBoldFont = FontFactory.GetFont(STANDARD_FONT_FAMILY, STANDARD_FONT_SIZE - 2, Font.BOLD);

            // START EERSTE RIJ

            rosterTable.AddCell(MakeTableCell("ons kenmerk", standardBoldFont, true));
            rosterTable.AddCell(MakeTableCell(letterTemplate.Kenmerk, standardFont));
            rosterTable.AddCell(MakeTableCell("contactpersonen", standardBoldFont, true));
            rosterTable.AddCell(MakeTableCell(letterTemplate.Contactpersonen, standardFont));

            // EINDE EERSTE RIJ

            // START TWEEDE RIJ

            rosterTable.AddCell(MakeTableCell("datum", standardBoldFont, true));
            rosterTable.AddCell(MakeTableCell(DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year, standardFont));
            rosterTable.AddCell(MakeTableCell("telefoon", standardBoldFont, true));
            rosterTable.AddCell(MakeTableCell(letterTemplate.Telefoon, standardFont));

            // EINDE TWEEDE RIJ

            // START DERDE RIJ

            rosterTable.AddCell(MakeTableCell("onderwerp", standardBoldFont, true));
            rosterTable.AddCell(MakeTableCell("Afstudeerzitting", standardFont));
            rosterTable.AddCell(MakeTableCell("e-mail", standardBoldFont, true));
            rosterTable.AddCell(MakeTableCell(letterTemplate.Email, standardFont));

            // EINDE DERDE RIJ

            return rosterTable;
        }
Esempio n. 5
0
 public void LetterWindowSaveTemplateClicked(LetterTemplate updatedTemplate)
 {
     LetterTemplateMapper.Save(updatedTemplate);
 }
Esempio n. 6
0
        public void BriefMakenBevestigingClicked(Dictionary<int, Expert> receivers, LetterTemplate letterTemplate)
        {
            // dit zorgt ervoor dat er geen filters worden toegepast in de PDF uitdraai
            MainWindow.textboxSearch.Text = "";

            string fileName;
            if (MainWindow.OpenNewSaveDialog("Bevestigingsbrieven PAZ", ".pdf", "PDF (.pdf)|*.pdf", out fileName) == true)
            {
                // maak en exporteer als pdf
                PDFexporter.CreateLetterPDF(fileName, receivers, letterTemplate);
            }
        }