Добавил:
Преподаватель Колледжа информационных технологий Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / РАЗРАБОТКА ПРИЛОЖЕНИЯ С КЛИЕНТ-СЕРВЕРНОЙ АРХИТЕКТУРОЙ

.pdf
Скачиваний:
63
Добавлен:
08.05.2022
Размер:
902.39 Кб
Скачать

предоставляет методы для форматирования элементов документа, размещенных в параграфах.

Класс, реализующий данный участок документа, представлен в листинге 24.15.

31

 

Листинг 24.15 – Класс формирования документа с заданием на дипломный проект

 

 

 

1

private void OutputDocFile()

 

2

{

 

3

string pathDocument = AppDomain.CurrentDomain.BaseDirectory +

Путь к документу

"first.docx";

 

 

4

DocX document = DocX.Create(pathDocument);

Создание документа

5

document.MarginLeft = 60.0f;

 

6

document.MarginRight = 60.0f;

Определение отступов в документе

7

document.MarginTop = 60.0f;

слева, справа, сверху и снизу

8

document.MarginBottom = 60.0f;

 

 

document.InsertParagraph("федеральное государственное

 

9

бюджетное образовательное учреждение высшего образования

Вставка параграфа (абзаца) и указание

«Казанский национальный исследовательский технический

текста

 

 

университет им. А.Н. Туполева-КАИ» (КНИТУ-КАИ)").

 

10

Bold().

Задание полужирного начертания текста

11

Font("Times New Roman").

Задание шрифта «Times New Roman»

12

FontSize(14).

Задание размера шрифта «14»

13

Alignment = Alignment.center;

Задание выравнивания содержимого по

центру

 

 

14

document.InsertParagraph("\n" + "ОТДЕЛЕНИЕ СРЕДНЕГО

 

 

ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ" + "\n\n").

 

15

Font("Times New Roman").

 

16

FontSize(14).

 

17

Alignment = Alignment.center;

 

18

document.InsertParagraph("У Т В Е Р Ж Д А Ю" + "\n\n" +

 

 

"Директор отделения СПО ИКТЗИ" + "\n").

 

19

Font("Times New Roman").

 

20

FontSize(12).

 

21

Alignment = Alignment.right;

 

22

document.InsertParagraph("_______________, Осадчая Д.М." +

 

"\n").

 

23

Font("Times New Roman").

 

24

FontSize(12).

 

25

Alignment = Alignment.right;

 

26

document.InsertParagraph("«____»______________20_____г." +

 

 

"\n").

 

27

Font("Times New Roman").

 

28

FontSize(12).

 

29

Alignment = Alignment.right;

 

30

document.InsertParagraph("З А Д А Н И Е").

 

31

Font("Times New Roman").

 

32

FontSize(16).

 

33

Alignment = Alignment.center;

 

34

document.InsertParagraph("на дипломный проект").

 

35

Font("Times New Roman").

 

36

FontSize(12).

 

37

Bold().

 

38

Alignment = Alignment.center;

 

39

Table table = document.AddTable(7, 2);

Создание таблицы с 7 строками и 2

столбцами

 

 

40

table.Alignment = Alignment.center;

Задание выравнивания таблицы по

центру

 

 

41

table.Design = TableDesign.TableGrid;

Определение стандартного дизайна

таблицы

 

 

42

table.SetWidths(new float[] { 180.0f, 600.0f});

Установка ширины столбцов таблицы

 

table.Rows[0].Cells[0].Paragraphs[0]

Изменение содержимого ячейки 1-й

43

строки 1-го столбца таблицы. Метод

.Append("Обучающийся").Font("Times New Roman").

 

 

Append задает содержимое ячейки.

 

33

 

44

FontSize(12).

 

45

Bold();

 

 

table.Rows[0].Cells[1].Paragraphs[0]

Изменение содержимого ячейки 1-й

46

строки 2-го столбца таблицы на ФИО

.Append(this.user.Student.Name).Font("Times New Roman").

 

 

студента, сохраненное в свойстве Name.

47

FontSize(12).

 

48

Bold();

 

49

table.Rows[1].Cells[0].Paragraphs[0]

 

 

.Append("Специальность").Font("Times New Roman").

 

50

FontSize(12).

 

51

Bold();

 

52

table.Rows[2].Cells[0].Paragraphs[0]

 

 

.Append("Группа").Font("Times New Roman").

 

53

FontSize(12).

 

54

Bold();

 

 

table.Rows[2].Cells[1].Paragraphs[0]

 

55

.Append(this.user.Student.NumberGroup.ToString()).Font("Times

 

 

New Roman").

 

56

FontSize(12).

 

57

Bold();

 

58

table.Rows[3].Cells[0].Paragraphs[0]

 

.Append("Тема дипломного проекта").Font("Times New Roman").

 

59

FontSize(12).

 

60

Bold();

 

61

table.Rows[3].Cells[1].Paragraphs[0]

 

.Append(richTextBoxThesis.Text).Font("Times New Roman").

 

62

FontSize(12).

 

63

Bold();

 

 

34

 

64

table.Rows[4].MergeCells(0, 1);

 

 

 

table.Rows[4].Cells[0].Paragraphs[0].Append("Тема утверждена

 

65

приказом по университету от «__»__________20__г. №______")

 

 

.Font("Times New Roman").

 

 

66

FontSize(12).

 

 

67

Bold();

 

 

68

table.Rows[5].MergeCells(0, 1);

 

 

 

table.Rows[5].Cells[0].Paragraphs[0].Append("Срок сдачи

 

69

дипломного проекта «__»______________20__г.

")

 

 

.Font("Times New Roman").

 

 

70

FontSize(12).

 

 

71

Bold();

 

 

72

table.Rows[6].MergeCells(0, 1);

 

 

 

table.Rows[6].Cells[0].Paragraphs[0].Append("Содержание

 

73

дипломного проекта (перечень вопросов, подлежащих

 

 

рассмотрению):").Font("Times New Roman").

 

 

74

FontSize(12).

 

 

75

Bold();

 

 

 

 

 

Создаем в документе пустой параграф и

76

document.InsertParagraph().InsertTableAfterSelf(table);

вставляем туда ранее созданную

 

 

 

таблицу.

77

document.Save();

 

Сохранение документа

78

}

 

 

35

6. Печать документа

Для того, чтобы определить объект, который отправляет выходные данные на принтер при печати из приложения используется класс PrintDocument. Класс

PrintDialog позволяет пользователям выбирать принтер и определять, какие разделы документа должны быть напечатаны из приложения Windows Forms.

Код программы, отправляющий на печать документ с данными о студенте,

представлен в листинге 24.16.

Листинг 24.16 – Печать документа

1

string printContent = "";

2

private void PrintDoc()

3

{

 

this.printContent = richTextBoxName.Text + "\n" +

 

richTextBoxNumberGroup.Text + "\n"

4

+ richTextBoxPassword.Text + "\n" +

richTextBoxPersonalData.Text + "\n" +

 

 

richTextBoxProfessor.Text + "\n" +

 

richTextBoxThesis.Text;

5

PrintDocument printDocument = new PrintDocument();

6

PrintDialog printDialog = new PrintDialog();

7

printDocument.PrintPage += PrintPageHandler;

8

printDialog.Document = printDocument;

9

if (printDialog.ShowDialog() == DialogResult.OK)

10

{

11

printDialog.Document.Print();

12

}

13

}

Встроке 8 происходит установка объекта печати для его настройки.

Встроке 9 открывается диалоговое окно печати и выполняется печать строки

printContent (строка 11), когда будет нажата кнопка ОК. В состав строки printContent входят все данные о студенте.

В строке 7 добавляется обработчик события печати PrintPageHandler.

Реализация метода обработчика события представлена в листинге 24.17.

Листинг 24.17 – Обработчик события печати

1

private void PrintPageHandler(object sender, PrintPageEventArgs e)

2 {

3

e.Graphics.DrawString(printContent,

new

System.Drawing.Font("Arial", 16), Brushes.Black, 0, 0);

 

4

}

 

Метод DrawString осуществляет вставку строки printContent в печатаемый документ.

37