Esempio n. 1
0
        private void exportToPdfButton_Click(object sender, RoutedEventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = "Pdf files(*.pdf) | *.pdf";
            if (saveFileDialog.ShowDialog() == true)
            {
                PdfSerializer serializer = new PdfSerializer(App.UserFoods);
                string        result     = serializer.SerializeWithSummary();
                string[]      lines      = result.Split('\n');

                PdfDocument document = new PdfDocument();
                document.Info.Title = saveFileDialog.SafeFileName;

                PdfPage   page = document.AddPage();
                XGraphics gfx  = XGraphics.FromPdfPage(page);
                XFont     font = new XFont("Verdana", 10, XFontStyle.BoldItalic);

                int i = 0;
                foreach (string line in lines)
                {
                    gfx.DrawString(line, font, XBrushes.Black,
                                   new XRect(0, 0 + i, page.Width, page.Height),
                                   XStringFormats.TopLeft);
                    i += 10;
                }

                document.Save(saveFileDialog.FileName);
            }
        }
Esempio n. 2
0
        public void Serialize_ShouldSerializeListOfIFoodObjestsToPdf_ReturnsPdfSerializedString()
        {
            PdfSerializer serializer     = new PdfSerializer(_foods);
            string        expectedResult = "Ingredients:\r\n\t-Apple\r\n\t\t*Calories: 15\r\n\t\t*Carbohydrates: 10\r\n\t\t*Fat: 5\r\n\t\t*Proteins: 13\r\n\t\t*Weight: 100";

            expectedResult += "\r\n\t-Melon\r\n\t\t*Calories: 8\r\n\t\t*Carbohydrates: 12\r\n\t\t*Fat: 22\r\n\t\t*Proteins: 33\r\n\t\t*Weight: 100";
            expectedResult += "\r\n\t-Orange\r\n\t\t*Calories: 1\r\n\t\t*Carbohydrates: 2\r\n\t\t*Fat: 3\r\n\t\t*Proteins: 4\r\n\t\t*Weight: 100\r\n";

            string result = serializer.Serialize();

            Assert.AreEqual(expectedResult, result);
        }