Windows Script Host для Windows 2000/XP
Шрифт:
}
Как мы видим, текст печатается с помощью метода
TypeText
, а форматируется путем изменения соответствующих свойств объекта Selection
(которые, в свою очередь, являются объектами того или иного типа). Отметим, что именные константы, которые используются для форматирования текста, были предварительно проинициализированы в самом начале сценария: //Инициализируем константы Winword'а
var wdAlignParagraphLeft=0, wdAlignParagraphCenter=1, wdWindowStateMaximize=1;
После
TopReport
в документе Word будет полужирным шрифтом с выравниванием по центру напечатана строка "Общий список", а курсор установится на две строки ниже (рис. 8.6). Рис. 8.6. Заголовок отчета, напечатанный в сценарии ListWord.js
Далее в сценарии данные из XML-файла book.xml считываются в массив
PersonArr
с использованием объектной модели XML DOM (этот процесс был подробно описан в главе 7). Печать информации из элемента массива PersonArr
(экземпляра объекта Person
) производится в функции PrintPerson(PersRec)
: //Печать содержимого полей объекта Person
function PrintPerson(PersRec) {
//Печатаем поля текущей записи
TypeString("Фамилия",PersRec.LastName);
TypeString("Имя",PersRec.Name);
TypeString("Телефон",PersRec.Phone);
TypeString("Улица",PersRec.Street);
TypeString("Дом",PersRec.House);
TypeString("Кв.",PersRec.App);
TypeString("Заметки",PersRec.Note);
//Печатаем разделитель с переводом строки
Sel.TypeText("-------------------------------------\n");
//Увеличиваем номер текущей записи
NomRec++;
}
Здесь используется функция
TypeString(Title, Сontent)
, в которой происходит печать наклонным шрифтом названия поля (параметр Title
) и прямым шрифтом значения этого поля (параметр Content
): //Вывод одного поля из записи
function TypeString(Title, Content) {
//Устанавливаем наклонный шрифт
Sel.Font.Italic=true;
//Печатаем название поля
Sel.TypeText(Title+":\t");
//Отменяем наклонный шрифт
Sel.Font.Italic=false;
//Печатаем содержимое
поля
Sel.TypeText(Content+"\n");
}
В качестве итоговой информации в функции
BottomReport(Mess)
печатается общее количество записей в книжке: //Вывод итоговой информации
function BottomReport(Mess) {
//Устанавливаем полужирный шрифт
Sel.Font.Bold=true;
//Выводим сообщение с переводом строки
Sel.TypeText(Mess+"\n");
//Отменяем полужирный шрифт
Sel.Font.Bold=false;
}
После того как вся нужная информация напечатана в документе, он сохраняется на диске с помощью метода
SaveAs
объекта Document
: //Сохраняем созданный документ под именем out.doc
WD.SaveAs(PathOut);
В листинге 8.1 приводится полный текст сценария ListWord.js.
Листинг 8.1. Вывод данных из XML-файла в Microsoft Word (обычный текст)
/*******************************************************************/
/* Имя: ListWord.js */
/* Язык: JScript */
/* Описание: Печать данных из записной книжки в */
/* файл Microsoft Word */
/*******************************************************************/
//Объявляем переменные
var
WshShell, //Экземпляр объекта WshShell
BasePath, //Путь к текущему каталогу
PathBook, //Путь к файлу с данными
PathOut, //Путь к выходному файлу Winword
WA, //Экземпляр объекта Application
WD, //Экземпляр объекта Document
Sel, //Экземпляр объекта Selection
NomRec=0, //Счетчик количества записей
PersonRec, //Объект для хранения данных об одном человеке
PersonArr; //Массив для хранения объектов PersonRec
//Инициализируем константы Winword'а
var wdAlignParagraphLeft=0,wdAlignParagraphCenter=1,wdWindowStateMaximize=1;
//Построение путей к файлам
function InitPath {
var BasePath;
BasePath=WshShell.CurrentDirectory+"\\";
//Путь к файлу с данными
PathBook=BasePath+"book.xml",
Поделиться:
Популярные книги
Проклятый Лекарь IV
4. Каратель
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Прометей: Неандерталец
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Семья. Измена. Развод
2. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Страж. Тетралогия
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Соль этого лета
1. Самбисты
Любовные романы:
современные любовные романы
6.00
рейтинг книги
Последний из рода Демидовых
Фантастика:
детективная фантастика
попаданцы
аниме
5.00
рейтинг книги
Измена. (Не)любимая жена олигарха
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Драконий подарок
1. Королевская академия Драко
Любовные романы:
любовно-фантастические романы
7.30
рейтинг книги
Темный Лекарь 3
3. Темный Лекарь
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Наследница Драконов
2. Наследница Драконов
Любовные романы:
современные любовные романы
любовно-фантастические романы
6.81
рейтинг книги
Книга пяти колец
1. Книга пяти колец
Фантастика:
фэнтези
6.00
рейтинг книги
Приручитель женщин-монстров. Том 9
9. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Изгой. Пенталогия
Изгой
Фантастика:
фэнтези
9.01
рейтинг книги
Камень. Книга шестая
6. Камень
Фантастика:
боевая фантастика
7.64