- •Работа с сервером word
- •Работа с компонентом WordApplication Создание нового документа
- •Проверка наличия открытых документов
- •Работа с текстом
- •Работа с компонентом WordDocument
- •Работа с объектом WordFont1
- •Работа с объектом WordParagraphFormat
- •Список переведенных студентов
- •Просмотр и сохранение документов
- •Задание
Работа с компонентом WordDocument
Присоединение к активному документу:
WordDocument1 -> ConnectTo ( WordApplication1 -> ActiveDocument);
Выделение фрагментов в документе
Content– объект отражающий весь текст документа. С его помощью можно изменить свойства текста, например,
WordDocument1 -> Content->Font->Bold=0;
Текст в документе разбивается на непрерывные фрагменты (объекты Range). Такой объект можно создать специальным методом, например, следующий код позволяет работать с третьим абзацем документа:
TVariant i=3;
RangePtr MyRange;
MyRange=WordApplication1 -> ActiveDocument->Paragraphs->Item(i)->get_Range();
MyRange->Font->Italic=true;
Также можно указать номера символов, ограничивающих интересующий нас фрагмент документа:
TVariant i=1, j=20;
RangePtr MyRange=WordDocument1->Range(&i,&j);
MyRange->Font->Italic=true;
Следующий код позволяет выделить объект Range и вставить перед ним текст:
TVariant i=2;
WordDocument1->Paragraphs->Item(i)->get_Range()->Select();
WordApplication1-> Selection->InsertBefore(TVariant("Москва"));
Закрытие документа
Метод Closeвыполняет закрытие документа.
WordDocument1->Close();
Если документ был изменен, то Wordпредложит сохранить его. Для подавления этого запроса необходимо использоватьCloseс параметром:
TVariant d;
d=(TVariant)wdDoNotSaveChanges;
WordDocument1->Close(&d);
При значении параметра wdSaveChanges запрос сохранится.Следующий код закрывает все открытые документы (без запроса на их сохранение):
TVariant d;
int n, i;
d=(TVariant)wdDoNotSaveChanges;
n=WordApplication1->Documents->Count;
for (i=1; i<=n; i++)
{ a=(TVariant) i;
WordApplication1->Documents->Item(&a)->Close(&d);
}
Работа с объектом WordFont1
Присоединение к объекту Selectionможно выполнить так:
WordFont1->ConnectTo(WordApplication1->Selection->Font);
После установления связи с фрагментом текста можно задавать различные параметры. Например:
Выбрать шрифт
WordFont1->set_Name(TVariant(“Times New Roman”));
Установить размера
WordFont1->set_Size(18);
Жирность
WordFont1->set_Bold(true);
Подчеркивание
WordFont1->set_Underline(wdUnderlineSingle);
Различные виды подчеркивания задают специальные константы (вместо имен можно использовать числовые константы):
wdUnderlineNone = 0 – без подчеркивания,
wdUnderlineSingle = 1 – одинарное;
wdUnderlineDouble = 3 – двойное подчеркивание,
wdUnderlineDotted = 4 – точечное;
wdUnderlineDash = 7 - пунктирное,
wdUnderlineDotDash = 9 – штрих-пунктир,
wdUnderlineWords = 2 – подчеркнуть слова и т.д.
Цвет символов можно установить так:
WordFont1->set_ColorIndex(wdRed);
Цвет можно задать следующими константами: wdAuto = 0, wdBlack = 1, wdBlue = 2, wdTurquoise = 3, wdBrightGreen = 4, wdPink = 5, wdRed = 6, wdYellow = 7, wdWhite = 8, wdDarkBlue = 9 и т.д.
В Builder C++ 5.0 значения свойств задаются без использования методов set_…(). Например,
WordFont1->Underline=wdUnderlineSingle;
WordFont1->Bold=true; WordFont1->Bold=1;
Работа с объектом WordParagraphFormat
Присоединение к объекту Selection->ParagraphFormat
WordParagraphFormat1->ConnectTo(WordApplication1->Selection-> ParagraphFormat);
Компонент WordParagraphFormatпомогает легко задать свойства, отвечающие за оформление текста. Следующие примеры позволяют понять как это делается.
Межстрочный интервал
WordParagraphFormat1->set_LineSpacingRule(wdLineSpaceSingle);
Следующие константы задают значения одинарного, полуторного и двойного интервала между строками:
wdLineSpaceSingle = 0,
wdLineSpace1pt5 = 1,
wdLineSpaceDouble=2.
Выравнивание
WordParagraphFormat1->set_Alignment(wdAlignParagraphLeft);
Следующие константы задают:
wdAlignParagraphLeft = 0 – выравнивание по левому краю,
wdAlignParagraphCenter = 1 – по центру,
wdAlignParagraphRight = 2- по правому краю,
wdAlignParagraphJustify = 3 – по ширине.
Отступ
Отступ первой строки
WordParagraphFormat1->set_FirstLineIndent(36.0);
Отступ перед абзацем
WordParagraphFormat1->set_SpaceBefore(0);
Отступ после абзаца
WordParagraphFormat1->set_SpaceAfter(12);
Установить стиль абзаца
Например оформим фрагмент текста как заголовок первого уровня (стиль “Заголовок1”):
WordParagraphFormat1->set_Style(TVariant(“Заголовок 1”));
