Манипулирование текстовыми документами (doc, docx и т. Д.) В linux с php или ruby

У меня есть пользователи, которые загружают текстовые документы на мою веб-страницу. Мне нужно открыть эти документы, отобразить их в html и позволить пользователю загружать управляемую версию.

Мой веб-сервер позволяет мне использовать PHP и Rails. Таким образом, решение на любом языке было бы приемлемым.

Я нашел множество других сообщений в моих исследованиях, таких как LiveDocx, которые, похоже, больше ориентированы только на создание текстовых документов с известными шаблонами. И Java POI, который не поддерживается моим веб-сервером. Я также нашел информацию о docx, чтобы я мог просто разархивировать ее и настроить файлы xml – что было бы замечательно, за исключением того, что я хотел бы принимать больше расширений, чем только docx.

Это моя последняя попытка попыток найти другое решение этой проблемы. Какие-либо предложения? Мне просто нужно переключиться на сервер Windows? (даже с сервером Windows, могу ли я сделать то, что хочу?)

Вы не говорите, какие манипуляции вам нужны, и не можете ли вы установить что-либо новое на сервере, но если вы можете, вы можете установить OpenOffice (или Libreoffice, как указано @Rok), и получить доступ к нему из вашего скрипта через командной строки.

OoO может конвертировать все виды офисных форматов, включая прошлые и текущие офисные Microsoft, PDF и HTML, и я считаю, что это лучший инструмент для такого рода работ.

Вы можете отображать документы в преобразованном виде HTML, или если это не сработает (я думаю, что это сильно ломается внутри сложных документов, если оно вообще работает!), PDF, встроенный в iframe, который должен быть таким же хорошим ,

Эта запись в форуме OpenOffice.org предоставляет некоторые отправные точки.

Изменить: если вы не можете установить какое-либо программное обеспечение, есть сторонние веб-службы, которые делают конверсии, большинство за плату. Вот пример.

Я бы сделал это так:

  1. Установка libreoffice на сервере
  2. Вызов скриптов python libreoffice с php или ruby

И не переключайтесь на окна, это не облегчит проблему.