У каждый технологии или продукта есть область его применения. Если вы используете продукт неестественным образом — это только и исключительно ваша проблема, Word тут не является узким местом.
В общем, как видно из статьи, моя проблема решена.
Просто мое решение может пригодиться кому-нибудь еще.
Не вижу ничего противоестественного в использовании продукта таким образом.
Может обращение к Word через COM/OLE или открытие DOC с помощью Microsoft Word?
Для xls можно через ODBC, смотирте тут — www.connectionstrings.com/excel, для doc/ppt это не так очевидно, как там организовать доступ к данным. Если бы мне сейчас что-то такое предложили сделать, я бы использовал связку конвертора в docx (b2xtranslator.sourceforge.net) и собственно OpenXML SDK — openxmldeveloper.org/archive/2008/06/11/3342.aspx
А COM просто запускае рядом Word, для серверной работы это вообще маразм.
В своё время делал крошечную программку на Delphi, использовавшую офис для сохранения вордовских файлов в формате хтмл. Работало всегда как часы (преобразовывало пачками из несколько тысяч файлов). Однако, кроме Word.Document я использовал и Word.Application — с чистым Word.Document были проблемы, суть которых я уже не вспомню; ну и скорость, каждый раз запускать копию ворда не так уж и хорошо.
Перезагружаю ворд, для избавления от остатков от прошлых документов. С чистым, как-то спокойнее работать.
Кроме того у Word бывают такие проблемы: выскочит какое-нибудь окошко с предложением нажать ОК. А через COM его не нажмешь. И не отображается оно, так как Word скрыт. И работать дальше Word отказывается. И единственный выход — выкинуть процесс и начать все заново.
думаю, дальнейшее развитие возможно лишь дополнением «костылями». Например, более умное поведение обработчика. В случае использования конверторов «туда-обратно» (как было предложено тов. dmach) вполне возможно нарушение структуры документа.
Хотите открою одну страшную тайну, о которой тут упоминаний не нашел пока что…
Сохраните любой документ ворда, что называется, «как веб-страницу», а затем откройте и посмотрите… Там, конечно, будет много ненужной вордовской грязи, он где-то в инете лежит простой шаблончик ворд-документа в этом формате, и вы можете туда текст вставлять как обычный html, и со стилями там тоже вроде как все в порядке, css Вам в помощь. Что же насчет картинок и вообще — объектов (если это все у вас используется), то, я думаю, там ничего сложного (сам я глубоко не лазил в это дело, чисто взял себе на заметку на будущее)
Плюсы:
отпадает надобность во всяких win-серверах и ком-оле объектах соответственно, все тормоза ворда теперь вас не касаются. Вы просто берете шаблон как обычный файл и делаете с ним что надо. Если бы я с этим работал, в рукаве бы уже был какой-нибудь самописный класс (или найденный, если имеется таковой), которым я бы поделился с Вами.
Минусы:
Чесслово, не знаю, так как не тестил, не пробовал (не считая создания документа hello word, что удалось на отлично и способ занял свое заслуженное место в моей копилке решений..). Но подозреваю, что надо будет шаманить насчет вставки картинок в документ и других, более сложных объектов.
Тогда можно в таком направлении подумать: для бинарного формата Excel есть парсеры на PHP, нет ли таких же для Word?
Хотя конечно это уже костыли напоминает, потому что форматы doc'ов отличаются разительно, и для каждого черт знает где и какой парсер брать… Это уже слишком) Гораздо надежнее получается, действительно, иметь win-сервер
> Следует заметить, что открытые спецификации не лишены «белых пятен», в представленной документации отсутствует описание некоторых полей и особенностей работы.
Как я с Microsoft Word воевал!