using Aspose.Words; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace COPWinForms { public partial class ComponentWord1 : Component { private string _fileName; // private WordprocessingDocument? _wordDocument; // private Body? _docBody; public string FileName { set { if (string.IsNullOrEmpty(value)) { return; } if (!value.EndsWith(".docx")) { throw new ArgumentException("No docx file"); } _fileName = value; } } public ComponentWord1() { InitializeComponent(); _fileName = string.Empty; } public ComponentWord1(IContainer container) { container.Add(this); InitializeComponent(); _fileName = string.Empty; } public void CreateWordText(TextWord textWord) { if (string.IsNullOrEmpty(textWord.FilePath) || string.IsNullOrEmpty(textWord.DocumentTitle) || !CheckData(textWord.TextData)) { throw new Exception("Не все данные заполнены"); } // Создание документа Document document = new Document(); DocumentBuilder builder = new DocumentBuilder(document); Style titleStyle = builder.Document.Styles.Add(StyleType.Paragraph, "Title"); titleStyle.Font.Size = 16; titleStyle.Font.Bold = true; // Установка заголовка документа builder.ParagraphFormat.Style = titleStyle; builder.Writeln(textWord.DocumentTitle); // Создание обычного стиля для остального текста Style normalStyle = builder.Document.Styles[StyleIdentifier.Normal]; normalStyle.Font.Size = 12; // Применение обычного стиля для остального текста builder.ParagraphFormat.Style = normalStyle; // Установка заголовка документа document.BuiltInDocumentProperties.Title = textWord.DocumentTitle; foreach (string textLine in textWord.TextData) { // Добавление строки текста в документ builder.Writeln(textLine); } document.Save(textWord.FilePath); } bool CheckData(string[] data) { for (int i = 0; i < data.Length; i++) { if (string.IsNullOrEmpty(data[i])) return false; } return true; } } }