В процессе изучения вопроса появилось возможное решение проблемы (список будет пополняться):
- Использовать OpenOffice/LibreOffice для конвертации в промежуточный формат (pdf) и затем преобразование pdf в swf через swftools.
- Использовать unoconv для конвертации в xhtml
OpenOffice/LibreOffice + swftools
Я буду рассматривать вопрос в контексте LibreOffice (далее LO) на Debian Squeeze.
Для работы начала нужно запустить LO в т.н. headless mode.
$ soffice "--accept=socket,host=localhost,port=8100;urp;StarOffice.ServiceManager" --nologo --headless --nofirststartwizard --norestore
Для конвертирования документов в pdf использовался PyODConverter. Для работы PyODConverter требуется пакет python-uno. Сам процесс конвертирования выглядит так:
$ python ./DocumentConverter.py ./source.doc ./result.pdf
После преобразования в pdf, нужно конвертировать результат в SWF, который можно внедрить в веб-страницу.
$ pdf2swf --quiet -f --set simpleviewer ./result.pdf --output ./result.swf
Поскольку в Debian нет пакета для swftools, я собрал тестовый пакет, который доступен в моем репозитории.
Unoconv
Версия unoconv, доступная в squeeze, старовата (0.3-6), поэтому я установил версию из unstable (0.4-1). Попробовал конвертировать:
$ unoconv --format xhtml --stdout source.doc > result.html
Документ сконвертировался неплохо, однако есть сомнения насчет разметки в сложных документах.
Комментариев нет:
Отправить комментарий