Всем привет) Кто подскажет, есть ли готовая библиотека на php, чтобы можно было любой из форматов rtf, doc, docx выводить на сайте? Желательно в таком же виде как в файле. То есть по сути наверное это будет конвертация одного из форматов в html. Смысл задумки, чтобы делать пустой материал (cms joomla, но тут это не важно) с вложением одного из форматов, а при просмотре с фронта юзеры видели бы содержание этого файла, а не само вложение. Это для облегчения размещения контента в одной из категорий. Пока только смог реализовать, если кидать файлы в pdf, это вывод их во фрейме. Было бы намного лучше обойтись без фреймов и выводить текстом. Пробовал вот такие интересные скрипты https://github.com/rembish/TextAtAnyCost Они работают в принципе, но не сохраняется формат текста, либо с жуткими косяками, либо просто сплошным текстом в plain-text. Может будут предложения сохранять текстовый файл в другой формат перед загрузкой на сайт.
Убил почти весь день, скрипты которые есть это либо самому составлять доки, либо работают криво. У меня вордовские файлы не предсказуемые могут быть, в одном может быть картинка, в одном таблица и т.д. и написать единый шаблон не получится, а нормального конвертирования похоже нет. Точнее нашел один метод, но не получилось его сделать, там смысл нужно поставить на сервер опен офис и там есть команды в которых указываются пути к файлам и в каком формате их сохранить. Если уж с переводом doc в html средствами php такие проблемы, может в pdf проще? Находил тоже несколько библиотек, но они портят вид при конвертации, надо чтобы был 1 в 1 как в файле и можно было открыть в браузере.
Это утопия. ИМХО. По программам от мелкософта максимум: разворачивать сайт на виндовом сервере и использовать ActivX.... По PDF еще сложнее. Так для справки: есть альтернативные MS Office пакеты и все они стараются обеспечить конвертацию из виндовых форматов, и даже там нельзя сказать, что работает всегда на 100%. Самое простое из перечисленного работать с новыми форматами MS : xlsx, docx ..... Они по сути представляют из себя архив из нескольких файлов, можно распаковать а дальше работать с xml ...... В любом случае решение, на мой взгляд, дорогое получится.... Легче все же документы переносить в свою CMS (визивики вроде более менне умеют вставлять "верстку" из всяких вордов)..... а c PDF просто смириться
Раздобыл еще один способ, он конечно не совсем хорош, но думаю если правильно все настроить он поможет. Есть еще специальные сайты, со своим API типа вот: https://github.com/cloudconvert/cloudconvert-php Хочу попробовать, но у меня сразу ошибка 500 при подключении первой строки кода: Код (Text): require __DIR__ . '/vendor/autoload.php'; PHP Fatal error: require(): Failed opening required '/home/admin/web/****.ru/public_html/test/vendor/autoload.php' Все по инструкции, поставил Composer, выполнил их строку с установкой скрипта для API composer require cloudconvert/cloudconvert-php:2.2.* Эта строка в ошибке, как я понимаю ищет файл не там. На самом деле файл находится по пути /root/vendor/autoload.php - как его подключить правильно? Он же не в корне сайта а вообще за его пределами. Мануал вроде у них подробный, есть бесплатные 25 минут конвертаций в день, мне в принципе думаю этого будет достаточно, но этот затык с установкой, можете подсказать что не так делаю?
Ну это понятно) Я просто раньше с Composer дел не имел и не подключал файлы которые находятся выше корня сайта. В мануале почему-то именно везде написано: require __DIR__ . '/vendor/autoload.php'; не знаю почему и как это должно брать файл из /root/vendor/autoload.php А константы либо от корня, либо от файла и т.д, а тут непонятно от чего, пробовал вручную указать путь от root или от корня но с кучей ../.../../ результата нет, не подключилось. Код (Text): PHP Fatal error: require(): Failed opening required '../../../../../../root/vendor/autoload.php' PHP Fatal error: require(): Failed opening required 'root/vendor/autoload.php'
не с кучей а с тем количеством которое нужно одна ../ = одна директория вверх. где composer require запустили там vendor и создался вы же его запустили?))) пакет установился?
Хмм, тоесть наверное лучше перезапустить это дело с composer в корне сайта? И пути тогда будут нормальные.
Все получилось, кинул этот вендор в корень и с нормальными путями все пошло, сейчас тестю сам API, написано 25 конвертационных минут, думал в минуту смогу штук 10 файлов (они у меня в основном мелкие будут), а оказывается 1 файл 1 минута)) Если получится все хорошо настроить, думаю не плохо будет. Не думаю, что мы будем размещать более 25 файлов в день. Для тестов наверное будет мало, но после пойдет. Не знаю как, но у них довольно качественные конвертации получаются.
http://viewerjs.org/ - недавно нашёл вот эту штуку. Доки, правда, не умеет, зато умеет odt и ods, pdf
Спасибо, тоже очень не плохая штука, правдо работает на фрейме, pdf можно и без нее во фрейме отобразить, а вот с остальными форматами это очень хорошая работа.
В хроме можно, а в FF к примеру нет (по крайней мере, по умолчанию у меня не отобразил, а с этой штукой - сразу).
Еще у меня в тестах ilovepdf.com - там тоже API, на бесплатном тарифе позволяет 250 файлов в месяц конвертировать, тянет почти все офисные форматы. Качество на выходе тоже 1 в 1 как в doc файлах, проверил. Думаю этот сервис + ViewerJS дадут не плохой результат.