Exemple #1
0
        private static void CreateList(DocX doc)
        {
            var list = doc.AddList("Properly structured and follow all good OOP practices", 0, ListItemType.Bulleted);

            doc.AddListItem(list, "Awesome");
            doc.AddListItem(list, "..Very Awesome");
            doc.InsertList(list);
        }
Exemple #2
0
        public static void AddBulletList(List <string> bullets, bool isNote = false)
        {
            var list = _doc.AddList(listType: ListItemType.Bulleted);

            foreach (var bullet in bullets)
            {
                if (isNote && IsNumeric(bullet))
                {
                    continue;
                }

                var li = _doc.AddListItem(list, CleanInvalidXmlChars(bullet));
            }
            foreach (var item in list.Items)
            {
                item.StyleName = "ListParagraph";
                if (isNote)
                {
                    item.StyleName = "ProfNoteBullet";
                }
            }

            //_doc.InsertList(list, _calibri, 10D);
            _doc.InsertList(list);
        }
Exemple #3
0
        private static void InsertBulletedList(DocX doc, string[] comments)
        {
            if (comments.Count() > 0)
            {
                var bulletedList = doc.AddList(comments[0], 0, ListItemType.Bulleted);
                for (int i = 1; i < comments.Count(); i++)
                {
                    doc.AddListItem(bulletedList, comments[i]);
                }

                doc.InsertList(bulletedList);
            }
        }
Exemple #4
0
        /// <summary>
        /// Create a numbered and a bulleted lists with different listItem's levels.
        /// </summary>
        public static void AddList()
        {
            Console.WriteLine("\tAddList()");

            // Create a document.
            using (DocX document = DocX.Create(ListSample.ListSampleOutputDirectory + @"AddList.docx"))
            {
                // Add a title
                document.InsertParagraph("Adding lists into a document").FontSize(15d).SpacingAfter(50d).Alignment = Alignment.center;

                // Add a numbered list where the first ListItem is starting with number 1.
                var numberedList = document.AddList("Berries", 0, ListItemType.Numbered, 1);
                // Add Sub-items(level 1) to the preceding ListItem.
                document.AddListItem(numberedList, "Strawberries", 1);
                document.AddListItem(numberedList, "Blueberries", 1);
                document.AddListItem(numberedList, "Raspberries", 1);
                // Add an item (level 0)
                document.AddListItem(numberedList, "Banana");
                // Add an item (level 0)
                document.AddListItem(numberedList, "Apple");
                // Add Sub-items(level 1) to the preceding ListItem.
                document.AddListItem(numberedList, "Red", 1);
                document.AddListItem(numberedList, "Green", 1);
                document.AddListItem(numberedList, "Yellow", 1);

                // Add a bulleted list with its first item.
                var bulletedList = document.AddList("Canada", 0, ListItemType.Bulleted);
                // Add Sub-items(level 1) to the preceding ListItem.
                document.AddListItem(bulletedList, "Toronto", 1);
                document.AddListItem(bulletedList, "Montreal", 1);
                // Add an item (level 0)
                document.AddListItem(bulletedList, "Brazil");
                // Add an item (level 0)
                document.AddListItem(bulletedList, "USA");
                // Add Sub-items(level 1) to the preceding ListItem.
                document.AddListItem(bulletedList, "New York", 1);
                // Add Sub-items(level 2) to the preceding ListItem.
                document.AddListItem(bulletedList, "Brooklyn", 2);
                document.AddListItem(bulletedList, "Manhattan", 2);
                document.AddListItem(bulletedList, "Los Angeles", 1);
                document.AddListItem(bulletedList, "Miami", 1);
                // Add an item (level 0)
                document.AddListItem(bulletedList, "France");
                // Add Sub-items(level 1) to the preceding ListItem.
                document.AddListItem(bulletedList, "Paris", 1);

                // Insert the lists into the document.
                document.InsertParagraph("This is a Numbered List:\n");
                document.InsertList(numberedList);
                document.InsertParagraph().SpacingAfter(40d);
                document.InsertParagraph("This is a Bulleted List:\n");
                document.InsertList(bulletedList, new Font("Cooper Black"), 15);

                document.Save();
                Console.WriteLine("\tCreated: AddList.docx\n");
            }
        }
