Вставьте отформатированную сноску, используя Microsoft.Interop.Office.Word - PullRequest
0 голосов
/ 19 октября 2018

Я пытаюсь вставить сформатированные сноски в открытый текст документа с помощью приложения WinForms.

Хотя я могу использовать Interop.Word для установки простоготекстовые сноски и до тех пор, пока я использую простой текст, он работает нормально.Однако я также хочу, чтобы пользователь мог вставлять форматированный текст в расширенном текстовом поле в сноску.Это никогда не работает и всегда показывает коды расширенного текста.

Я знаю, что сноски могут принимать форматирование, потому что, если я помещаю расширенный текст в буфер обмена и вставляю его в сноску, форматирование сохраняется.

Я даже пытался поместить форматированный текст в буфер обмена и затем установить строку (строки) для содержимого буфера обмена, используя "s = Clipboard.GetText (TextDataFormat.Rtf);"Кажется, что это должно быть именно то, что я вставляю, но если я вставлю в сноску, это сработает.Если программа устанавливает его, используя код ниже, он не работает.

Я ценю любую помощь.

application = (Microsoft.Office.Interop.Word.Application)System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");

application.ActiveDocument.Footnotes.Add(application.Selection.Range, "", s);

1 Ответ

0 голосов
/ 20 октября 2018

Ответ Синди был полезен.Я исправил проблему, выполнив следующие действия:

  1. Сохранение текущей выбранной позиции в документе и текущего содержимого буфера обмена.
  2. Вставка пустой сноски.
  3. Выбор сноски.
  4. Помещение строки в буфер обмена в формате расширенного текста.
  5. Отправка / вставка информации из буфера обмена в Word.
  6. Восстановление буфера обмена и исходной выбранной позиции в документе.
...