Модуль для просмотра PDF-файлов через flash-просмотрщик

Аватар пользователя Ромка

Для очередного проекта разработал модуль, предназначенный для автоматического преобразования PDF файлов в SWF формат для дальнейшего их просмотра через flash-просмотрщик. Модуль является веб-интерфейсом для утилиты pdf2swf, которая входит в состав swftools, по этому для функционирования модуля на сервере должна быть установлена последняя версия swftools. Демо-версию можно посмотреть у меня на сайте, подробное описание тоже там.

Интерфейс аплоада файлов на сервер реализован как плагин к Друпальским модулям  CCK и  FileField, для вывода преобразованного файла на экран используются собственный flash viewer, который при необходимости может быть заменен на любой другой, и модуль для Друпала  SWFTools (он не имеет отношения к swftools.org, просто тезка).

Устанавливается и настраивается модуль также как и любой плагин к CCK:

  • активируем модуль на странице admin/build/modules;
  • на странице admin/content/node-type/имя_типа_контента/fields добавляем поле File->Pdf2Swf;
  • в настройках поля можно указать путь к pdf2swf, если он не совпадает с тем что уже задан, и размеры просмотрщика;
  • в Display options нужно выбрать вариант "SWF viewer with pager".

После этого пользователи смогут закачивать пдф-файлы на сервер, они в реальном времени будут преобразовываться в свф, по этому нужно набраться терпения, процесс конвертирования может занять несколько минут (у меня файл размером 18 мегабайт конвертируется примерно 30 секунд, плюс нужно добавить время на аплоад файла на сервер). Для просмотра созданных файлов я написал простейший просмотрщик, который со временем буду дорабатывать, а пока он умеет листать страницы, масштабировать документ и показывать прогресс-бар при загрузке документа.

ВложениеРазмер
Иконка пакета pdf2swffield.zip16.2 КБ
Версия Drupal:
0 Thanks

Комментарии

Аватар пользователя x3
x3 8 лет назад

.

Аватар пользователя x3
x3 8 лет назад

Может быть я что-то упустил, но почему бы просто и поставить на сайте ссылку, открывающуюся в новом окне, на этот файл. Пример: http://i.booknik.ru/files/putevoditel.pdf Откройте этот файлик в новом окне. Первое, что нашёл.
Если человек хочет просматривать pdf, пусть установит adobe reader - это как аксиома. Reader к тому имеет интеграцию с Oper, IE, и Firefox, с другими не пробовал. Он бесплатен. Не вижу причину отказываться от него. У меня стоит 9 версия, очень симпатичный. Немного прожорлив к ресурсам, но при современных мощностях компов - это капля в море.

Плюсы этого решения:

1. Не надо устанавливать дополнительные модули

2. Нет конвертации в реальном времени

Эти 2 пункта избавляют сервер от лишней нагрузки, что в случае с друпалом является большим плюсом.

3. Adobe reader бесплатен и стоит почти у всех пользователей. Имеет интеграцию с браузерами. Если пользователь хочет смотреть flash, то он обычно устанавливает adobe flasch player. Тоже самое и с .pdf!

4. При загрузке документа виден индикатор загрузки.

5. При просмотре документа используется уже привычная среда adobe reader'a со множеством полезных и не очень настроек.

6. Простота по сравнению с Вашим решением. Пользователю необходимо лишь установить Adobe reader. Нет reader'a - нет и pdf файлов.

Теперь перейдём к вашему модулю. Сам его пока не устанавливал, лишь посмотрел пример на Вашем сайте.

1. За модуль спасибо, возможно кому-то он понадобится. Старания и потраченное время должны всегда вознаграждаться, пусть даже и банальным СПАСИБО!

2. Я предпочитаю жёсткую компоновку, не люблю, когда документ ездит из стороны в сторону. Хотелось, чтобы вы добавили полосы прокрутки, с ними действительно удобней.

3. При перетаскивании текста вверх нужно, чтобы курсор менял форму на руку, как в adobe reader. Пользователи любят привычные вещи.

4. Единственный плюс Вашего решения (лично моё мнение и только моё) это универсальность, т.к. документы могут просматривать все, даже те, кто не установил adobe reader.

На этом всё!

А теперь маленький вопросик, касающийся этой самой универсальности. Вы сказали, что сам pdf выводится через flash плеер. А теперь вопрос, если пользователь не устанавливал никакие дополнения типа adobe flash player. Может ли он полноценно просматривать этот pdf, как я понял, НЕТ, не может!!!!

Если пользователь установил flash player, то вероятнее всего он установить и adobe reader!

Теперь второй вопросик. Вы сказали, что пользователь кидает pdf файл на сервер и на сервере утилита (скрипт) конвертит его в swf! Теперь на сервере два файла: pdf и swf ? Или первый автоматом удаляется, а то как-то не хорошо, когда на серваке исчезает свободное место.

