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",
Поделиться:
Популярные книги
Индульгенция 1. Без права выбора
1. Темный сказ
Фантастика:
аниме
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Виконт. Книга 4. Колонист
Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.50
рейтинг книги
Тринадцатый III
3. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Архил...?
1. Архил...?
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Черный Маг Императора 11
11. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бояръ-Аниме. Газлайтер. Том 30
30. История Телепата
Фантастика:
альтернативная история
аниме
фэнтези
5.00
рейтинг книги
Барон Дубов 4
4. Его Дубейшество
Фантастика:
юмористическое фэнтези
аниме
сказочная фантастика
фэнтези
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга третья
3. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сочинитель
5. Бандитский Петербург
Детективы:
боевики
7.75
рейтинг книги
Запасная дочь
Фантастика:
фэнтези
6.40
рейтинг книги
Искатель 1
1. Валинор
Фантастика:
фэнтези
попаданцы
рпг
5.00
рейтинг книги
Контуженый
Детективы:
боевики
5.00
рейтинг книги
Камень. Книга вторая
2. Камень
Фантастика:
фэнтези
8.52
рейтинг книги
Отмороженный 7.0
7. Отмороженный
Фантастика:
рпг
аниме
5.00