using Components; using Components.NonVisual; using Components.Object; using Components.SaveToPdfHelpers; using OxyPlot.Legends; namespace WinFormsTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); InitializeListBox(); InitializeDataGridView(); } private void InitializeListBox() { customListBox.SetItems(new List { "Hi 1", "Hi 2", "Hi 3", "Hi 4", "Hi 5", }); } private void InitializeDataGridView() { var columns = new List<(string HeaderText, string DataPropertyName, float FillWeight)> { ("Имя", "Name", 1), ("Возраст", "Age", 1), ("Email", "Email", 2) }; customDataGridView1.ConfigureColumns(columns); var data = new List { new Person ("Иван", 30, "ivan@gmail.com" ), new Person ("Мария", 25, "maria@gmail.com") }; customDataGridView1.FillData(data); } private string FilePath() { using (SaveFileDialog saveFileDialog = new SaveFileDialog()) { saveFileDialog.InitialDirectory = "d:\\tmp"; saveFileDialog.Filter = "Excel files (*.pdf)|*.pdf|All files (*.*)|*.*"; saveFileDialog.FilterIndex = 1; saveFileDialog.RestoreDirectory = true; if (saveFileDialog.ShowDialog() == DialogResult.OK) { return saveFileDialog.FileName; } } return String.Empty; } private void GeneratePdfButton_Click(object sender, EventArgs e) { string filePath = FilePath(); if (filePath == String.Empty) { MessageBox.Show("Произошла ошибка: не выбран путь для файла"); return; } var settings = new PdfDocumentData( filePath, "Название документа", new List { new string[,] { { "Ячейка 1.1", "Ячейка 2.1", "Ячейка 3.1" }, { "Ячейка 2.1", "Ячейка 2.2", "Ячейка 3.2" } }, new string[,] { { "Не ячейка 1", "Не ячейка 2" }, { "ЯчАйка 1", "ЯчАйка 2" } } }); try { tablepdf1.GeneratePdf(settings); MessageBox.Show("PDF-документ успешно создан!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show($"Произошла ошибка: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void btnGeneratePDF_Click(object sender, EventArgs e) { string filePath = FilePath(); if (filePath == String.Empty) { MessageBox.Show("Произошла ошибка: не выбран путь для файла"); return; } var settings = new PDFTableSettings { FilePath = filePath, DocumentTitle = "Отчет", HeaderRowHeight = 1.0f, DataRowHeight = 1.0f, DataList = new List { new Person ( "Александ Бубылёв", 30, "Alex@mail.ru" ), new Person ( "Шерлок Холмс", 25, "221B_Baker_Street@mail.com" ), new Person ("Стас Асафьев", 41, "Stas@gmail.com") }, Columns = new List<(string, float, string, int)> { ("ФИО", 6.0f, nameof(Person.Name), 0), ("Возраст", 2.0f, nameof(Person.Age), 1), ("Почта", 6.0f, nameof(Person.Email), 2) } }; try { headeredTablepdf1.GeneratePDFWithHead(settings); MessageBox.Show("PDF-документ успешно создан!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show($"Ошибка: {ex.Message}"); } } private void btnGenerateHistogrammPdf_Click(object sender, EventArgs e) { string filePath = FilePath(); if (filePath == String.Empty) { MessageBox.Show("Произошла ошибка: не выбран путь для файла"); return; } var setting = new HistogramData { FilePath = filePath, DocumentTitle = "Гистограмма", ChartTitle = "Пример гистограммы", LegendPosition = LegendPositions.Bottom, ChartData = new List { new ChartData { SeriesName = "Серия 1", Data = new Dictionary { { "Категория 1", 5 }, { "Категория 2", 10 } } }, new ChartData { SeriesName = "Серия 2", Data = new Dictionary { { "Категория 1", 3 }, { "Категория 2", 8 } } }, new ChartData { SeriesName = "Серия 3", Data = new Dictionary { { "Категория 1", 3 }, { "Категория 2", 8 } } } } }; try { histogrampdf1.CreateHistogramPdf(setting); MessageBox.Show("PDF успешно сгенерирован!", "Успех", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show($"Ошибка: {ex.Message}", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }