gifts2017

Вставляем форматированный документ 1С в файл Word (Ворд) с сохранением форматирования и рисунков

Опубликовал msvd (msvd) в раздел Программирование - Практика программирования

Можно программно склеить 2 "форматированных документа". Можно склеить 2 документа или 2 части документа Word. Нужно: вставить "форматированный документ" в Word с сохранением форматирования и картинок.

Потребность: текст в базе хранится форматированных документах. Также какой-то текст сохранен в формате Word. Нужно вывести итоговый документ Word, склеив текст из форматированных документов 1С и из Word без потери форматирования и рисунков.

Можно открыть поле форматированного документа в 1С, нажать Ctrl+C, открыть Word, нажать Ctrl+V. Готово; но в интерактивном режиме.

Попытка использовать Windows Script Host и посылки нажатий клавиш копирования / вставки (SendKeys) показала нестабильность и медленную скорость работы, а также отсутствие возможности тонко управлять процессом (например, взять только часть форматированного документа).

Можно воспользоваться конструкцией, как:

ОбластьВставки = ActiveDocument.Range(ПозицияОкончанияДокумента - 1, ПозицияОкончанияДокумента - 1);
ОбластьВставки.Text = РеквФД.ПолучитьТекст();


Но форматирование теряется.

Предлагаемое ниже решение основывается на:

1. Сохранении содержимого форматированного документа в файл в формате HTML.

2. Чтении сохраненного файла объектом "Word.Application".

3. Переносе содержимого копированием / вставкой в целевой документ Word соответствующими методами объекта "Range" объектной модели Word.

По сути, обмен с Word идет через HTML.

Обратное преобразование текста из Word в форматированный документ (через HTML) не проверялось.

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

В обработке приложен рабочий пример.

Работоспособно, конечно, только в Windows и при установленном Word.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Добавляем форматированный документ в ворд
.epf 6,57Kb
21.05.14
48
.epf 6,57Kb 48 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Елисеев (w-divin) 23.05.14 12:57
к сожалению не нужно лично мне пока, но полезно...
2. Игорь Steelvan (Steelvan) 02.06.14 18:20
Можно не заниматься связкой WORD с 1С, а получать сразу красивые отформатированные документы с использованием ОптимаСофт:Документы.
Скриншоты можно посмотреть http://www.optimasoft.info/index_doki.html
Там используется внешняя компонента, встроенная в 1С и управляемая кодом 1С.
3. msvd (msvd) 06.06.14 11:10
(2) Спасибо, интересно.
P.S. Метод из публикации портит содержимое буфера обмена. Этим грешит и УТ или ДО при работе с шаблонами MS Office.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа