From 502eb76c2303ffa39d092c64c7e39608c35cb00c Mon Sep 17 00:00:00 2001
From: ksenianeva <95441235+ksenianeva@users.noreply.github.com>
Date: Thu, 2 Nov 2023 19:56:58 +0400
Subject: [PATCH] Made long text component
---
.../WordLongTextComponent.Designer.cs | 36 ++++++++++
.../WordLongTextComponent.cs | 68 +++++++++++++++++++
.../LogicalComponents/WordLongTextInfo.cs | 22 ++++++
.../NevaevaLibrary/NevaevaLibrary.csproj | 21 ++++++
NevaevaLibrary/TestApp/FormTest.Designer.cs | 26 ++++++-
NevaevaLibrary/TestApp/FormTest.cs | 13 +++-
NevaevaLibrary/TestApp/FormTest.resx | 6 ++
7 files changed, 189 insertions(+), 3 deletions(-)
create mode 100644 NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.Designer.cs
create mode 100644 NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.cs
create mode 100644 NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextInfo.cs
diff --git a/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.Designer.cs b/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.Designer.cs
new file mode 100644
index 0000000..6093466
--- /dev/null
+++ b/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.Designer.cs
@@ -0,0 +1,36 @@
+namespace NevaevaLibrary.LogicalComponents
+{
+ partial class WordLongTextComponent
+ {
+ ///
+ /// Обязательная переменная конструктора.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Освободить все используемые ресурсы.
+ ///
+ /// истинно, если управляемый ресурс должен быть удален; иначе ложно.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Код, автоматически созданный конструктором компонентов
+
+ ///
+ /// Требуемый метод для поддержки конструктора — не изменяйте
+ /// содержимое этого метода с помощью редактора кода.
+ ///
+ private void InitializeComponent()
+ {
+ components = new System.ComponentModel.Container();
+ }
+
+ #endregion
+ }
+}
diff --git a/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.cs b/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.cs
new file mode 100644
index 0000000..eaaf8e5
--- /dev/null
+++ b/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextComponent.cs
@@ -0,0 +1,68 @@
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Linq;
+using System.Reflection.Metadata;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.Office.Interop.Word;
+using static System.Net.Mime.MediaTypeNames;
+
+namespace NevaevaLibrary.LogicalComponents
+{
+ public partial class WordLongTextComponent : Component
+ {
+ public WordLongTextComponent()
+ {
+ InitializeComponent();
+ }
+
+ public WordLongTextComponent(IContainer container)
+ {
+ container.Add(this);
+
+ InitializeComponent();
+ }
+
+ private object missing = System.Reflection.Missing.Value;
+
+ public void createWithLongText(WordLongTextInfo wordInfo)
+ {
+ var winword = new Microsoft.Office.Interop.Word.Application();
+ var document = winword.Documents.Add(ref missing, ref missing, ref missing, ref missing);
+ document.PageSetup.RightMargin = 50;
+ document.PageSetup.LeftMargin = 50;
+
+ var header = document.Content.Paragraphs.Add(Type.Missing);
+ header.Range.Text = wordInfo.header;
+ header.Format.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;
+ header.Range.Font.Name = "Times New Roman";
+ header.Range.Font.Size = 22;
+ header.Range.Font.Bold = 2;
+ header.Format.SpaceAfter = 18;
+ header.Range.InsertParagraphAfter();
+
+ foreach (string text in wordInfo.paragraphs)
+ {
+ var paragraph = document.Content.Paragraphs.Add(Type.Missing);
+ paragraph.Range.Text = text;
+ paragraph.Format.Alignment = WdParagraphAlignment.wdAlignParagraphLeft;
+ paragraph.Range.Font.Name = "Times New Roman";
+ paragraph.Range.Font.Size = 14;
+ paragraph.Range.Font.Bold = 0;
+ paragraph.Format.SpaceAfter = 18;
+ paragraph.Range.InsertParagraphAfter();
+ }
+
+ document.SaveAs(wordInfo.path, Type.Missing, Type.Missing, Type.Missing,
+ Type.Missing, Type.Missing, Type.Missing, Type.Missing,
+ Type.Missing, Type.Missing, Type.Missing, Type.Missing,
+ Type.Missing, Type.Missing, Type.Missing, Type.Missing);
+ document.Close(ref missing, ref missing, ref missing);
+ document = null;
+ winword.Quit(ref missing, ref missing, ref missing);
+ }
+ }
+}
diff --git a/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextInfo.cs b/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextInfo.cs
new file mode 100644
index 0000000..fc9bdfa
--- /dev/null
+++ b/NevaevaLibrary/NevaevaLibrary/LogicalComponents/WordLongTextInfo.cs
@@ -0,0 +1,22 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace NevaevaLibrary.LogicalComponents
+{
+ public class WordLongTextInfo
+ {
+ public string path;
+ public string header;
+ public string[] paragraphs;
+
+ public WordLongTextInfo(string path, string header, string[] paragraphs)
+ {
+ this.path = path;
+ this.header = header;
+ this.paragraphs = paragraphs;
+ }
+ }
+}
diff --git a/NevaevaLibrary/NevaevaLibrary/NevaevaLibrary.csproj b/NevaevaLibrary/NevaevaLibrary/NevaevaLibrary.csproj
index 060aa1c..3bfe1be 100644
--- a/NevaevaLibrary/NevaevaLibrary/NevaevaLibrary.csproj
+++ b/NevaevaLibrary/NevaevaLibrary/NevaevaLibrary.csproj
@@ -7,4 +7,25 @@
enable
+
+
+ tlbimp
+ 0
+ 12
+ 4ac9e1da-5bad-4ac7-86e3-24f4cdceca28
+ 0
+ false
+ true
+
+
+ tlbimp
+ 7
+ 8
+ 00020905-0000-0000-c000-000000000046
+ 0
+ false
+ true
+
+
+
diff --git a/NevaevaLibrary/TestApp/FormTest.Designer.cs b/NevaevaLibrary/TestApp/FormTest.Designer.cs
index 0b71350..3cad917 100644
--- a/NevaevaLibrary/TestApp/FormTest.Designer.cs
+++ b/NevaevaLibrary/TestApp/FormTest.Designer.cs
@@ -28,6 +28,7 @@
///
private void InitializeComponent()
{
+ this.components = new System.ComponentModel.Container();
this.comboBoxControl = new NevaevaLibrary.ComboBoxControl();
this.buttonInsert = new System.Windows.Forms.Button();
this.buttonClear = new System.Windows.Forms.Button();
@@ -38,6 +39,9 @@
this.listBoxControl = new NevaevaLibrary.ListBoxControl();
this.buttonInsertList = new System.Windows.Forms.Button();
this.buttonGetSelectedList = new System.Windows.Forms.Button();
+ this.buttonWordText = new System.Windows.Forms.Button();
+ this.wordLongTextComponent = new NevaevaLibrary.LogicalComponents.WordLongTextComponent(this.components);
+ this.openFileDialog = new System.Windows.Forms.OpenFileDialog();
this.SuspendLayout();
//
// comboBoxControl
@@ -91,7 +95,7 @@
//
// mailControl
//
- this.mailControl.Email = "";
+ this.mailControl.Email = null;
this.mailControl.Location = new System.Drawing.Point(11, 95);
this.mailControl.Name = "mailControl";
this.mailControl.Size = new System.Drawing.Size(312, 94);
@@ -136,11 +140,26 @@
this.buttonGetSelectedList.UseVisualStyleBackColor = true;
this.buttonGetSelectedList.Click += new System.EventHandler(this.buttonGetSelectedList_Click);
//
+ // buttonWordText
+ //
+ this.buttonWordText.Location = new System.Drawing.Point(10, 319);
+ this.buttonWordText.Name = "buttonWordText";
+ this.buttonWordText.Size = new System.Drawing.Size(145, 29);
+ this.buttonWordText.TabIndex = 10;
+ this.buttonWordText.Text = "Word (текст)";
+ this.buttonWordText.UseVisualStyleBackColor = true;
+ this.buttonWordText.Click += new System.EventHandler(this.buttonWordText_Click);
+ //
+ // openFileDialog
+ //
+ this.openFileDialog.FileName = "openFileDialog1";
+ //
// FormTest
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 20F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(1109, 316);
+ this.ClientSize = new System.Drawing.Size(1109, 363);
+ this.Controls.Add(this.buttonWordText);
this.Controls.Add(this.buttonGetSelectedList);
this.Controls.Add(this.buttonInsertList);
this.Controls.Add(this.listBoxControl);
@@ -169,5 +188,8 @@
private NevaevaLibrary.ListBoxControl listBoxControl;
private Button buttonInsertList;
private Button buttonGetSelectedList;
+ private Button buttonWordText;
+ private NevaevaLibrary.LogicalComponents.WordLongTextComponent wordLongTextComponent;
+ private OpenFileDialog openFileDialog;
}
}
\ No newline at end of file
diff --git a/NevaevaLibrary/TestApp/FormTest.cs b/NevaevaLibrary/TestApp/FormTest.cs
index d4dc2f9..46da115 100644
--- a/NevaevaLibrary/TestApp/FormTest.cs
+++ b/NevaevaLibrary/TestApp/FormTest.cs
@@ -1,4 +1,5 @@
-using System;
+using NevaevaLibrary.LogicalComponents;
+using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
@@ -66,5 +67,15 @@ namespace TestApp
Worker? worker = listBoxControl.getSelectedItem();
if (worker is not null) MessageBox.Show(worker.ToString() + $"\n{worker.name}, {worker.department}, {worker.workYears}");
}
+
+ private void buttonWordText_Click(object sender, EventArgs e)
+ {
+ string[] paragraphs = { "test1", "Составлен в соответствии с учебным планом направления 09.03.04. Цель данного практикума – ориентировать студентов на содержание и порядок выполнения лабораторных задач во время прохождения ими курсов «Методы искусственного интеллекта» и «Машинное обучение». Даются задания на лабораторные работы. ",
+ "Работа подготовлена на кафедре «Информационные системы»." };
+ openFileDialog.Dispose();
+ string path = AppDomain.CurrentDomain.BaseDirectory + "test.docx";
+ wordLongTextComponent.createWithLongText(new WordLongTextInfo(path, "Header", paragraphs));
+ MessageBox.Show("Готово!");
+ }
}
}
diff --git a/NevaevaLibrary/TestApp/FormTest.resx b/NevaevaLibrary/TestApp/FormTest.resx
index f298a7b..175a0fb 100644
--- a/NevaevaLibrary/TestApp/FormTest.resx
+++ b/NevaevaLibrary/TestApp/FormTest.resx
@@ -57,4 +57,10 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 17, 17
+
+
+ 248, 17
+
\ No newline at end of file