PIbd-32_Rogashova_E.A._COP_1/COPWinForms/ComponentWord1.cs

93 lines
2.9 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}
}