using BarsukovComponents.NotVisualComponents.Configs; using System; using System.Collections.Generic; using System.ComponentModel; using MigraDoc; using MigraDoc.DocumentObjectModel; using PdfSharp.Pdf; using MigraDoc.Rendering; using BarsukovComponents.Exceptions; namespace BarsukovComponents.NotVisualComponents { public partial class PdfHugeText : Component { public PdfHugeText() { InitializeComponent(); } public PdfHugeText(IContainer container) { container.Add(this); InitializeComponent(); } public void CreatePdf(TextPdfConf conf) { if (string.IsNullOrEmpty(conf.Filename) || string.IsNullOrEmpty(conf.Title) || conf.Rows.Count == 0) { throw new CustomException("Путь до файла, заголовок или текст пусты"); } Document document = new Document(); Section section = document.AddSection(); Paragraph paragraphTitle = section.AddParagraph(); paragraphTitle.AddText(conf.Title); paragraphTitle.Format.Font.Bold = true; paragraphTitle.Format.Font.Size = 20; paragraphTitle.Format.SpaceAfter = "0.3cm"; Paragraph paragraph = section.AddParagraph(); paragraph.Format.Font.Size = 14; foreach (var row in conf.Rows) { paragraph.AddText(row + '\n'); } var renderer = new PdfDocumentRenderer(true); renderer.Document = document; renderer.RenderDocument(); renderer.PdfDocument.Save(conf.Filename); } } }