Время на прочтение
5 мин
Количество просмотров 45K
«Корпорация Зла» (joke) осваивает нишу совместной работы с документами уже второе десятилетие. Начиналось всё с ранних версий SharePoint, при упоминании которых котики поопытнее сразу начинают плакать – уж больно специфичен с точки зрения и настроек, и возможностей был в те далекие годы MS SP. Ладно, не будем больше травмировать друг друга воспоминаниями о том неуклюжем монстре…
Но упорства у Microsoft не занимать – работа по улучшению ситуации велась все это время, причем сразу на нескольких фронтах. В результате сейчас можно говорить о сложившейся инфраструктуре совместной работы с документами, которую предлагает Microsoft. В ней выделяются два класса софта:
- Средства коллективного доступа к документам, включающие в себя каталогизацию, управление версиями, раздачу прав и тому подобные серверные фичи. Эти средства, в свою очередь, подразделяются на облачные (OneDrive, SharePoint Online) и on-premise, то есть разворачиваемые в инфраструктуре самого заказчика — сервер SharePoint 2016.
- Средства редактирования документов. К ним относятся: десктопное семейство Microsoft Office (тоже сильно переработанное за последнее время), свежесочиненные мобильные версии Office, изначально ориентированные на совместную работу с документами, и, вишенкой на торте – собственная реализация сервера онлайн-редактирования документов Office Online apps (несколько ранее известного под именем Office Web Apps).
Все это великолепие, наверное, не делает Microsoft «убийцей Google Docs» (убийцами нашего мозга в данном случае, скорее, выступают журналисты, придумывающие подобные заголовки для новостей), но дает неплохую альтернативу потребителю. Особенно это касается корпоративных клиентов, у которых, во-первых, уже есть инфраструктура от MS (AD, Exchange, Skype for Business), а во-вторых, есть потребность держать всю или часть информации под контролем, то есть на собственных серверах. Для таких клиентов новые возможности совместной работы с документами от Microsoft выглядят особенно привлекательно.
В итоге у нас появилась идея рассказать, как собственно об этих возможностях, так и о том, как все это хозяйство установить и настроить. Попробуем добраться и до сравнения с альтернативными сервисами. Поскольку понятно, что такой лонгрид и писать долго, и читать его осилит не каждый, мы решили разделить это на несколько статей. Эта – первая. И в ней дальше мы пройдемся по тем фичам и особенностям, которые есть у каждого из продуктов Microsoft, обеспечивающих совместное редактирование документов: Office Online, MS Office на десктопах и он же на мобильных устройствах. Сразу предупреждаю – дальше будет много внимания к деталям и разжевывания мелких особенностей, нетерпеливый читатель может сразу прочитать «выводы» в конце заметки, для остальных – поехали.
Office Online
Office Online Server – это довольно интересное приложение, про которое не все еще хорошо знают. Во-первых, это возможность сократить количество лицензий и установок MS Office. Во-вторых, расширение возможности доступа и редактирования документа, грубо говоря – нужен только браузер. В-третьих, это самые лучшие на сегодня у Microsoft возможности совместной работы. Давайте посмотрим, о чем я.
Word Online
Правка документа в Office Online может производиться несколькими пользователями одновременно, при этом изменения и имя пользователя вносящего правки отображаются моментально у остальных соавторов. Пользователи могут править одновременно один и тот же участок текста, блокировки по абзацам нет.
Excel Online
В Excel Online изменения в ячейке отобразятся у других соавторов только при переходе первого на следующую ячейку. При этом ячейки не блокируются и вносить изменения могут сразу несколько пользователей.
PowerPoint Online
PowerPoint Online позволяет работать одновременно над одним слайдом, но лучше работать над разными элементами, иначе пользователи не видят real time изменений друг друга.
Настольная версия Office
Опыт совместной работы с документами через Office Online оставляет приятные впечатления, когда речь идет о правках текста без необходимости значительных изменений форматирования. Если вам захочется вставить диаграммы, smart art, оглавление, макросы, форматировать таблицы, использовать формулы и т.д. тут придётся использовать настольную версию программ. О разнице функционала настольной версии и online можно писать отдельную статью. Здесь же рассмотрим отличия, связанные с совместной работой.
MS Word
При редактировании в настольной версии программы блокируется абзац, над которым работает другой пользователь.
Вносимые изменения станут видны другим соавторам только после их сохранения автором и обновления документа остальными пользователями.
Сохранение-обновление объединено в кнопке Save (Ctrl+S) Наличие обновлений индицируется иконкой напротив имени автора.
MS Excel
В случае с Excel возможности одновременной работы над документом нет. Нам предлагают либо всем перейти в онлайн версию –
либо встать в очередь —
MS PowerPoint
Напротив, в PowerPoint ни блокировки, ни обозначения элемента, над которым работает другой пользователь нет. Так что, о том, что кто-то ещё работает над той же презентацией, вы можете понять разве что через панель Share.
Наличие обновлений сигнализируется малоприметным статусом Updates Available. Статус появляется только после сохранения изменений автором, сами изменения появляются после обновления документа с помощью Save (Ctrl+S).
Мобильные устройства
Microsoft Word App и Microsoft PowerPoint App
При работе на Android абзац или элемент, над которым работает пользователь, не блокируется и возможна одновременная работа с ним, но и ничего не подсвечивается для других соавторов, Правки отображаются без дополнительных действий с небольшой задержкой. То, что кто-то другой работает над этим же элементом, можно видеть в меню “Share”.
В случае с IPhone при изменениях выдается сообщение об обновлениях с предложением Применить/Отменить.
Интересно было бы ещё протестировать на Windows Phone с Windows 10. Но в компании таких не нашлось.
Microsoft Excel App
Совместная работа real time в Excel App не поддерживается.
Выводы
В целом, функциональность совместного редактирования документов от Microsoft можно считать состоявшейся, хотя разные компоненты реализуют ее по-разному. Сам по себе процесс совместного редактирования лучше всего реализован в Office Online – это реальный co-working. В список вещей, на которые можно смотреть вечно, добавлю себе движущиеся по экрану флажки с именами коллег и постепенно заполняющийся сам по себе документ. Но, к сожалению, за полноценным функционалом редактирования как такового по-прежнему придётся обращаться к настольным версиям программ, в которых ещё осталась и нужна кнопка сохранения, а также не так удобно реализован процесс совместной работы (больше всего пока страдает Excel, где все так и осталось на уровне чекина-чекаута).
В следующей заметке мы расскажем, как осуществить процесс разворачивания on-premise компонент совместного доступа в корпоративной инфраструктуре. Ферма SharePoint 2016, Office Online Server, публикация – вот это все. Не отключайтесь.
C уважением коллектив компании Servilon.ru Servilon.com
Настройка системы для формирования документов Word или Excel на стороне сервера
Допустим, необходимо формировать документ офисного пакета Microsoft Office на стороне сервера, то есть от имени сервера 1С, но не всегда установка «из коробки» позволяет выполнять данную операцию. так как обычно происходит исключительная ошибка создания COM-объекта. В этом случае требуется более тонкая настройка системы в целом. Настройка заключается в установке прав доступа сервера 1С к DCOM-приложению и папке Desktop. Рассмотрим процесс настройки.
Откройте оснастку «Службы компонентов», для этого в командной строке выполните команду dcomcnfg (или comexp.msc /32 для 64-разрядной Windows, см. рисунок 1).
Рисунок 1. Запуск оснастки «Службы компонентов» |
В узле Настройка DCOM найдите элемент Microsoft Excel Application(если хотите выполнять формирование документов Excel) или элемент Документ Microsoft Office Word 97 — 2003(если хотите выполнять формирование документов Word), нажмите правой кнопкой мыши и выберите пункт Свойства (см. рисунок 2).
Рисунок 2. Выбор приложения DCOM |
Перейдите на вкладку Безопасность, установите пункт Настроить в секции Разрешения на запуск и активацию и нажмите на кнопку Изменить (см. рисунок 3).
Рисунок 3. Установка разрешения на запуск и аквтивацию |
В открывшемся окне добавьте пользователя, от имени которого работает сервер 1С (для 1С версии 8.2 — USR1CV82, для версии 8.3 — USR1CV83), и разрешите ему все действия (см. рисунок 4).
Рисунок 4. Установка разрешений для пользователя системы |
Далее создайте папку Desktop по адресу С:WindowsSystem32configsystemprofile для 32-разрядной Windows (C:WindowsSysWOW64configsystemprofile для 64-разрядной) если она не существует и наделите пользователя, от имени которого работает сервер 1С, полными правами доступа на эту папку. Для этого нажмите правой кнопкой на папку Desktop и выберите пункт Свойства. В окне свойств папки перейдите на вкладку Безопасность и нажмите Изменить (см. рисунок 5).
Рисунок 5. Настройка правд доступа к папке Desktop |
В открывшемся окне добавьте пользователя, аналогичного для DCOM-приложения (см. рисунок 6).
Рисунок 6. Установка прав на папку для пользователя |
Теперь COM-объект офисного пакета Microsoft Office должен создаваться на стороне сервера и формировать новый документ без всяких проблем.
На странице Servers (или Office2k, или Office97)
находятся компоненты, относящиеся к
текстовому редактору Word. Компонент
WordApplicationотвечает за связь с
редактором. СвойствоAutoConnect =trueозначает, что соединение с сервером
происходит в момент начала выполнения
приложения. По умолчанию принято значениеfalse, при этом
соединение с сервером можно осуществить
вызовом методаConnect:
WordApplication1->
Connect();
Значения свойства ConnectKindопределяют,
каким образом происходит соединение:
ckNewInstance– всегда создавать экземпляр
сервера. Это значение следует выбирать,
чтобы избежать опасности испортить
какой-либо документ в уже выполняющемся
сервере;
ckRunningInstance – обеспечить только
подсоединение к выполняющемуся серверу.
Годится, когда приложение должно работать
с каким-то открытым документом сервера;
ckRemote – выбирается для удаленного
сервера;
ckRunningOrNew– значение выбираемое по
умолчанию обеспечивает соединение с
уже открытым сервером или создание
нового.
После запуска сервера его окно может
оставаться невидимым для пользователя.
Сделать окно приложения Word видимым
можно так:
//
для Builder5
WordApplication1->
Visible=true;
//
для Builder6
WordApplication1->
set_Visible(true);
Установить местоположение и размеры
окна:
WordApplication1
->set_Left(0);
WordApplication1
->set_Top(0);
WordApplication1
-> set_Height(200);
WordApplication1
->set_Width(300);
WordApplication1->Disconnect();- разрыв связи с сервером. Вызов этого
метода очень важен, особенно, когда
приложение сервер не видимо для
пользователя.
Свойство AutoQuit = trueавтоматически вызовет завершение
сервера при завершении программы клиента
(это полезно когдаConnectKind
= ckNewInstance, т.е.приложение создало
новый экземпляр сервера).
Работа с компонентом WordApplication Создание нового документа
При создании нового документа он будет
добавлен к коллекции открытых в настоящий
момент документов Word – Documents. Для
создания документа на основе шаблона
Normal в Office2k необходимо использовать
оператор:
WordApplication1
-> Documents -> Add (EmptyParam,EmptyParam,EmptyParam,true);
А в Office97:
WordApplication1
-> Documents -> Add(EmptyParam, EmptyParam);
В этом случае создается документ WORD с
параметрами по умолчанию, если нужно
создать шаблон или документ на основе
своего шаблона нужно использовать
параметры.
Проверка наличия открытых документов
Свойство Countколлекции документов
Documents позволяет узнать количество
открытых в настоящий момент документов.
Следующий оператор, например, позволяет
проверить наличие открытых документов:
if
(WordApplication1->Documents->Count==0)
Свойство Nameсодержит имя документа.
Следующий код позволяет получить список
имен всех открытых документов:
TVariant
a;
int
n, i;
n=WordApplication1->Documents->Count;
for
(i=1; i<=n; i++)
{
a=(TVariant)i;
Memo1->Lines->Add(WordApplication1->
Documents->Item(&a)->Name);
}
Работа с текстом
При работе с текстом удобно использовать
объект Selection.Selection-
это выделенный объект текста в активном
документе, а при отсутствии выделения
текущая позиция курсора.
Методы InsertBefore
и InsertAfterвставляют текст в
документ соответственно до и после
выделенного фрагмента.
-
Вставка
абзаца текста:
WordApplication1
-> Selection -> InsertAfter
(TVariant(“Московский
энергетический институтn”));
-
Пустая
строка (абзац):
WordApplication1
-> Selection -> InsertAfter (TVariant(“n”));
-
Текст
из разных источников:
WordApplication1
-> Selection -> InsertAfter
(TVariant(“Уважаемый”
+ Edit1->Text + “!n”));
Все вставляемые фрагменты будут
присоединяться к объекту Selection, а курсор
перемещаться на первую позицию после
вставленного текста, поэтому следующий
оператор вставит текст перед всем
выделенным фрагментом:
WordApplication1
-> Selection -> InsertBefore (TVariant(“ГПИ”));
Метод TypeTextвставляет или заменяет
выделенный текст. Если свойствоReplaceSelection =false,
текст будет вставлен в документ перед
выделенным фрагментом, иначе (значениеtrue) новый текст
заменит весь выделенный фрагмент.
Например, следующий код уничтожит все
что мы вставили в документ предыдущими
операторами:
WordApplication1
->Options->ReplaceSelection = true;
WordApplication1->
Selection -> TypeText (TVariant(“Новый
текст”);
Свертывание
выделения
Выделение можно свернуть, вызвав метод
Collapse. Курсор переместится к началу
(wdCollapseStart) или к концу выделенного
фрагмента (wdCollapseEnd).
TVariant
Direction=wdCollapseEnd;
WordApplication1->Selection->Collapse(&Direction);
Выделение
всего документа
Очень часто требуется выполнение команды
«Выделить все», следующий метод позволяет
это сделать программно:
WordApplication1->Selection->WholeStory();
Вставка
картинки в документ
Clipboard()->Assign(Image1->Picture);
WordApplication1->Selection->Paste();
08.01.13 — 17:24
Всем привет! Печ. форма формируется через Word. Открывается файл Word, там делаются замены после чего он сохраняется. Все отлично работало, пока не перенес базу на SQL.
Причем, если на этом сервере развернуть эту же базу в файловом варианте — все работает. А на SQL — нет.
Пробовал давать какие-угодно права пользователю, от имени которого запускается Агент сервера. Запускал его и под встроенной учеткой и под админом… нифига.
Вот фрагмент кода, который перестает работать на SQL:
Word = Новый COMОбъект(«Word.Application»);
Word.Visible = 0;
Документ = Word.Documents.Open(ИмяФайлаШаблона);
Fnd = Word.ActiveDocument.Range().Find;
Fnd.ClearFormatting();
Fnd.Forward = -1;
Выдает ошибку: «{ВнешняяОбработка.ФормированиеПоШаблону.МодульОбъекта(379)}: Ошибка при получении значения атрибута контекста (ActiveDocument)
Fnd = Word.ActiveDocument.Range().Find;
по причине:
Произошла исключительная ситуация (Microsoft Word): Данная команда недоступна, так как не открыт ни один документ.»
Пожалуйста, помогите разобраться в чем дело.
1 — 08.01.13 — 17:28
ну а путь к файлу у тебя какой? файл сам где лежит?
2 — 08.01.13 — 17:29
Сам Word установлен?
Что выдаст ПолучитьCOMОбъект(«», «Word.Application»)
или ПолучитьCOMОбъект(«d:temptemp.docx»)
3 — 08.01.13 — 17:29
ИмяФайлаШаблона — существует ли файл по этому пути, и доступен ли?
4 — 08.01.13 — 17:30
Сначала делал так:
ИмяФайлаШаблона = КаталогВременныхФайлов() + «ШаблонДоговора.docx»;
Потом переделал жестко:
ИмяФайлаШаблона = «C:UsersPublicDocuments» + «ШаблонДоговора.docx»;
Но не помогло.
5 — 08.01.13 — 17:31
Да, Word установлен. Если в файловом варианте развернуть, все работает, документ отлично формируется и открывается.
6 — 08.01.13 — 17:32
Ответь на (2)
7 — 08.01.13 — 17:32
Только выполни на сервере
8 — 08.01.13 — 17:33
Кода запускаешь файловую базу, доступны ком-обхекты локальной системы. Если сервер 1С находится на другой машине, откуда ему знать про «C:UsersPublicDocuments» терминального сервера или локальной машины?
9 — 08.01.13 — 17:38
Разумеется, я сто раз проверил существование файла, все права на него и все такое. В разные места его клал, админские права раздавал.
Запускаю я все на одном и том же сервере. И Word и 1C установлены на той машине, на которой я работаю.
Насчет (2): в первом случае результат тот же — «ни открыт ни один документ», во втором случае другая ошибка: «{ВнешняяОбработка.ФормированиеПоШаблону.МодульОбъекта(374)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
Word = ПолучитьCOMОбъект(ИмяФайлаШаблона);
по причине:
Ошибка получения объекта COM: Фильтр сообщений выдал диагностику о занятости приложения.»
10 — 08.01.13 — 17:40
У тебя и сервер 1С на той же машине стоит?
11 — 08.01.13 — 17:41
может как вариант повис на сервере COMОбъект Ворда. посмотри в процессах.
12 — 08.01.13 — 17:46
Vladal, Да, я когда разбирался с проблемой, установил все на одну машину. Сервер 1С, SQL и Word. На ней и разбираюсь.
zladenuw, ты прав. Там висела целая пачка процессов Word. Я их выбил, но теперь другая ошибка:
{ВнешняяОбработка.ФормированиеПоШаблону.МодульОбъекта(374)}: Ошибка при вызове метода контекста (ПолучитьCOMОбъект)
Word = ПолучитьCOMОбъект(ИмяФайлаШаблона);
по причине:
Ошибка получения объекта COM: Операция прервана
13 — 08.01.13 — 17:52
(12) Значит что-то из дочерних процессов может висеть и блокировать.
Скорее всего, он ответил на твой последний запрос com-объекта, что его прервали. Повтори через время или для верности перегрузи компьютер.
14 — 08.01.13 — 17:55
Я с проблемой второй день бьюсь и не раз перезагружал и даже переустанавливал платформу.
Если использовать «Word = Новый COMОбъект(«Word.Application»);», то COM объект создается. Т.е. по идее с СОМ все в порядке.
Для полной ясности скажу что стоит:
Платформа 8.2.17.153.
Сервер 1С — х64
Сервер SQL — 2012
Печатная форма для УТ 11. Хотя непонятно, какое это все имеет отношение к COM объекту… Короче, танцы с бубном продолжаются, спасибо за участие!
15 — 08.01.13 — 21:51
Если танцы с бубном не помогут, есть вариант без ворда если у тебя простая замена по тексту на нужные значения.
Переименовываешь файл docx в zip, извлекаешь в папку, находишь в подпапках файл с данными в формате xml, производишь в нем замены и назад выполняешь упаковку и переименование.
16 — 09.01.13 — 00:56
Pashkaa, это всем бубнам бубен ))) Я уж лучше на файловой версии все оставлю, чем так. Думаю, решение рано или поздно найдется. Буду с разными платформами экспериментировать. Вряд ли я единственный пытаюсь документ Word сформировать из базы 1С на SQL. А судя по тому, что в поиске ничего подобного нет, то ситуация не популярная и легко все может заработать на другой системе или конфигурации. Такие мысли у меня.
17 — 09.01.13 — 01:58
(16) напиши сетевую папку. Диск С: лучше не писать. Там есть такая фигня в правах как передача прав подчиненным папкам. Наследование.
То есть если ваш админ для диска С: задал неполные права твоему пользователю, то хоть ты застрелись, но хотя и будешь «давать какие-угодно права пользователю» на папку C:UsersPublicDocuments всё равно приоритет у прав на диск С:, которые и применятся.
18 — 09.01.13 — 03:52
(4) Посмотри пути.
Выполняется наверняка на сервере, значит далеко не факт, что у учетки запуска rphost-a есть права на путь-файл.
19 — 11.01.13 — 02:35
Разобрался. Кто бы мог подумать… Как я уже писал, это УТ 11 — т.е. управляемые формы. Перенес выполнение всех операций с объектом «Word = Новый COMОбъект(«Word.Application»)» с сервера на клиент — все заработало. Не спешите кидать тухлыми помидорами типа «конечно, Word не откроется на стороне сервера». Но раньше-то как-то открывался. Именно это меня и пустило по ложному следу. Выходит, доступность методов COM объектов на файловом сервере и SQL — разная.
Какой я сделал вывод:
Что касается конкретно метода Word.Documents.Open — если база файл-серверная, методу все равно где выполняться, на клиенте или на сервере. Документ открывается и показывается ни смотря ни на что. Но когда я перешел на SQL, метод ошибки выдавать не стал и внешне отрабатывает как я писал выше. Но если выполняется на стороне сервера — ничего не открывает и дальнейшее обращение к документу дает ошибку, а на стороне клиента — открывает.
20 — 11.01.13 — 07:43
сколько можно на эти грабли наступать.
http://infostart.ru/public/165910/
21 — 11.01.13 — 10:32
МихаилМ, по-моему не совсем по теме. Сом объект-то создается и остальные методы у него работают. Вы читали ветку или только последнее сообщение?
Сколько можно на эти грабли наступать… Сейчас-то конечно все сразу умные станут. )) Что раньше молчали? Давайте без этого.
22 — 11.01.13 — 10:47
(21)
из (9)>Разумеется, я сто раз проверил существование файла, все права на него и все такое. В разные места его клал, админские права раздавал.
не стыкуется с (19)
СЕсин
23 — 11.01.13 — 11:08
Чем же не стыкуется? В (9) я мудрил с самим файлом, а в (19) перенес выполнение кода с сервера на клиент. Короче, флуд пошел…
i have this web application in c# .net running on an external web server.In that i am trying to generate and save the word doc on the server ( without opening it) . It runs fines on my local machine as i am having word installed on my machine but on the server it is showing error on using MyApplication Class. I understand it is not possible to install word on the server . Right now i am referenceing word.interopp assembly in my application .
Is there any better way to solve the issue .
Thanks and regards
Vickey Y.
asked Aug 12, 2009 at 10:12
1
If you’re trying to use Office Interop without installing office on the server, then it’s clearly going to fail.
Could you install Word on a different server and expose some sort of web service to create the document for you and serve the file contents back to the original server to save?
You may be able to use some third party libraries which can generate the relevant Word format, but I don’t know of any.
What format does it have to be? Is it a complicated document? Could you just use RTF?
answered Aug 12, 2009 at 10:17
Jon SkeetJon Skeet
1.4m858 gold badges9078 silver badges9157 bronze badges
We use a third party tool called Aspose.Word. This allows you to perform a whole bunch of Word releated stuff without the need to install Word itself on the server.
answered Aug 12, 2009 at 10:19
Robin DayRobin Day
99.9k23 gold badges116 silver badges166 bronze badges
the word.interop uses an instance of word to generate and save the documents. Even though it doesnt display the UI, the process of WINWORD will be running. In short, you need word installed on the server to use word.interop. When we did this, we also encountered issues when the servers needed to be compatible with word 2007 documents too, so its not an easy venture working with Word. Hope you get through the issue ok
answered Aug 12, 2009 at 10:17
RussellRussell
17.4k23 gold badges80 silver badges125 bronze badges
I think you can do something like this.
I should alow you to open a document from the server.
protected void btnCreateWordBulletin_Click(object sender, EventArgs e)
{
String a= Server.MapPath("/Solution/Templates/Sport/Sport.doc");
String b= Server.MapPath("/Solution/Templates/Sport/SportSave.doc");
CreateWordDocument(a, b);
}
protected void CreateWordDocument(object fileName, object saveAs)
{
//Set Missing Value parameter - used to represent
//a missing value when calling methods through interop
object missing = System.Reflection.Missing.Value;
//Setup the Word.App class
Microsoft.Office.Interop.Word.Application WordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
Microsoft.Office.Interop.Word.Document aDoc = null;
// Check to see that file exists
if (System.IO.File.Exists((string)fileName))
{... Activating doc etc...}}
answered May 8, 2011 at 16:22
LiquidLiquid
1,8711 gold badge17 silver badges32 bronze badges
Yes, you can have Word running on server. However, note that opening winword.exe process from web service will probably fire winword.exe as ASPNET user. Some versions of MS word displayed some customization modal form during first run, making it impossible to automate process of using Word in server environment. The solution was making ASPNET “login-enabled” user, logging to server as an ASPNET user, running Word manually, closing all first-time-configuration modal forms, and then setting ASPNET user to its normal state. Since those configuration windows appeared only during first run of winword (more precisely: until configuration was approved by user), this actually worked.
Note: using winword on server needs some legal investigation. As far as I know MS attitude towards such solutions is rather negative, while some legal systems find it perfectly ok. Also take into consideration need for managing winword processes, and … and in fact, this is a bit crude hack.
answered Aug 12, 2009 at 10:25
smok1smok1
2,94225 silver badges35 bronze badges
OfficeWriter is another potential solution for you if you need true DOC and DOCX (as opposed to RTF or some other format):
http://www.officewriter.com
answered Feb 2, 2012 at 15:09
EisbaerEisbaer
1891 silver badge6 bronze badges
Take a look at OpenXML which is the file format all word (and Office) documents are saved in by default. http://openxmldeveloper.org/
answered Jul 11, 2012 at 13:50
GineerGineer
2,3584 gold badges26 silver badges40 bronze badges