none
Работа с вордом из PHP RRS feed

  • Общие обсуждения

  • Ребята подскажите как можно сделать, задача такая.

    Есть образно 10 абзацев текста, которые надо заполнить с возможностью вордовских функции, эти данные хранятся в неких ячейках отдельно. Потом эти абзацы необходимо склеить в один вордосвкий документ, в котором надо еще сделать автооглавления по этим абзацам. Я вот думаю это делать так, написать на asp.net онлайн ворд, его вызывать из php сайта, при закрытии ворд онлайн, он xml данные текста отправляет php сайту тот это запоминает, также автооглавление, отправляем все куски asp.net сервису, он склеивает и делает автооглавление, результат возвращает php сайту. А можно ли это сделать на php только?

    14 января 2015 г. 6:49

Все ответы

  • Добрый день.

    Не знаю, есть ли тут крупные специалисты по PHP, может они подскажут что-то более полезное, но я вижу два варианта решения вашей задачи:

    1. Если PHP умеет работать с COM, то реализовать взаимодействие с офисом через него. Основные недостатки: необходимо все разворачивать на Windows сервере и на нем должен быть установлен Office, при большом количестве пользователей и больших документах тормозить будет сильно.

    2. Вы все делаете на PHP, а на ASP .Net пишите Web-сервис c двумя методами: один получает ваши абзацы и возвращает XML оглавление, второй получает абзацы и оглавление и возвращает файл Word. Для генерации я бы использовал OpenXML. В этом случае на Windows сервере у вас будет крутиться только Web-сервис и производительность его будет весьма высока.

    14 января 2015 г. 7:47
    Отвечающий
  • 1-й вариант отпадает получается, потому что php сайт крутится на линуксе.

    Остается 2 вариант как я предполагал спасибо.

    А есть ли библиотеки более высокого уровня для работы с вордом, чтобы не потеряться в дебрях open xml?
    • Изменено kodermax 14 января 2015 г. 8:10
    14 января 2015 г. 8:09
  • Есть.

    Однако я бы для начала озаоботился бы вопросами лицензирования. Я бы сказал что как минимум придется приобрести лицензию на копию Оффис для каждого пользователя данного сайта что может быть весьма накладно для простой задачи ввода небольшого количества текста.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    15 января 2015 г. 0:13
    Модератор
  • У каждого пользователя и так лицензионный офис стоит, что-то не понятно сервер же не терминальный будет.
    15 января 2015 г. 7:04
  • Лицензирование является юридическим, а не техниеским вопросом. Поэтому какой сервер значения не имеет. 

    То что Оффис у пользователей имеется это хорошо. Но это не означает что имеется возможность использовать его в таком режиме. Это зависит от версии, типа лицезнии и других факторов. Поэтому перед тем как начать что то делать проконсультуруйтесь с юристом по поводу лицензирования.

    Кстати, когда то имелся продукт под названием "Office Web Components" который позволял делать нечто подобное, однако я не помню был ли там Word. Имеются так же Office Web Apps которые видимо подходят куда больше для данного сценария.

    Лично я бы просто поставил бы простейший веб редактор с неким минимальным форматированием вроде того что на этом сайте, сгенерировал бы любой известный формат попроще (RTF например хотя он не так прост как кажется) и на этом бы все и завершилось. 


    This posting is provided "AS IS" with no warranties, and confers no rights.

    15 января 2015 г. 7:59
    Модератор
  • А как же склеивать кусочки разных абзацев, люди хотят как в ворде форматировать их вставлять картинки и прочее и получать автооглавление.

    Т.е. Юзеры будут по кусочкам формировать документ, заполняя разные поля, потом поля првератятся в один документ склеинный с автооглавлением.

    15 января 2015 г. 8:08