KOP-PIbd-32-Katysheva-N-E/ComponentsLibrary/ComponentBigText.cs
2024-10-28 20:23:38 +04:00

88 lines
2.7 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 ComponentsLibrary.entities;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System.ComponentModel;
namespace ComponentsLibrary
{
public partial class ComponentBigText : Component
{
public ComponentBigText()
{
InitializeComponent();
}
public ComponentBigText(IContainer container)
{
container.Add(this);
InitializeComponent();
}
public void CreateWordText(DocumentSymple docInfo)
{
if (string.IsNullOrEmpty(docInfo.FileUrl) || string.IsNullOrEmpty(docInfo.Title) || !CheckData(docInfo.Text))
{
throw new Exception("Не все данные заполнены");
}
using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(docInfo.FileUrl, WordprocessingDocumentType.Document))
{
// Добавляем главную часть документа
MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();
mainPart.Document = new Document();
Body body = mainPart.Document.AppendChild(new Body());
// Создаем параграф для заголовка
Paragraph titleParagraph = new Paragraph();
// Задаем свойства параграфа (центровка и отступ)
ParagraphProperties paragraphProperties = new ParagraphProperties();
paragraphProperties.AppendChild(new Justification() { Val = JustificationValues.Center });
// Применяем свойства параграфа к заголовку
titleParagraph.AppendChild(paragraphProperties);
// Создаем "бегунок" текста
Run titleRun = new Run();
// Устанавливаем свойства "бегунка" (шрифт, размер, жирный шрифт)
RunProperties runProperties = new RunProperties();
runProperties.AppendChild(new Bold());
runProperties.AppendChild(new FontSize() { Val = "48" }); // Размер шрифта, 24pt
// Применяем свойства к тексту
titleRun.AppendChild(runProperties);
// Добавляем текст заголовка
titleRun.AppendChild(new Text(docInfo.Title));
// Добавляем "бегунок" с текстом в параграф
titleParagraph.AppendChild(titleRun);
// Добавляем параграф в тело документа
body.AppendChild(titleParagraph);
foreach (var line in docInfo.Text)
{
Paragraph paragraph = new Paragraph(new Run(new Text(line)));
body.Append(paragraph);
}
mainPart.Document.Save();
}
}
bool CheckData(string[] data)
{
for (int i = 0; i < data.Length; i++)
{
if (string.IsNullOrEmpty(data[i])) return false;
}
return true;
}
}
}