Конвертор с fb2 на лету (Drupal 7)
5 ноября 2015 в 21:26
Всем привет.
Есть ли готовое решение под Drupal 7 для конвертации на ходу файлов формата .fb2 в .doc, .txt или другой формат. В общем стоит такая задача:
1. Пользователь создает ноду, в ней загружает файл (.fb2).
2. Далее при просмотре ноды пользователь видит 3 ссылки:
- Скачать .fb2
- Скачать .doc
- Скачать .txt
3. При нажатии на формат отличный от fb2, модуль должен конвертнуть файл fb2 в формат выбранный пользователем и начать загрузку.
- Блог
- Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Комментарии
Только если класс на пхп.
Не совсем понятен Ваш ответ.
друпал тут никак не связан. надо писать код.
Да это понятно, меня интересует, если ли подобная реализация в модуле. Я понимаю, что нужно будет пилить под себя.
Класс - это такой контейнер с функциями,который выполняет какую-то общую задачу. Я немного перепутал, возможно даже не класс а библиотека- контейнер классов.
Пример - PHPEXCELL
Я тоже раздумывал над какой-то библиотекой. Но пока подходящего варианта не нашел.
Привет,
fb2 по своей сути является XML файлом
http://www.fictionbook.org/index.php/%D0%9E%D0%BF%D0%B8%D1%81%D0%B0%D0%B...
Поискал чуть - но не нашел готового класса для перекодирования в docx или txt. Соответственно нужно будет все писать ручками. А это работа геморойная и долгая Может есть уже готовая какая-то программка конвертер под UNIX . Тогда в PHP можно делать exec (эта программа) и отдавать нужные файлы.
А так готового модуля и даже класса XML увы - НЕТ.
С ув., Алекс
Верно, и то что fb2 структурирован как XML это очень хорошо. В txt в принципе проблем запихнуть я не вижу (вот пример того что нашел http://www.hashbangcode.com/blog/convert-sitemapxml-file-urllisttxt-file-using-php). А вот з другими форматами сложнее. Хотя под docx вроде есть инструкция по конвертации с xml в docx: https://msdn.microsoft.com/en-us/library/ee840137%28v=office.12%29.aspx. Наверное буду пробовать писать с 0.
если писать с нуля то можно регулярками дергать нужные куски информации..я так доставал доки и эксель..Это общирная тема на самом деле..
Ну да, я думал как:
1. Фильтровать все теги с XML.
2. Если там заголовок или под заголовок выделять в .doc жирным.
3. В fb2 есть картинки, но они бинарные (этот этап я думал пока пропустить, сначала хотя б каркас сделать).
я, для разборов xml (и не только)) использую nokogiri
простенький пример разбора с руби.
у вас php - вам разбирать с Xpath.
конвертировать имеет смысл в html5 (for read online), epub, mobi, pdf.
p.s.
это некая онлайн-библиотека получается, в этом случае:
идиотизм от виндовс-озабоченных, офисс-ограниченных, замороженных в развитии нубовплохо)У меня кстати в html (не в чисто html-файлы, а информация выводится в нодах) и реализовано Возможность прочитать у пользователя есть. Но я не пользовался Xpath, всё сам писал.
Я про .doc так как пример написал. Может быть и другой формат. Мне просто хочется сделать возможность скачать и в других форматах. И я, если честно, не до конца понимаю как правильно сделать такой функционал.
надо решить пару вопросов:
когда конвертируем,где конвертируем и где храним результат.
как вижу я:
после сохранения ноды с файлом fb2,
на отдельной (от веб и бд сервера) машине,
храним в файловой системе.
т.е. нет никаких проблем - используйте сторонние сервисы, пока не напишите свой.
как уже не единожды говорили на эту тему - либрусек отличный пример.
однако еще:
подымите для себя инфу - для чего вообще создавался fb2 и чего с ним можно делать,
ознакомьтесь с примером с точки зрения читателя (ибо для писателя там git с md).
При нажатии пользователем ссылки.
Конвертация на сервере и файлы тоже. Что б не забивать сильно место можна удалять неиспользованные файлы через 30 дней.
Я думал почти так же, разница собственно разница только в времени конвертации файла.
С сторонними в принципе проблем думаю не возникнет. Проблема возникает при написании всего процесса конвертации.
Для моих нужд fb2 подходит полностью, потому я его и выбрал как основной формат. За пример спасибо, с точки зрения читателя отлично сделано.
Я немного проще сделал. С fb2 вытягиваю заголовки разделов и разбиваю их структурно по разделу. Пользователь видит все разделы в отдельном блоке и может переключатся между ними. Конечно код не идеален, есть косяки.