using System.Security.Cryptography.Xml; using WinFormsLibrary1; using WinFormsLibrary1.Configs.Diagram; using WinFormsLibrary1.Configs.Image; using WinFormsLibrary1.Models; using WinFormsLibrary1.Errors; using WinFormsLibrary1.Configs.Diagram; using WinFormsLibrary1.Configs.Table; using PdfSharp.Pdf.Content.Objects; namespace WinFormsApp1 { public partial class Form1 : Form { private PdfWithImages pdfWithImages = new PdfWithImages(); private List selectedImages = new List(); private PdfWithTable pdfWithTable = new PdfWithTable(); private PdfWithDiagram pdfWithDiagram = new PdfWithDiagram(); public Form1() { InitializeComponent(); FillCustomCheckedListBox(); FillCustomDataTree(); } private void FillCustomCheckedListBox() { List list = new List() { "Значение 1", "Значение 2", "Значение 3" }; for (int i = 0; i < list.Count; i++) { customCheckedListBox.AddItem(list[i]); } } private void FillCustomDataTree() { departamentComboBox.Items.Add("Отдел продаж"); departamentComboBox.Items.Add("Отдел аналитики"); departamentComboBox.Items.Add("IT отдел"); DataTreeNodeConfig config = new DataTreeNodeConfig(new List { "Department", "Position", "Name" }); customDataTree.LoadConfig(config); List employees = new List { new Employee("Иванов Иван", "Менеджер", "Отдел продаж"), new Employee("Петров Петр", "Аналитик", "Отдел аналитики"), new Employee("Сидоров Сидор", "Менеджер", "Отдел продаж"), new Employee("Мария Смирнова", "Разработчик", "IT отдел"), new Employee("Ольга Петрова", "Менеджер", "Отдел продаж"), }; foreach (var employee in employees) { customDataTree.AddObject(employee); } } private void addInListboxItemButton_Click(object sender, EventArgs e) { string value = listboxItemValuetextBox.Text; if (customCheckedListBox.Items.Contains(value)) customCheckedListBox.SelectedElement = value; else customCheckedListBox.AddItem(value); } private void clearListboxButton_Click(object sender, EventArgs e) { customCheckedListBox.Clear(); } private void getSelectedItemButton_Click(object sender, EventArgs e) { string value = customCheckedListBox.SelectedElement; if (value == string.Empty) selectedItemLabel.Text = "Selected item: ~empty value~"; else selectedItemLabel.Text = "Selected item: " + value; } private void checkCustomTextBoxButton_Click(object sender, EventArgs e) { try { errorCustomTextBoxLabel.Text = customTextBox.Value == string.Empty ? "~empty value~" : customTextBox.Value; } catch (RangeNotSetException ex) { // Обрабатываем ошибку, если диапазон не задан. MessageBox.Show(ex.Message, "Ошибка диапазона", MessageBoxButtons.OK, MessageBoxIcon.Warning); } catch (TextLengthOutOfRangeException ex) { // Обрабатываем ошибку, если длина текста вне диапазона. MessageBox.Show(ex.Message, "Ошибка длины текста", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } private void addEmployeeButton_Click(object sender, EventArgs e) { if (positionTextBox.Text == null || nameTextBox.Text == null || departamentComboBox.SelectedItem == null) { return; } customDataTree.AddObject(new(nameTextBox.Text, positionTextBox.Text, departamentComboBox.SelectedItem.ToString())); customDataTree.Update(); } private void getSelectedTreeItemButton_Click(object sender, EventArgs e) { Employee employee = customDataTree.GetSelectedObject(); if (employee == null) { return; } positionTextBox.Text = employee.Position; nameTextBox.Text = employee.Name; departamentComboBox.SelectedItem = employee.Department; } // PDF WITH IMAGE private void button1_Click(object sender, EventArgs e) { using OpenFileDialog openFileDialog = new OpenFileDialog { Multiselect = true, Filter = "Изображения|*.jpg;*.jpeg;*.png;*.bmp" }; if (openFileDialog.ShowDialog() == DialogResult.OK) { // Очищаем предыдущие данные selectedImages.Clear(); listBoxImages.Items.Clear(); // Добавляем выбранные изображения в список foreach (string filePath in openFileDialog.FileNames) { selectedImages.Add(File.ReadAllBytes(filePath)); listBoxImages.Items.Add(Path.GetFileName(filePath)); } } } private void createPdfButton_Click(object sender, EventArgs e) { if (selectedImages.Count == 0) { MessageBox.Show("Выберите хотя бы одно изображение!", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } // Конфигурация для PDF-документа var config = new PdfWithImageConfig { FilePath = "PdfWithImage.pdf", Header = "Документ с изображениями", Images = selectedImages }; // Создание PDF через компонент pdfWithImages.CreatePdf(config); MessageBox.Show("PDF успешно создан!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); } // PDF WITH TABLE private void pdfTableButton_Click(object sender, EventArgs e) { PdfWithTableConfig config = new PdfWithTableConfig { FileName = "PdfWithTable.pdf", DocumentTitle = "Пример Таблицы", RowHeights = new List { 1, 1, 1 }, Headers = new Dictionary> { { "Личные данные", new List {"Имя", "Фамилия"} }, { "Возраст", new List() } }, PropertiesPerRow = new List { "Name", "Surname", "Age" }, Data = new List { new Human("Иван", "Иванов", 30), new Human("Петр", "Петров", 25), new Human("Сергей", "Сергеев", 35) } }; try { // Вызов метода для создания PDF pdfWithTable.CreatePdf(config); MessageBox.Show("PDF-документ успешно создан!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show($"Ошибка при создании PDF: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } // PDF TO DIAGRAM private void pdfDiagramButton_Click(object sender, EventArgs e) { try { pdfWithDiagram.CreateDoc(new PdfWithDiagramConfig { FilePath = "PdfWithPieDiagram.pdf", Header = "Заголовок", ChartTitle = "Круговая диаграмма", LegendLocation = WinFormsLibrary1.Configs.Diagram.Location.Bottom, Data = new Dictionary> { { "Product A", new List<(string Name, double Value)> { ("1111", 30.0), ("2", 20.0), ("3", 50.0) } } } }); MessageBox.Show("PDF документ с диаграммой создан!", "Успех"); } catch (Exception ex) { MessageBox.Show($"Ошибка: {ex.Message}"); } } } }