Буду очень благодарен, если Вы ответите на мой коммент, путём цитирования каждого предложения и дадите ему подробного объяснение. Мне очень интересна Ваша точка зрения.

Аватар пользователя Ромка
Ромка 8 лет назад

Собственно, условие просматривать пдф через флэш было поставлено заказчиком, по этому все преимущества адоб ридера здесь роли не играют.

x3 написал:
1. Не надо устанавливать дополнительные модули
x3 написал:
2. Нет конвертации в реальном времени

Да это и не проблема вовсе. Само существование модуля дополнительной нагрузки на сервер не создает, ресурсы отъедаются только во время конвертирования, но, по крайней мере в моем случае, таких конвертаций планируется не больше одной в день, а то и меньше, так что проблемы в первых двух пунктах не вижу.

x3 написал:
3. Adobe reader бесплатен и стоит почти у всех пользователей. Имеет интеграцию с браузерами. Если пользователь хочет смотреть flash, то он обычно устанавливает adobe flasch player. Тоже самое и с .pdf!

У себя в блоге в описании модуля об этом писал: Adobe Reader есть не у всех, да и выглядит он скучно, а к флешовому проигрывателю можно, при желании, прикрутить множество красивых эффектов.

x3 написал:
4. При загрузке документа виден индикатор загрузки.

Здесь тоже есть индикатор, причем можно нарисовать прогресс бар любого вида.

x3 написал:
5. При просмотре документа используется уже привычная среда adobe reader'a со множеством полезных и не очень настроек.

Это не всегда нужно. Посмотрите на любой PDF-журнал (например, http://devouti.livejournal.com/), там кроме навигации и зума, обычно, ничего больше не нужно, зато стильный внешний вид имеет важное значение. Понятное дело, текущий просмотрщик, который идет в комплекте с модулем, не идет ни в какое сравнение с тем что я привел тут, но он еще будет дорабатываться, кроме того, любой желающий, умеющий работать с Action-script, легко может разработать свою версию просмотрщика с бриджем и поэтессами.

x3 написал:
2. Я предпочитаю жёсткую компоновку, не люблю, когда документ ездит из стороны в сторону. Хотелось, чтобы вы добавили полосы прокрутки, с ними действительно удобней.

3. При перетаскивании текста вверх нужно, чтобы курсор менял форму на руку, как в adobe reader. Пользователи любят привычные вещи.

Это уже вопросы флэш вьюера. Здесь я в первую очередь презентую серверную часть модуля, вьюер пока примитивен и будет дорабатываться (хотя точно не в ближайшее время).

x3 написал:
А теперь маленький вопросик, касающийся этой самой универсальности. Вы сказали, что сам pdf выводится через flash плеер. А теперь вопрос, если пользователь не устанавливал никакие дополнения типа adobe flash player. Может ли он полноценно просматривать этот pdf, как я понял, НЕТ, не может!!!!

По заверениям Adobe flash player стоит почти на 100% компьютеров. В отличии от Адоб Ридера.

x3 написал:
Если пользователь установил flash player, то вероятнее всего он установить и adobe reader!

Совершенно не факт. Флэш плейер может пригодиться в десятке других случаев, например для просмотра роликов на ютьюбе, по этому вероятность того что он уже установлен в системе гораздо выше, чем вероятность того что в системе есть Ридер. Кроме того, вьюер выводится средствами модуля swftools, который, в свою очередь, для отображения использует SWFObject, который позволит легко и быстро без перезагрузки страницы скачать и установить flash-плейер.

x3 написал:
Теперь второй вопросик. Вы сказали, что пользователь кидает pdf файл на сервер и на сервере утилита (скрипт) конвертит его в swf! Теперь на сервере два файла: pdf и swf ? Или первый автоматом удаляется, а то как-то не хорошо, когда на серваке исчезает свободное место.

Ну это уже совсем мелочность какая-то. Да, пдф на сайте остается, но это сделано специально, для того чтобы можно было вывести ссылку на скачивание оригинального файла. При желании можно сделать так, чтобы пдф автоматом удалялся после конвертирования, но я не вижу в этом абсолютно никакого смысла.

Аватар пользователя inc
inc 8 лет назад

Спасибо за реализацию интересной идеи.
Пример http://devouti.livejournal.com/ очень красивый.
Еще понравилось, что у pdf контента отсутствует возможность копирования, что бывает нужно в некоторых случаях.

Аватар пользователя Ромка
Ромка 8 лет назад
inc написал:
Пример http://devouti.livejournal.com/ очень красивый.

Этот пример реализован при помощи сервиса http://issuu.com/, еще есть http://scribd.com, он, на мой взгляд, менее красивый результат выдает. В идеале, хотелось бы разработать инструмент для получения результата аналогичного иссуу.ком с помощью ресурсов локального сервера, без передачи исходного документа третьим сервисам.

Аватар пользователя Antoniy
Antoniy 8 лет назад

Спасибо!

Аватар пользователя volzanin
volzanin 8 лет назад

нужно попробовать в деле и сравнить с другими.

Аватар пользователя Ромка
Ромка 8 лет назад
volzanin написал:
нужно попробовать в деле и сравнить с другими.

А есть другие? Я искал и не нашел готовых решений. Ну кроме интеграции с внешними сервисами, что для меня было неприемлемо.

Аватар пользователя volocuga
volocuga 8 лет назад

Крутая вещь.Спасибо,сгодиться.

Аватар пользователя devouti
devouti 8 лет назад

Спасибо, что упомянули о нашем журнале:) Это очень приятно!
Когда доработаете "листалку", свисните нам, пожалуйста. (devoutimagazine at gmail.com)

