Можно ли использовать OpenXML для запуска нового экземпляра Word? - PullRequest
0 голосов
/ 29 января 2019

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

Требуется не «открывать» файл в Word (это легко сделать с помощью Process.Start ), а загружать в Word как новый несохраненный файл,Это связано с тем, что определенные интеграции с правами собственности для Word должны вступать во владение, когда пользователь сохраняет файл, и не вставлять, если файл готов сохранен, но в какое-либо место на диске.

Я достиг этого, используяВзаимодействуйте вызовы в приложении Word, добавляя новый документ в рабочую область Word.Моя проблема связана с Interop, который имеет тенденцию ломаться на разных клиентских компьютерах, особенно когда происходит обновление Office (скажем, у клиента был 32-разрядный офис, но он обновлен до 64-разрядной версии).

Я немного новичок в OpenXML, но можно ли его использовать для автоматизации Word или Interop - мой единственный реальный вариант?

object oFilename = tmpFileName;
object oNewTemplate = false;
object oDocumentType = 0;
object oVisible = true;
Document document = _application.Documents.Add(ref oFilename, ref oNewTemplate, ref oDocumentType, ref oVisible);

1 Ответ

0 голосов
/ 29 января 2019

Нет, технология Open XML не имеет способа взаимодействия с приложением Office (Word) - она ​​предназначена только для создания / манипулирования файлами.Взаимодействие требуется для того, чтобы что-либо делать с приложением Word.

Существует способ обойти это - и это возможно только с Word, ни одно приложение Office не имеет этого - это преобразовать содержимое Open XMLв формате плоского файла OPC.Это «объединяет» различные пакеты, составляющие zip-файл, в чистую текстовую строку, в основном в один XML-файл.

Содержимое XML в формате плоского файла OPC может быть затем записано в открыл (даже недавно созданный) документ Word, используя метод Range.InsertXML через «взаимодействие».В некотором смысле, это «направляет» содержимое Open XML в открытый документ Word.

Проблема с этим подходом состоит в том, что определенные свойства уровня документа не записываются в целевой документ,поэтому не все аспекты открытого документа могут быть изменены.Например: размер страницы, ориентация, верхние и нижние колонтитулы ... Так что, если на такие вещи также необходимо повлиять, для таких настроек требуется взаимодействие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...