Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

### Решение проблемы сохранения документов Word в формате .doc через Delphi 6 с использованием Word 2010

Delphi , Технологии , OLE

Решение проблемы сохранения документов Word в формате .doc через Delphi 6 с использованием Word 2010

При работе с документами Microsoft Word через Delphi 6 и использование Word 2010, пользователи могут столкнуться с проблемой появления диалога "Сохранить как" при попытке сохранения файла в формате .doc. Это может быть вызвано изменениями в интерфейсе COM-объектов, которые используются в Delphi для автоматизации Word. В данном случае, важно понимать, что Word 2010 использует другой механизм сохранения файлов по сравнению с предыдущими версиями, что может привести к неожиданному поведению кода.

Описание проблемы

Пользователь столкнулся с проблемой, что при попытке сохранить документ Word 97-2003 (.doc) с использованием Delphi 6 и Word 2010, появляется диалог "Сохранить как". Это происходит, несмотря на использование метода SaveAs2, который должен обеспечивать совместимость с более старыми версиями Word. Сохранение в формате wdFormatDocumentDefault с указанием режима совместимости wdWord2003 работает корректно, но сохранённый файл имеет формат Word 2010, что может вызвать проблемы при открытии в старых версиях Word.

Подтвержденный ответ

Пользователь смог решить проблему, написав демонстрационную программу, которая показала, что проблема возникает при попытке конвертации файла из одного не-native формата в другой. Решением стало двукратное сохранение документа: сначала в родном формате Word 2010, а затем в формате Word 97-2003. Это достигается с помощью следующего кода:

procedure SaveDocFile(WordDoc: Variant; FileName: string);
const
  wdFormatDocumentDefault = 16;
begin
  WordDoc.ActiveWindow.View.Type := wdPrintView;
  if WordDoc.Application.Version = '14.0' then
    begin
      WordDoc.SaveAs2(FileName := FileName, FileFormat := wdFormatDocumentDefault);
      WordDoc.SaveAs2(FileName := FileName, Path := FileName, FileFormat := wdFormatDocument);
    end
  else
    WordDoc.SaveAs(FileName := FileName, FileFormat := wdFormatDocument);
end;

Важно отметить, что при втором сохранении используется параметр Path с тем же значением FileName, что позволяет перезаписать файл в нужном формате.

Альтернативный ответ

Предоставляется список констант для форматов файлов Word, который может помочь в выборе правильного формата для сохранения:

wdFormatDocument                    =  0
wdFormatDocument97                  =  0
wdFormatDocumentDefault             = 16
...
wdFormatXMLTemplateMacroEnabled     = 22
...

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

Заключение

При работе с Word через Delphi и OLE Automation важно учитывать различия в поведении между версиями Word, а также использовать правильные константы для сохранения документов в нужном формате. Двукратное сохранение документа может быть эффективным решением для сохранения совместимости с более старыми версиями Word.

Создано по материалам из источника по ссылке.

Проблема заключается в том, что при использовании Delphi 6 и Word 2010 для сохранения документов в формате .doc возникает диалог "Сохранить как" из-за изменений в механизмах сохранения файлов, что требует особого подхода для сохранения совместимости с бо


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: OLE ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2024-12-26 16:03:30/0.0033049583435059/0