За последние 24 часа нас посетили 22178 программистов и 1684 робота. Сейчас ищут 1696 программистов ...

Как вывести на странице текст из файла rtf,doc,docx

Тема в разделе "PHP для профи", создана пользователем Leon2110, 6 мар 2018.

  1. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Всем привет) Кто подскажет, есть ли готовая библиотека на php, чтобы можно было любой из форматов rtf, doc, docx выводить на сайте? Желательно в таком же виде как в файле.

    То есть по сути наверное это будет конвертация одного из форматов в html.
    Смысл задумки, чтобы делать пустой материал (cms joomla, но тут это не важно) с вложением одного из форматов, а при просмотре с фронта юзеры видели бы содержание этого файла, а не само вложение.

    Это для облегчения размещения контента в одной из категорий. Пока только смог реализовать, если кидать файлы в pdf, это вывод их во фрейме. Было бы намного лучше обойтись без фреймов и выводить текстом.

    Пробовал вот такие интересные скрипты https://github.com/rembish/TextAtAnyCost
    Они работают в принципе, но не сохраняется формат текста, либо с жуткими косяками, либо просто сплошным текстом в plain-text.

    Может будут предложения сохранять текстовый файл в другой формат перед загрузкой на сайт.
     
  2. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Leon2110 нравится это.
  3. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Убил почти весь день, скрипты которые есть это либо самому составлять доки, либо работают криво. У меня вордовские файлы не предсказуемые могут быть, в одном может быть картинка, в одном таблица и т.д. и написать единый шаблон не получится, а нормального конвертирования похоже нет.
    Точнее нашел один метод, но не получилось его сделать, там смысл нужно поставить на сервер опен офис и там есть команды в которых указываются пути к файлам и в каком формате их сохранить.

    Если уж с переводом doc в html средствами php такие проблемы, может в pdf проще? Находил тоже несколько библиотек, но они портят вид при конвертации, надо чтобы был 1 в 1 как в файле и можно было открыть в браузере.
     
  4. voral

    voral Активный пользователь

    С нами с:
    30 ноя 2017
    Сообщения:
    646
    Симпатии:
    104
    Это утопия. ИМХО.

    По программам от мелкософта максимум: разворачивать сайт на виндовом сервере и использовать ActivX.... По PDF еще сложнее.
    Так для справки: есть альтернативные MS Office пакеты и все они стараются обеспечить конвертацию из виндовых форматов, и даже там нельзя сказать, что работает всегда на 100%.

    Самое простое из перечисленного работать с новыми форматами MS : xlsx, docx ..... Они по сути представляют из себя архив из нескольких файлов, можно распаковать а дальше работать с xml ......

    В любом случае решение, на мой взгляд, дорогое получится.... Легче все же документы переносить в свою CMS (визивики вроде более менне умеют вставлять "верстку" из всяких вордов)..... а c PDF просто смириться
     
    Leon2110 нравится это.
  5. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Раздобыл еще один способ, он конечно не совсем хорош, но думаю если правильно все настроить он поможет. Есть еще специальные сайты, со своим API типа вот: https://github.com/cloudconvert/cloudconvert-php

    Хочу попробовать, но у меня сразу ошибка 500 при подключении первой строки кода:
    Код (Text):
    1. 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 минут конвертаций в день, мне в принципе думаю этого будет достаточно, но этот затык с установкой, можете подсказать что не так делаю?
     
    #5 Leon2110, 7 мар 2018
    Последнее редактирование: 7 мар 2018
  6. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Leon2110 нравится это.
  7. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Ну это понятно) Я просто раньше с Composer дел не имел и не подключал файлы которые находятся выше корня сайта. В мануале почему-то именно везде написано:
    require __DIR__ . '/vendor/autoload.php';
    не знаю почему и как это должно брать файл из /root/vendor/autoload.php

    А константы либо от корня, либо от файла и т.д, а тут непонятно от чего, пробовал вручную указать путь от root или от корня но с кучей ../.../../ результата нет, не подключилось.

    Код (Text):
    1. PHP Fatal error:  require(): Failed opening required '../../../../../../root/vendor/autoload.php'
    2.  
    3. PHP Fatal error:  require(): Failed opening required 'root/vendor/autoload.php'
     
  8. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    не с кучей а с тем количеством которое нужно одна ../ = одна директория вверх.
    где composer require запустили там vendor и создался
    вы же его запустили?))) пакет установился?
     
    Leon2110 нравится это.
  9. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Хмм, тоесть наверное лучше перезапустить это дело с composer в корне сайта? И пути тогда будут нормальные.
     
  10. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Только если файл со скриптом находится в корне.
     
    Leon2110 нравится это.
  11. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Все получилось, кинул этот вендор в корень и с нормальными путями все пошло, сейчас тестю сам API, написано 25 конвертационных минут, думал в минуту смогу штук 10 файлов (они у меня в основном мелкие будут), а оказывается 1 файл 1 минута))

    Если получится все хорошо настроить, думаю не плохо будет. Не думаю, что мы будем размещать более 25 файлов в день. Для тестов наверное будет мало, но после пойдет. Не знаю как, но у них довольно качественные конвертации получаются.
     
    #11 Leon2110, 7 мар 2018
    Последнее редактирование: 7 мар 2018
  12. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.584
    Симпатии:
    1.762
    http://viewerjs.org/ - недавно нашёл вот эту штуку. Доки, правда, не умеет, зато умеет odt и ods, pdf
     
    Leon2110 нравится это.
  13. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Спасибо, тоже очень не плохая штука, правдо работает на фрейме, pdf можно и без нее во фрейме отобразить, а вот с остальными форматами это очень хорошая работа.
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.584
    Симпатии:
    1.762
    В хроме можно, а в FF к примеру нет (по крайней мере, по умолчанию у меня не отобразил, а с этой штукой - сразу).
     
    Leon2110 нравится это.
  15. Leon2110

    Leon2110 Активный пользователь

    С нами с:
    27 фев 2018
    Сообщения:
    29
    Симпатии:
    0
    Еще у меня в тестах ilovepdf.com - там тоже API, на бесплатном тарифе позволяет 250 файлов в месяц конвертировать, тянет почти все офисные форматы. Качество на выходе тоже 1 в 1 как в doc файлах, проверил. Думаю этот сервис + ViewerJS дадут не плохой результат.