Exemple #5
0
        private void AppendListOfInitialData(DocX document)
        {
            var context1 = @"Использована аналитическая модель движения людского потока (определение расчетного времени эвакуации людей из помещений здания по расчету времени движения одного или нескольких людских потоков через эвакуационные выходы от наиболее удаленных мест размещения людей). Расчетное время эвакуации людей tр  установлено по расчету времени движения нескольких людских потоков через эвакуационные выходы от наиболее удаленных мест размещения людей. При расчете весь путь движения людского потока разделен на участки длиной li и шириной δi. Начальными участками являются проходы между рабочими местами, оборудованием. При определении расчетного времени эвакуации людей длина и ширина каждого участка пути эвакуации для проектируемого пожарного отсека здания принята по проекту.";

            document.InsertParagraph(context1).SpacingBefore(10d).Alignment = Alignment.both;

            document.InsertParagraph("Принято при расчете:").SpacingBefore(10d).Alignment = Alignment.both;

            var list1 = document.AddList("все нарушения нормативных документов пожарной безопасности на путях эвакуации и эвакуационных выходах, за пределами проектируемого участка, устранены;", 0, ListItemType.Bulleted);

            document.AddListItem(list1, "ширина выходов из лестничной клетки (ЛК-2 по техническому паспорту) принята не менее 1200 мм в свету, ширина всех эвакуационных выходов в свету из помещений, не входящих в проектируемый участок, не менее 800 мм;", 0);
            document.AddListItem(list1, "все двери помещений рассчитываемого пожарного отсека здания без нормируемого предела огнестойкости и при расчете времени блокирования путей эвакуации приравнены к открытым дверным проемам, так как двери без нормируемого предела огнестойкости не являются  преградой для опасных факторов пожара;", 0);
            document.AddListItem(list1, "двери выходов в коридоры при эвакуации из них менее 15 человек в помещениях, не входящих в проектируемый участок, установлены открывающимися вовнутрь для повышения расчетной ширины пути эвакуации;", 0);
            document.AddListItem(list1, "в помещениях, не входящих в проектируемый участок, оборудование и материалы расположены таким образом, что эвакуация  людей из них организуется  из центра помещений;", 0);
            document.AddListItem(list1, "все средства противопожарной защиты запроектированы согласно норм и требований по пожарной безопасности и имеют сертификаты пожарной безопасности.", 0);

            document.InsertList(list1);

            document.InsertParagraph("Справочные источники информации:").SpacingBefore(10d).SpacingAfter(10d).Heading(HeadingType.Heading2);

            var list2 = document.AddList("все нарушения нормативных документов пожарной безопасности на путях эвакуации и эвакуационных выходах, за пределами проектируемого участка, устранены;", 0, ListItemType.Numbered);

            document.AddListItem(list2, "Федеральный закон Российской Федерации от 22 июля 2008 г. №123-ФЗ «Технический регламент о требованиях пожарной безопасности».", 0);
            document.AddListItem(list2, "Постановление Правительства Российской Федерации от 31 марта 2009 г. № 272 «О порядке проведения расчетов по оценке пожарного риска»", 0);
            document.AddListItem(list2, "Приказ МЧС России от 10 июля 2009 г. № 404 «Методика определения расчетных величин пожарного риска на производственных объектах» (Зарегистрировано в Минюсте РФ 17 августа 2009 г. Регистрационный N 14541).", 0);
            document.AddListItem(list2, "ГОСТ 12.1.004-91*. ССБТ. Пожарная безопасность. Общие требования.", 0);
            document.AddListItem(list2, "ГОСТ Р 12.3.047-98. ССБТ. Пожарная безопасность технологических процессов. Общие требования. Методы контроля.", 0);
            document.AddListItem(list2, "СП 1.13130.2009. Системы противопожарной защиты. Эвакуационные пути и выходы.", 0);
            document.AddListItem(list2, "СП 131.13330.2012. Строительная климатология. Актуализированная версия СНиП 23-01-99.", 0);
            document.AddListItem(list2, "Пожаровзрывоопасность веществ и материалов и средства их тушения: Справ. изд.: в 2 книгах; кн. 2 / А.Н.Баратов, А.Я.Корольченко, Г.Н.Кравчук и др. – М., Химия, 1990. – 384 с.", 0);
            document.AddListItem(list2, "Пожаровзрывоопасность веществ и материалов и средства их тушения: Справ. изд.: в 2 книгах; кн. 1 / А.Н.Баратов, А.Я.Корольченко, Г.Н.Кравчук и др. – М., Химия, 1990. – 496 с.", 0);
            document.InsertList(list2);
        }
