Шаг 45.
Автоматизация Microsoft Word. Открытие документа

    На этом шаге мы рассмотрим открытие документов различных типов.

    Ранее созданный документ можно открыть с помощью метода Open. При вызове метода можно указать и несколько аргументов, но главный из них - ссылка на путь и имя файла. Откроем ранее созданный документ. Дополним пример из шага 44 кнопкой открытия документа.


Рис.1. Внешний вид измененного приложения

    Обработчик нажатия на эту кнопку выглядит так:

procedure TForm1.Button4Click(Sender: TObject);
//Открытие документа
begin
  if OpenDialog1.Execute then
      W.Documents.Open(OpenDialog1.FileName);
end;
Текст этого приложения можно взять здесь (5,9 Кб).

    Результат выполнения данного фрагмента программы представлен на рисунке 1.


Рис.2. Результат работы фрагмента программы

    Метод Open коллекции Documents можно вызывать с несколькими аргументами. Обратимся к справочной системе Visual Basic и рассмотрим синтаксис и аргументы этого метода (таблица 1).

  Documents.Open(FileName, ConfirmConversions, Readonly, AddToRecentFiles, 
         PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, 
         WritePasswordTemplate, Format)

Таблица 1. Аргументы метода Open, их типы и функциональное значение
Аргумент Тип Значение
FileName String Путь и имя файла
ConfirmConversions Boolean False - не открывать диалоговое окно Преобразование файла при открытии файла, формат которого отличается от DOC
Readonly Boolean True - открыть документ в режиме "только для чтения"
AddToRecentFiles Boolean True - добавляет имя файла в список файлов меню File
PasswordDocument String Пароль для открытия документа
PasswordTemplate String Пароль для открытия шаблона
Revert Boolean True - возврат к сохраненному документу, если этот документ открывается повторно
WritePasswordDocument String Пароль для сохранения измененного документа в файле
WritePasswordTemplate String Пароль для сохранения изменений в шаблоне
Format Число Формат открываемого документа

    При вызове метода Open можно игнорировать некоторые аргументы и не указывать их, например, вызов W.Documents.Open(FileName); просто открывает файл без каких-либо дополнительных возможностей. Если немного изменить синтаксис вызова - W.Documents.Open(FileName:= 'с:\Документ1.dос');, то конечный результат будет таким же, как и в первом случае. Когда нам потребуется открыть документ в режиме "только для чтения", то используем следующий синтаксис:

    W.Documents.Open (FileNaine:='с: \Документ1.doc', Readonly:=True);

    Разместим в нашей форме кнопку и напишем программный текст, позволяющий открывать документы в режиме "только для чтения".


Рис.3. Внешний вид измененного приложения

procedure TForm1.Button5Click(Sender: TObject);
//Открытие документа в режиме "только чтение"
begin
  if OpenDialog1.Execute then
      W.Documents.Open(OpenDialog1.FileName, ReadOnly:=true);
end;
Текст этого приложения можно взять здесь (6,1 Кб).

    Если для открытия документа используется не два, а три аргумента, независимо от их последовательности, то синтаксис изменится на одну запись. Например: откроем документ в режиме "только для чтения", который защишен паролем.

  W.Documents.Open (FileName:='с:\Документ1.doc', Readonly:=True, 
         PasswordDocument:='123');

    Здесь строка '123' - значение пароля.

    Обратим внимание на последний аргумент метода Open - Format. Этот аргумент может принимать целые числовые значения и определяет формат открываемого документа (таблица 2).

Таблица 2. Значения аргумента Format и форматы открываемых документов
Константа Значение Формат открываемого документа
WdOpenFormatAuto 0 Выбирается автоматически
WdOpenFormatDocument 1 Документ Word (файл с расширением DOC)
WdOpenFormatRTF 3 Документ в формате RTF (файл с расширением RTF)
WdOpenFormatTemplate 2 Шаблон Word (файл с расширением DOT)
WdOpenFormatText 4 Текст (файл с расширением ТХТ)
WdOpenFormatUnicodeText 5 Кодированный текст (файл с расширением ТХТ) - текст в формате UNICODE

    Откроем текстовый файл, используя возможность задания формата открываемого документа. Для этого добавим в форму кнопку и напишем следующий фрагмент программы:

procedure TForm1.Button6Click(Sender: TObject);
//Открытие TXT-документа
begin
  if OpenDialog1.Execute then
      W.Documents.Open(OpenDialog1.FileName, Format:=4 {wdOpenFormatText});
end;
Текст этого приложения можно взять здесь (6,2 Кб).

    Результат выполнения этой процедуры представлен на рисунке 4.


Рис.4. Результат работы приложения

    На следующем шаге мы рассмотрим работу со списком открытых документов.




Предыдущий шаг Содержание Следующий шаг