Свой конвертер документов в swf
Разберем немного scribd.com (или его более крупный аналог slideshare.net). Суть сервиса проста, любой пользователь может загрузить документ MS Office или OpenOffice, через короткое время после конвертации получается плеер, который проигрывает его презентацию, позволяя ее масштабировать и размещать на других сайтах. Грубо говоря аналог youtube в мире презентаций. Как создать свой аналог такого сервиса? Я разберу ключевой момент конвертации презентаций, остальное любой здравый программист на PHP может дописать сам.
Для разработки такого сервиса нам понадобится: Linux или Windows (не принципиально), OpenOffice, JRE (в некоторых случаях сгодится GIJ, но я бы рекомендовал в данном случае GNU Java), swftools.
1. Качаем JRE: link. Заменяем GIJ на JRE (скачиваем JRE, JDK не надо с официального сайта - sun.com), устанавливаем JRE, после этого:
root#> rm -f /usr/bin/java
root#> ln -s /path/to/installed/java /usr/bin/java
#>java -version
должна показать, что это именно сановская Java.
2. Устанавливаем OpenOffice: link (сбрасываем галочку "Include the Java JRE" перед загрузкой). Устанавливаем стандартно:
./configure
make && make install
3. Запускаем OpenOffice как сервер: /path/to/openoffice/program/soffice.bin -headless -nofirststartwizard -accept="socket,host=localhost,port=9000;urp;StarOf fice.Service"
Безусловно, проверив, чтобы 9000 порт не был занят:
#>netstat -an | grep 9000
(можно запуск OpenOffice прописать в автозапуск, чтобы стартовала при перезагрузках сервера автоматом).
4. Качаем уже готовый конвертер с link
Этот zip файл распаковываем, в нем исходные коды (папка src/edu/uiuc/ideals/conversion/oo) и библиотеки (lib). Собрать этот конвертер несложно, я использовал NetBeans: link (достаточно Java FX версии).
Создаем новый проект (Java -> Java Application), добавляем к нему файлы из src/edu/uiuc/ideals/conversion/oo, затем добавляем JAR архивы: кликаем правой клавишей по Libraties в проекте и выбираем пункт Add Jar/Folder..., где указываем путь к lib.
Собственно проводим саму сборку - Build. Если сборка прошла успешно - отлично, получили jar файл. Этот файл (если вы собирали под Windows) закачиваем на сервер, он и будет заниматься переводом всех документов в pdf.
5. Устанавливаем swftools: link. Внимание, если устанавливаете на Linux, то рекомендую сделать следующую правку: lib/devices/swf.c на строке 251 заменить код:
if(i->currentswfid == 65535) {
на
if(i->currentswfid == 2147483647) {
размерность int безусловно проверить стоит, но скорее всего она будет у вас стандартно 4-х байтовая, поэтому такая замена будет вполне нормальной.
далее стандартно:
./configure
make && make check && make install
6. Все пропущенные файлы через конвертер передаем в swftools:
#>/usr/bin/swftools -o output.swf -z -t file.pdf;
Результатом будет флешка, которую можно встроить в плеер, но лучше будет использовать параметр -B у swftools, и использовать свой плеер (флешка окажется сразу встроенной в ваш плеер и вы сможете использовать функции поиска по ней (думаю, что возможно), так как весь текст в ней сохраняется не как картинка, а текстовыми полями).
Обновлено 05.09.2011 15:56

Комментарии
RSS лента комментариев этой записи