Exemple #6
0
        /// <summary>
        /// Create a file and add a picture, a table, an hyperlink, paragraphs, a bulleted list and a numbered list.
        /// </summary>
        public static void CreateRecipe()
        {
            Console.WriteLine("\tCreateRecipe()");

            // Create a new document.
            using (DocX document = DocX.Create(MiscellaneousSample.MiscellaneousSampleOutputDirectory + @"CreateRecipe.docx"))
            {
                // Create a rotated picture from existing image.
                var image   = document.AddImage(MiscellaneousSample.MiscellaneousSampleResourcesDirectory + @"cupcake.png");
                var picture = image.CreatePicture();
                picture.Rotation = 20;

                // Create an hyperlink.
                var hyperlink = document.AddHyperlink("Food.com", new Uri("http://www.food.com/recipe/simple-vanilla-cupcakes-178370"));

                // Create a bulleted list for the ingredients.
                var bulletsList = document.AddList("2 cups of flour", 0, ListItemType.Bulleted);
                document.AddListItem(bulletsList, "3⁄4 cup of sugar");
                document.AddListItem(bulletsList, "1⁄2 cup of butter");
                document.AddListItem(bulletsList, "2 eggs");
                document.AddListItem(bulletsList, "1 cup of milk");
                document.AddListItem(bulletsList, "2 teaspoons of baking powder");
                document.AddListItem(bulletsList, "1⁄2 teaspoon of salt");
                document.AddListItem(bulletsList, "1 teaspoon of vanilla essence");

                // Create a table for text and the picture.
                var table = document.AddTable(1, 2);
                table.Design  = TableDesign.LightListAccent3;
                table.AutoFit = AutoFit.Window;
                table.Rows[0].Cells[0].Paragraphs[0].AppendLine().AppendLine().Append("Simple Vanilla Cupcakes Recipe").FontSize(20).Font(new Font("Comic Sans MS"));
                table.Rows[0].Cells[1].Paragraphs[0].AppendPicture(picture);

                // Create a numbered list for the directions.
                var recipeList = document.AddList("Preheat oven to 375F and fill muffin cups with papers.", 0, ListItemType.Numbered, 1);
                document.AddListItem(recipeList, "Mix butter and sugar until light and fluffy.");
                document.AddListItem(recipeList, "Beat in the eggs, one at a time.", 1);
                document.AddListItem(recipeList, "Add the flour, baking powder and salt, alternate with milk and beat well.");
                document.AddListItem(recipeList, "Add in vanilla.", 1);
                document.AddListItem(recipeList, "Divide in the pans and bake for 18 minutes.");
                document.AddListItem(recipeList, "Let cool 5 minutes an eat.", 1);

                // Insert the data in page.
                document.InsertTable(table);
                var paragraph = document.InsertParagraph();
                paragraph.AppendLine();
                paragraph.AppendLine();
                paragraph.AppendLine("Ingredients").FontSize(15).Bold().Color(Color.BlueViolet);
                document.InsertList(bulletsList);
                var paragraph2 = document.InsertParagraph();
                paragraph2.AppendLine();
                paragraph2.AppendLine("Directions").FontSize(15).Bold().Color(Color.BlueViolet);
                document.InsertList(recipeList);
                var paragraph3 = document.InsertParagraph();
                paragraph3.AppendLine();
                paragraph3.AppendLine("Reference: ").AppendHyperlink(hyperlink).Color(Color.Blue).UnderlineColor(Color.Blue).Append(".");

                // Save this document to disk.
                document.Save();
                Console.WriteLine("\tCreated: CreateRecipe.docx\n");
            }
        }
