Автоматизация Microsoft Word. Сохранение документа

   
На этом шаге мы рассмотрим способы сохранения документа.

   
Самый простой способ сохранения документа заключается в вызове метода Save объекта-документа, например: W.ActiveDocument.Save.
Данный способ удобно использовать, если документ ассоциирован с файлом на диске. Когда мы попробуем сохранить с
помощью этого метода вновь созданный документ, то откроется диалоговое окно Сохранение документа,
активированное приложением Word.

   
Возьмем пример 1 из шага 47 и изменим его следующим образом:


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

   
Обработчик нажатия на кнопку Метод Save следующий:

procedure TForm1.Button5Click(Sender: TObject);
//Метод Save
begin
  W.ActiveDocument.Save;
end;

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


Рис.2. Отображение ошибки выполнения метода Save (режим отладки приложения)

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


Рис.3. Отображение ошибки выполнения метода Save (режим выполнения приложения)

   
Чтобы избежать появления ошибок выполнения, необходимо при выполнении процедур сохранения документа обрабатывать исключительные ситуации.
Используйте конструкцию try ... except ... end среды Delphi. В случаях, когда не нужно выводить
диалоговое окно сохранения документа, его можно подавить. Метод подавления диалоговых окон Word будет рассмотрен позже.

   
Эффективным способом избежать ошибок, возникающих при сохранении документов, может быть проверка "был документ сохранен или нет" и
использование для сохранения метода SaveAs. Для проверки факта сохранения открытого документа на диск используйте
свойство документа Saved - если оно имеет значение True, то документ был сохранен, если False - нет.

   
Рассмотрим следующий фрагмент программы.

procedure TForm1.Button6Click(Sender: TObject);
//Проверка сохранения документа
begin
  if W.ActiveDocument.Saved then
      MessageBox(0,'Документ сохранен!','Внимание!',MB_OK)
  else
      MessageBox(0,'Документ не сохранен!','Внимание!',MB_OK);
end;

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

   
Текст этого приложения можно взять здесь (6,6 Кб).

   
Если вновь созданный документ не был сохранен, то для его записи на диск используется метод SaveAs. В
спецификации языка Visual Basic (VB) он описан так:

  ActiveDocument.SaveAs(FileName, FileFormat, LockComrnents, Password, 
      AddToRecentFiles, WritePassword, ReadOnlyRecoramended, EmbedTrueTypeFonts, 
      SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter)

   
Аргументы метода SaveAs определяют режимы и формат файла для сохраняемого документа. Используя их
при вызове метода, можно добиться такого же результата, как и в режиме обычного пользователя приложения Word.
Аргументы метода, их типы и назначение представлены в таблице 1.

Таблица 1. Аргументы метода SaveAs, их типы и функциональное назначение

АргументТипФункциональное назначение
FileName StringПуть и имя файла
FileFormat ЧислоФормат файла, см. таблицу 2
LockComments BooleanTrue - не сохранять комментарии
Password StringПароль, который будет использоваться при открытии документа
AddToRecentFiles BooleanTrue - добавить имя файла в список меню File
WritePassword StringПароль, который будет использоваться для сохранения документа
ReadOnlyRecommended BooleanTrue - в последующем документ можно открыть "только для чтения"
EmbedTrueTypeFonts BooleanTrue - при сохранении перевести шрифты документа в TrueType
SaveNativePictureFormat BooleanИспользуется для импорта графики из форматов, не поддерживаемых Windows.
True - импортировать только графику, поддерживаемую Windows
SaveFormsData BooleanTrue - сохранить форму документа без текста
SaveAsAOCELetter BooleanИспользуется в версиях Word для компьютеров Apple Macintosh

   
При вызове метода SaveAs можно задавать как один, так и несколько аргументов - количество определяется
только необходимостью их использования в создаваемом приложении. Обычно достаточно первого аргумента
(путь и имя файла).

   
При вызове метода SaveAs из приложений, созданных в Delphi, есть некоторые отличия синтаксиса от
вызова в VB, но они не принципиальны.

   
Рассмотрим примеры синтаксиса вызовов метода SaveAs в Delphi.

   
Сохранение документа с указанием пути и имени файла:

  • W.ActiveDocument.SaveAs (MyFileName);
  • W.ActiveDocument.SaveAs(FileName:=MyFileName); где MyFileName - строка, содержащая путь и имя файла.

   
Сохранение документа с указанием пути и имени файла, а также пароля:

  • W.ActiveDocument.SaveAs(FileName:=MyFileName, Password:='мой пароль').

   
Сохранение документа, ассоциированного с именем файла, с указанием пароля:

  • W.ActiveDocument. SaveAs(Password : = 'мой пароль').

   
Для задания или изменения формата сохраняемого документа необходимо использовать числовой аргумент
FileFormat, значения которого представлены в таблице 2.
Таблица 2. Значения аргумента FileFormat метода SaveAs и форматы файлов сохраняемых документов

КонстантаЗначениеФормат сохраняемого документа
WdFormatDocument 0Документ Word (файл с расширением DOC)
WdFormatDOSText 4Текст DOS (файл с расширением ТХТ)
WdFormatDOSTextLineBreaks 5Текст DOS с разбиением на строки (файл с расширением ТХТ)
WdFormatRTF 6Текст в формате RTF (файл с расширением RTF)
WdFormatTemplate 1Шаблон Word (файл с расширением DOT)
WdFormatText 2Только текст (файл с расширением ТХТ)
WdFormatTextLineBreaks 3Текст с разбиением на строки (файл с расширением ТХТ)
WdFormatUnicodeText 7Кодированный текст (файл с расширением ТХТ) - текст в кодировке UNICODE

   
Итак, мы открыли документ, считали из него текст, внесли в документ необходимые изменения и сохранили его.
Теперь нужно закрыть его и закончить работу с приложением Word.

   
На следующем шаге мы рассмотрим закрытие документа и приложения.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий