KOP/Components/Nonvisual/UserControlConfigurableTableDocument.cs
2024-10-16 01:47:44 +04:00

42 lines
1.5 KiB
C#

using MigraDoc.DocumentObjectModel.Tables;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Components.Nonvisual
{
public partial class UserControlConfigurableTableDocument : Component
{
public UserControlConfigurableTableDocument()
{
InitializeComponent();
}
public UserControlConfigurableTableDocument(IContainer container)
{
container.Add(this);
InitializeComponent();
}
public void SaveToDocument<T>(string filePath, string title,
List<(double width, string header, string propName)> columns,
double headerRowHeight, double rowHeight, List<T> data)
{
if (string.IsNullOrEmpty(filePath)) throw new ArgumentNullException("Empty string instead of path to file");
if (string.IsNullOrEmpty(title)) throw new ArgumentNullException("Title string is empty");
if (data.Count == 0) throw new ArgumentNullException("Data list is empty");
if (columns.Count == 0) throw new ArgumentNullException("Column info list is empty");
if (rowHeight == 0D || headerRowHeight == 0D) throw new ArgumentNullException("Row height is empty");
SaveToPdf saver = new SaveToPdf();
saver.CreateConfigurableTableDocument(filePath, title, columns, headerRowHeight, rowHeight, data);
}
}
}