Exemple #7
0
        public NewBlank(int id_Заказа, DateTime ДатаЗаказа, int id_Профиля, int Высота, int Ширина, int Количество, bool ustanovka, bool nalichniki, bool zamok, bool ruchka, bool petli, string Заказчик_ФИО, int Заказчик_ТелефонныйПрефикс, int Заказчик_Телефон)
        {
            string ConnectionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=" + System.Windows.Forms.Application.StartupPath + @"\Resources\doors.mdf;Integrated Security=True;Connect Timeout=30";

            Directory.CreateDirectory(Environment.CurrentDirectory + @"\Оформленные заказы");
            string path = Environment.CurrentDirectory + @"\Оформленные заказы\Заказ №" + (100000 + id_Заказа).ToString() + ".docx";

            DocX document = DocX.Create(path);

            document.MarginTop    = 30;
            document.MarginLeft   = 30;
            document.MarginRight  = 30;
            document.MarginBottom = 30;

            document.InsertParagraph($"{DataReturner(ДатаЗаказа.Day, ДатаЗаказа.Month, ДатаЗаказа.Year)}\n").
            Font("Times New Roman").
            FontSize(11).
            Alignment = Alignment.right;

            document.InsertParagraph("Бланк-заказ на установку двери\n\n").
            Font("Times New Roman").
            FontSize(28).
            Bold().
            Alignment = Alignment.center;

            document.InsertParagraph
                ("      \"ООО Наши Двери\" именуемое в дальнейшем Исполнитель, в лице менеджера по продажам " +
                $"\"Ирина М.\" и директора компании Никита К. с одной стороны, и {Заказчик_ФИО} " +
                $"именуемое в дальнейшем Заказчик с другой стороны, заключили настоящий договор " +
                $"о нижеследующем." +
                $"\n\n" +
                $"1. Согласно настоящему договору Исполнитель обязуется по заданию Заказчика оказать следующие услуги: ").
            Font("Times New Roman").
            FontSize(12);

            #region СписокТребований
            List СписокТребований = document.AddList();
            document.AddListItem(СписокТребований, $" выполнить изготовление двери(-ей), в количестве: {Количество} экземпляр(-ов)", 1, ListItemType.Numbered);

            if (ustanovka)
            {
                document.AddListItem(СписокТребований, " выполнить установку двери(-ей)", 1, ListItemType.Numbered);
            }

            if (nalichniki)
            {
                document.AddListItem(СписокТребований, " выполнить установку наличников", 1, ListItemType.Numbered);
            }

            if (zamok)
            {
                document.AddListItem(СписокТребований, " выполнить установку замка(-ов) в дверь(-и)", 1, ListItemType.Numbered);
            }

            if (ruchka)
            {
                document.AddListItem(СписокТребований, " выполнить установку ручки (ручек) в дверь(-и)", 1, ListItemType.Numbered);
            }

            if (petli)
            {
                document.AddListItem(СписокТребований, " выполнить установку петель", 1, ListItemType.Numbered);
            }

            document.InsertList(СписокТребований, new Font("Times New Roman"), 12);
            #endregion

            document.InsertParagraph("В свою очередь Заказчик обязуется оплатить эти услуги.\n")
            .Font("Times New Roman")
            .FontSize(12);
            #region Калькулирование Стоимости

            int[]         mass        = new int[5];
            List <double> ЦенаПрофиля = new List <double>();

            #region Запросы к БД
            SqlConnection Connection = new SqlConnection(ConnectionString);
            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SqlCommand    comm1    = new SqlCommand("SELECT cena_ustanovki FROM Dopolnitelno", Connection);
            SqlDataReader myReader = comm1.ExecuteReader(CommandBehavior.CloseConnection);
            while (myReader.Read())
            {
                mass[0] = Convert.ToInt32(myReader[0]);
            }
            Connection.Close();
            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SqlCommand    comm2     = new SqlCommand("SELECT cena_nalichniki FROM Dopolnitelno", Connection);
            SqlDataReader myReader2 = comm2.ExecuteReader(CommandBehavior.CloseConnection);
            while (myReader2.Read())
            {
                mass[1] = Convert.ToInt32(myReader2[0]);
            }
            Connection.Close();
            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SqlCommand    comm3     = new SqlCommand("SELECT cena_zamki FROM Dopolnitelno", Connection);
            SqlDataReader myReader3 = comm3.ExecuteReader(CommandBehavior.CloseConnection);
            while (myReader3.Read())
            {
                mass[2] = Convert.ToInt32(myReader3[0]);
            }
            Connection.Close();
            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SqlCommand    comm4     = new SqlCommand("SELECT cena_ruchka FROM Dopolnitelno", Connection);
            SqlDataReader myReader4 = comm4.ExecuteReader(CommandBehavior.CloseConnection);
            while (myReader4.Read())
            {
                mass[3] = Convert.ToInt32(myReader4[0]);
            }
            Connection.Close();
            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SqlCommand    comm5     = new SqlCommand("SELECT cena_petli FROM Dopolnitelno", Connection);
            SqlDataReader myReader5 = comm5.ExecuteReader(CommandBehavior.CloseConnection);
            while (myReader5.Read())
            {
                mass[4] = Convert.ToInt32(myReader5[0]);
            }
            Connection.Close();
            try
            {
                Connection.Open();
            }
            catch (SqlException)
            {
                MessageBox.Show("Проверьте, достаточно ли места на диске, достаточно ли прав у учетной записи для операций с БД (См. справку), файлы MDF и LDF не должны быть помечены \"Только для чтения\". \n\nВозможно стоит попробовать отключить БД и запустить программу еще раз.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            SqlCommand    comm6     = new SqlCommand("SELECT cena FROM Profili", Connection);
            SqlDataReader myReader6 = comm6.ExecuteReader(CommandBehavior.CloseConnection);
            while (myReader6.Read())
            {
                ЦенаПрофиля.Add(Math.Round(Convert.ToDouble(myReader6[0]), 4));
            }
            Connection.Close();

            #endregion

            double sum = ЦенаПрофиля[id_Профиля] * Высота * Ширина * Количество +
                         mass[0] * Convert.ToInt32(ustanovka) +
                         mass[1] * Convert.ToInt32(nalichniki) +
                         mass[2] * Convert.ToInt32(zamok) +
                         mass[3] * Convert.ToInt32(ruchka) +
                         mass[4] * Convert.ToInt32(petli);

            #endregion

            document.InsertParagraph($"2. Стоимость оказываемых услуг составляет: {sum} бел.руб.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph($"3. Услуги оплачиваются в течении четырнадцати календарных дней с момента заключения договора.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph($"4. В случае невозможности исполнения, возникшей по вине Заказчика, услуги подлежат оплате в полном объеме.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph($"5. В случае, когда невозможность исполнения возникла по обстоятельствам, за которые ни одна из сторон не отвечает, Заказчик возмещает Исполнителю фактически понесенные им расходы.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph($"6. Заказчик вправе отказаться от исполнения настоящего договора при условии оплаты Исполнителю фактически понесенных им расходов.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph($"7. Исполнитель вправе отказаться от исполнения настоящего договора при условии полного возмещения Заказчику убытков.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph($"8. К настоящему договору применяются общие положения о подряде (статьи 656 - 682 ГК РБ ) и положения о бытовом подряде (статьи 683 - 695 ГК РБ), если это не противоречит статьям 733 - 737 ГК, регулирующим вопросы возмездного оказания услуг.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph($"9. Срок действия настоящего договора:")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            #region Подсчет и увеличение срока заказа
            DateTime IncreasedDateOfOrdering = DateTime.Parse($"{ ДатаЗаказа.Day}.{ ДатаЗаказа.Month}.{ ДатаЗаказа.Year}");
            IncreasedDateOfOrdering = IncreasedDateOfOrdering.AddDays(14);
            #endregion

            document.InsertParagraph($"Начало: {DataReturner(ДатаЗаказа.Day, ДатаЗаказа.Month, ДатаЗаказа.Year)}\n" +
                                     $"Конец: {DataReturner(IncreasedDateOfOrdering.Day, IncreasedDateOfOrdering.Month, IncreasedDateOfOrdering.Year)}")
            .Font("Times New Roman")
            .FontSize(12);

            document.InsertParagraph
                ("11. Договор составлен в 2-х экземплярах, по одному для каждой из сторон.")
            .Font("Times New Roman")
            .FontSize(12)
            .Alignment = Alignment.both;

            document.InsertParagraph
                ("12.Адреса и банковские реквизиты сторон:\n\n" +
                $"Заказчик:_________________________________________________________________________________________________________________________________________________________________________. Контактный телефон: +375({Заказчик_ТелефонныйПрефикс}){Заказчик_Телефон}\n\n" +
                "Исполнитель: \"ООО Наши Двери\", ул. Неизвестная 16, г.Минск. \n*Какие-то банковские реквизиты здесь*.\n\n\n")
            .Font("Times New Roman")
            .FontSize(12);

            document.InsertParagraph($"Подпись Заказчика: ____________________\n")
            .Font("Times New Roman")
            .FontSize(12);

            document.InsertParagraph($"Подпись Исполнителя: ____________________")
            .Font("Times New Roman")
            .FontSize(12);

            document.Save();
        }
Exemple #8
0
        static void Main()
        {
            using (StreamReader sr = new StreamReader("Content/text.txt", Encoding.UTF8))
            {
                using (DocX doc = DocX.Create("Output.doc"))
                {
                    Paragraph p = doc.InsertParagraph(sr.ReadLine(), false);
                    p.Alignment = Alignment.center;
                    p.FontSize(32);
                    p.Bold();
                    Image   img = doc.AddImage("Content/rpg-game.png");
                    Picture pic = img.CreatePicture(300, 600);
                    p.AppendPicture(pic);
                    doc.InsertParagraph(sr.ReadLine());
                    Paragraph  p3     = doc.InsertParagraph(sr.ReadLine());
                    Formatting format = new Formatting {
                        Bold = true
                    };
                    p3.ReplaceText("role playing game", "role playing game", false, RegexOptions.None, format);
                    format.UnderlineStyle = UnderlineStyle.singleLine;
                    p3.ReplaceText("grand prize!", "grand prize!", false, RegexOptions.None, format);
                    doc.InsertParagraph(sr.ReadLine());

                    List list = doc.AddList(sr.ReadLine(), 0, ListItemType.Bulleted);
                    doc.AddListItem(list, sr.ReadLine());
                    doc.AddListItem(list, sr.ReadLine());
                    doc.AddListItem(list, sr.ReadLine());
                    list.Items[0].IndentationBefore = 1.5f;
                    list.Items[1].IndentationBefore = 1.5f;
                    list.Items[2].IndentationBefore = 1.5f;
                    doc.InsertList(list);
                    doc.InsertParagraph("");

                    string[] tableHeaders = sr.ReadLine().Split();

                    Table table = doc.AddTable(4, 3);
                    table.Alignment = Alignment.center;
                    table.Design    = TableDesign.TableGrid;
                    table.Rows[0].Cells[0].FillColor = Color.CornflowerBlue;
                    table.Rows[0].Cells[0].Paragraphs.First().Append(tableHeaders[0]).Bold().Alignment = Alignment.center;
                    foreach (var cell in table.Rows[0].Cells)
                    {
                        cell.Width        = doc.PageWidth / 3;
                        cell.MarginBottom = 0;
                        cell.MarginLeft   = 0;
                        cell.MarginRight  = 0;
                        cell.MarginTop    = 0;
                    }
                    table.Rows[0].Cells[1].FillColor = Color.CornflowerBlue;
                    table.Rows[0].Cells[1].Paragraphs.First().Append(tableHeaders[1]).Bold().Alignment = Alignment.center;
                    table.Rows[0].Cells[2].FillColor = Color.CornflowerBlue;
                    table.Rows[0].Cells[2].Paragraphs.First().Append(tableHeaders[2]).Bold().Alignment = Alignment.center;
                    string[] tableContents = sr.ReadLine().Split(new char [] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)
                                             .Concat(sr.ReadLine().Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries))
                                             .Concat(sr.ReadLine().Split(new char[] { ' ', '\t' }, StringSplitOptions.RemoveEmptyEntries)).ToArray();
                    int index = 0;
                    for (int i = 1; i < table.RowCount; i++)
                    {
                        for (int j = 0; j < table.ColumnCount; j++)
                        {
                            table.Rows[i].Cells[j].Paragraphs[0].Append(tableContents[index]).Alignment = Alignment.center;
                            index++;
                        }
                    }
                    doc.InsertTable(table);
                    doc.InsertParagraph(sr.ReadLine());

                    Paragraph p4 = doc.InsertParagraph(sr.ReadLine()).Bold().FontSize(12).Color(Color.DarkBlue);
                    p4.ReplaceText("SPECTACULAR", "SPECTACULAR", false, RegexOptions.None, new Formatting {
                        Bold = true, FontColor = Color.DarkBlue, Size = 12
                    });
                    p4.AppendLine(sr.ReadLine().ToUpper())
                    .Bold()
                    .FontSize(24)
                    .UnderlineStyle(UnderlineStyle.singleLine)
                    .Color(Color.DarkBlue)
                    .UnderlineColor(Color.DarkBlue);
                    p4.Alignment = Alignment.center;

                    doc.Save();
                }
            }
        }
        public static void CreateSampleDocument()
        {
            using (DocX document = DocX.Create("../../MyDocXDocument.docx"))
            {
                Paragraph headLine     = document.InsertParagraph();
                string    headLineText = "SoftUni OOP Game Contest";
                headLine.AppendLine(headLineText).Bold().FontSize(32);
                headLine.Alignment = Alignment.center;

                Image     imageGame        = document.AddImage("../../rpg-game.png");
                Paragraph pictureParagraph = document.InsertParagraph("", false);
                Picture   game             = imageGame.CreatePicture(250, 600);
                pictureParagraph.InsertPicture(game);

                Paragraph text = document.InsertParagraph();
                text.AppendLine();
                text.Append("SoftUni is organizing a contest for the best ");
                text.Append("role playing game").Bold();
                text.Append(" from the OOP teamwork\n projects. The winning teams will receive a ");
                text.Append("grand prize").Bold().UnderlineStyle(UnderlineStyle.singleLine);
                text.Append("!\nThe game should be:");

                List bullets = document.AddList(null, 0, ListItemType.Bulleted);
                document.AddListItem(bullets, "Properly structured and follow all good OOP practices");
                document.AddListItem(bullets, "Awesome");
                document.AddListItem(bullets, "..Very Awesome");
                document.InsertList(bullets);
                document.InsertParagraph("\n");

                Table table = document.AddTable(4, 3);
                table.Alignment = Alignment.center;
                table.Rows[0].Cells[0].Paragraphs.First().Append("Team").Bold();
                table.Rows[0].Cells[0].Paragraphs.First().Alignment = Alignment.center;
                table.Rows[0].Cells[1].Paragraphs.First().Append("Game").Bold();
                table.Rows[0].Cells[1].Paragraphs.First().Alignment = Alignment.center;
                table.Rows[0].Cells[2].Paragraphs.First().Append("Points").Bold();
                table.Rows[0].Cells[2].Paragraphs.First().Alignment = Alignment.center;

                for (int i = 1; i < 4; i++)
                {
                    for (int j = 0; j < 3; j++)
                    {
                        table.Rows[i].Cells[j].Paragraphs.First().Append("-");
                        table.Rows[i].Cells[j].Paragraphs.First().Alignment = Alignment.center;
                    }
                }

                table.Rows[0].Cells.ForEach(c => c.Width = 300);
                table.Rows[1].Cells.ForEach(c => c.Width = 300);
                table.Rows[2].Cells.ForEach(c => c.Width = 300);
                document.InsertTable(table);

                Paragraph finalParagraph = document.InsertParagraph();
                finalParagraph.AppendLine();
                finalParagraph.Append("The top 3 teams will receive a ");
                finalParagraph.Append("SPECTACULAR").Bold().FontSize(16);
                finalParagraph.Append(" prize:\n");
                finalParagraph.Append("A HANDSHAKE FROM NAKOV").Bold().FontSize(24).UnderlineStyle(UnderlineStyle.singleLine);
                finalParagraph.Alignment = Alignment.center;
                document.Save();
            }
        }
Exemple #10
0
        public void BuildDocument(string[] ScriptItems)
        {
            string FullDocFileName = Cappy.FolderName + @"\" + Cappy.Prefix + Cappy.FieldSeperator + Cappy.GetSaveTime() + Cappy.FieldSeperator + Cappy.DocExtension;

            using (DocX document = DocX.Create(FullDocFileName))
            {
                foreach (string ScriptItem in ScriptItems)
                {
                    if (ScriptItem != null)
                    {
                        // instantiate some
                        // TODO: this loop contains alot of copy paste and hackiness because im tired and shit, please clean it up
                        string[] Fields = ScriptItem.Split(';');

                        string ButtonAction  = String.Empty;
                        string ButtonClicked = String.Empty;
                        string WindowText    = String.Empty;
                        string FullFileName  = String.Empty;
                        string FocusFileName = String.Empty;

                        if (Fields.Length == 5)
                        {
                            ButtonAction  = Fields[0];
                            ButtonClicked = Fields[1];
                            WindowText    = Fields[2];
                            FullFileName  = Fields[3];
                            FocusFileName = Fields[4];
                        }
                        else if (Fields.Length == 3)
                        {
                            ButtonAction  = Fields[0];
                            ButtonClicked = Fields[1];
                            FullFileName  = Fields[2];
                        }

                        string ParagraphText;

                        if (Fields.Length == 5)
                        {
                            // because alot of things in windows have weird window names, or you perform more advanced actions on them then click, let's define some things to make our documents nicer
                            if (!String.IsNullOrEmpty(WindowText))
                            {
                                ParagraphText = ButtonAction + " " + WindowText;
                            }
                            else
                            {
                                // if we can't determine what was clicked, resort to this.
                                ParagraphText = ButtonAction + " << FILL IN MISSING TEXT >>";
                            }

                            // create our paragraph to work with
                            Paragraph p = document.InsertParagraph();

                            // get bitmaps of the desired images
                            System.Drawing.Image FullCaptureImage  = GetImage(FullFileName);
                            System.Drawing.Image FocusCaptureImage = GetImage(FocusFileName);

                            // instantiate memory streams for writing our bitmaps to
                            MemoryStream FullCaptureStream  = new MemoryStream();
                            MemoryStream FocusCaptureStream = new MemoryStream();

                            // save our bitmaps into the memory stream
                            FullCaptureImage.Save(FullCaptureStream, FullCaptureImage.RawFormat);
                            FocusCaptureImage.Save(FocusCaptureStream, FocusCaptureImage.RawFormat);

                            // set position in memory stream
                            FullCaptureStream.Seek(0, SeekOrigin.Begin);
                            FocusCaptureStream.Seek(0, SeekOrigin.Begin);

                            // create the base image to work with, and add it to our document object for later
                            Xceed.Document.NET.Image FullCapture  = document.AddImage(FullCaptureStream);
                            Xceed.Document.NET.Image FocusCapture = document.AddImage(FocusCaptureStream);

                            // convert image to picture usable in a document
                            Picture FullCapturePic  = FullCapture.CreatePicture();
                            Picture FocusCapturePic = FocusCapture.CreatePicture();

                            // because screenshots will be a constant size, simply set a scalar to our desired resolution. we can also use this for calculating the focus size.
                            const int imgWidth  = 512;
                            const int imgHeight = 288;

                            // apply aforementioned scalar
                            FullCapturePic.Width  = imgWidth;
                            FullCapturePic.Height = imgHeight;

                            // create focused screenshot size
                            Size focusbbox = new Size(imgWidth, imgHeight);

                            // get the scaled version of focused image
                            Size focusSize = ExpandToBound(FocusCaptureImage.Size, focusbbox);
                            FocusCapturePic.Width  = focusSize.Width;
                            FocusCapturePic.Height = focusSize.Height;

                            // insert bullet list
                            var list = document.AddList(listType: ListItemType.Numbered, continueNumbering: true);
                            document.AddListItem(list, ParagraphText, 0, listType: ListItemType.Numbered);

                            // insert images
                            p.InsertListBeforeSelf(list);
                            p.AppendLine().AppendPicture(FullCapturePic);
                            p.AppendLine(); // space the images
                            p.AppendLine().AppendPicture(FocusCapturePic);
                            p.AppendLine(); // leave a space for writing

                            p.InsertPageBreakAfterSelf();

                            // release unneeded resources
                            FullCaptureImage.Dispose();
                            FullCaptureStream.Dispose();
                            FocusCaptureImage.Dispose();
                            FocusCaptureStream.Dispose();
                        }
                        if (Fields.Length == 3)
                        {
                            ParagraphText = ButtonAction + " " + ButtonClicked;

                            // create our paragraph to work with
                            Paragraph p = document.InsertParagraph();

                            // get bitmaps of the desired images
                            System.Drawing.Image FullCaptureImage = GetImage(FullFileName);

                            // instantiate memory streams for writing our bitmaps to
                            MemoryStream FullCaptureStream = new MemoryStream();

                            // save our bitmaps into the memory stream
                            FullCaptureImage.Save(FullCaptureStream, FullCaptureImage.RawFormat);

                            // set position in memory stream
                            FullCaptureStream.Seek(0, SeekOrigin.Begin);

                            // create the base image to work with, and add it to our document object for later
                            Xceed.Document.NET.Image FullCapture = document.AddImage(FullCaptureStream);

                            // convert image to picture usable in a document
                            Picture FullCapturePic = FullCapture.CreatePicture();

                            // because screenshots will be a constant size, simply set a scalar to our desired resolution. we can also use this for calculating the focus size.
                            const int imgWidth  = 512;
                            const int imgHeight = 288;

                            // apply aforementioned scalar
                            FullCapturePic.Width  = imgWidth;
                            FullCapturePic.Height = imgHeight;

                            // insert bullet list
                            var list = document.AddList(listType: ListItemType.Numbered, continueNumbering: true);
                            document.AddListItem(list, ParagraphText, 0, listType: ListItemType.Numbered);

                            // insert images
                            p.InsertListBeforeSelf(list);
                            p.AppendLine().AppendPicture(FullCapturePic);
                            p.AppendLine(); // space the images

                            // leave a space for writing
                            p.InsertPageBreakAfterSelf();

                            // release unneeded resources
                            FullCaptureImage.Dispose();
                            FullCaptureStream.Dispose();
                        }
                    }
                }
                document.Save();
            }
        }