Потому что своими силами у меня получается только то, о чём Вы упомянули, т.е. заливать pdf на сторонний сайт, а затем вставлять код с красивым просмотром на devouti.livejournal.com и на devouti.narod.ru.
А вот на нашем основном сайте devouti.ru, из-за недостатка умения программирования, точнее его отсутствия, пока это не удаётся сделать. А очень хотелось бы))

Доработаете, напишите, плиз:
[,Devou'ti:] | Настасья Щербина

Аватар пользователя Ромка
Ромка 8 лет назад
devouti написал:
Спасибо, что упомянули о нашем журнале:) Это очень приятно!
Когда доработаете "листалку", свисните нам, пожалуйста. (devoutimagazine at gmail.com)

Потому что своими силами у меня получается только то, о чём Вы упомянули, т.е. заливать pdf на сторонний сайт, а затем вставлять код с красивым просмотром на devouti.livejournal.com и на devouti.narod.ru.
А вот на нашем основном сайте devouti.ru, из-за недостатка умения программирования, точнее его отсутствия, пока это не удаётся сделать. А очень хотелось бы))

Доработаете, напишите, плиз:
[,Devou'ti:] | Настасья Щербина

Обязательно. Сейчас ищу опенсорс листалку, которую можно будет доработать и прикрутить к модулю, пока присматриваюсь к http://www.rubenswieringa.com/blog/flex-book-component-beta. По-моему самое то что надо.

upd. Ух, нашел еще один шикарный пейджфлип движок: http://megazine.mightypirates.de.
upd2.Кстати, буду рад, если найдутся желающие помочь доработать вьюер.

Аватар пользователя x3
x3 8 лет назад

м-да, что-то нужно делать с сылками, а то дашь просто пример, а тут гляди и владелец придёт.

Аватар пользователя Onza
Onza 8 лет назад

Следить

Аватар пользователя narciruss
narciruss 8 лет назад

вот такая штука вылазит при загрузке pdf файла:

* home/u152685/new.velo-travel.ru/www/ --zlib -t --flashversion 9 /home/u152685/new.velo-travel.ru/www/sites/default/files/46.pdf -o /home/u152685/new.velo-travel.ru/www/sites/default/files/46.pdf.swf
* pdf2swf output:
* ==============
* ==============

что делать? =(

Аватар пользователя Ромка
Ромка 8 лет назад

У вас swftools на хостинге установлен? Если установлен, то убедитесь, что правильно прописан путь к pdf2swf в свойствах виджета Pdf2SwfField. Если не установлен, то установите.

Аватар пользователя vgoodvin
vgoodvin 8 лет назад

Спасибо. Все работает.
Проблемы возникали только с утилитой pdf2swf. Не конвертировались файлы с русскими символами и/или пробелами в названии.

Аватар пользователя vgoodvin
vgoodvin 8 лет назад

Если в типе материала кроме поля для pdf есть другие поля для заргузки файлов, то при загрузке вылазит сообщение

* /www.site.com/sites/default/files/videos/Vanilla sky - Umbrella cnt Rihanna.flv -o /www.site.com/sites/default/files/videos/Vanilla sky - Umbrella cnt Rihanna.flv.swf
* pdf2swf output:
* ==============
* ==============

Никакой конвертации не происходит просто вылазит сообщение.

Аватар пользователя alekseyguriev
alekseyguriev 7 лет назад

Во первых: огромное спасибо Роману за модуль.
Есть пара вопросов, касающихся конфигурации SWF viewer'a. Как в нем можно отрегулировать скорость зума, зум по умолчанию и отступы для прелоадера? С флешем раньше не работал. Заранее спасибо.

Аватар пользователя Tinnka
Tinnka 7 лет назад

Спасибо за модуль!

Аватар пользователя gorcom
gorcom 6 лет назад

Спасибо... беру на заметку!