Вопрос пользователя заключается в том, что он хочет добавить функционал печати документов, созданных с помощью технологии совместной работы (mail merge) в Word из приложения, написанного на Delphi. Проблема заключается в том, что при попытке печати документа с использованием метода PrintOut либо печатается шаблон без данных, либо возникают ошибки.
Подробное описание проблемы
Пользователь использует следующий код для выполнения совместной работы в документе Word:
После выполнения совместной работы пользователь пытается распечатать документ, используя метод PrintOut, но сталкивается с проблемами:
Вызов wrdDoc.PrintOut печатает только шаблон, без вставленных данных.
Вызов wrdMailMerge.PrintOut приводит к ошибкам автоматизации.
Попытки сохранить документ с помощью wrdDoc.Saved := False и wrdDoc.Close(False) перед печатью не решают проблему.
Подтвержденное решение проблемы
Пользователь упоминает, что установил свойство MailMerge.Destination в wdSendToNewDocument перед выполнением совместной работы, но это не помогло. Однако, после изменения порядка операций и сохранения документа перед его печатью, проблема была решена. Важно отметить, что использование False или True в методах сохранения и закрытия документа некорректно. Вместо этого необходимо использовать параметры wdSaveOptions, предоставляемые объектной моделью Word.
Важные моменты и примеры кода
Для корректной печати документа после совместной работы необходимо выполнить следующие шаги:
Выполнить совместную работу и создать новый документ:
Установить видимость документа на True перед печатью, если это необходимо:
wrdApp.Visible := True;
Выполнить печать активного документа:
wrdApp.ActiveDocument.PrintOut;
Закрыть документ, выбрав соответствующий параметр wdWarnSave, например wdCloseNoSave для закрытия без сохранения:
wrdDoc.Close(wdCloseNoSave);
Заключение
Печать документа после совместной работы в Word из приложения на Delphi требует корректного использования методов объектной модели Word и правильного порядка выполнения операций. Важно помнить, что параметры сохранения и закрытия должны быть выбраны из перечисления wdSaveOptions и wdWarnSave, соответственно, а не использовать булевы значения True и False.
Пользователь столкнулся с проблемой печати документов, созданных с помощью технологии совместной работы в Microsoft Word, из приложения, написанного на Delphi, и искал решение для корректного использования объектной модели Word для печати данны
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS