Что нужно знать
- Определите, что вы хотите - просматривать файлы PDF в браузере, - но помните о версии Drupal, любых лицензионных сборах и количестве пользователей.
- Найдите на Drupal.org Сравнение модулей просмотра PDF-файлов страница с плюсами и минусами для каждого варианта. Выберите несколько вероятных вариантов.
- Оцените каждый модуль просмотра PDF-файлов, чтобы узнать, насколько он соответствует вашим потребностям.
В этой статье объясняется, как выбрать модуль Drupal 7 для просмотра PDF-файлов. Он включает оценку нескольких потенциальных модулей.
Определите, что вы хотите
Представьте, что клиент просит вас добавить новую функцию на сайт компании Drupal: отображение файлов PDF в браузере. Просматривая варианты на drupal.org, вы понимаете, что есть довольно много вариантов, из которых вы можете выбрать.
Первый шаг - определить, чего вы хотите. В общем, это довольно стандартные требования, которых вы ожидаете.
- Возможность просматривать PDF-файлы в веб-браузере, аналогично этот пример. Клиент загружал бы PDF-файлы информационного бюллетеня компании, и посетители могли бы легко их прочитать.
- Сайт Drupal 7, поэтому модуль должен соответствовать этому основная версия. (Drupal 7 вышел уже некоторое время, поэтому, если разработчик модуля еще не выпустил версию Drupal 7, вероятно, он этого не сделает.)
- Вы также можете не полагаться на сторонние службы. Что касается видео, вы можете разместить контент на YouTube или Vimeo, а затем встроить его на сайт Drupal, но для PDF-файлов, мы не думаем, что возможное дополнительное воздействие перевесит потенциальные хлопоты, поломку и расход.
- Вероятно, вы захотите, чтобы модуль был как можно более легким и конкретным. Возможно, вы ищете что-то более похожее на Цветная коробка, который увеличивает изображения для лучшего просмотра, но остается полностью независимым от того, как вы решите управлять файлами изображений.
- Как обычно, мы хотим следовать общим рекомендациям по выбору модуля Drupal. По сути, выберите модуль, который уже используется несколькими тысячами человек (если возможно) какое-то время, с минимумом зависимостей, который, похоже, поддерживается активным разработчиком, который планирует продолжать поддерживать проект в будущем и не требует лицензирования платеж.
Искать на Drupal.org
Помня об этих целях, следующим шагом было простой поиск на Drupal.org. Пора прыгнуть в яму для шаров модульного совершенства.
Страница сравнения модулей PDF
Моей первой остановкой была (или должна была быть) эта страница: Сравнение модулей просмотра PDF-файлов. Drupal.org имеет прекрасную традицию страниц документации, на которых в одном месте излагаются плюсы и минусы различных модулей. Есть центральный список страниц сравнения, но они также разбросаны по всему сайту.
Страница сравнения PDF включает четыре модуля просмотра PDF. Мы рассмотрим их здесь, а также пару других, которые мы нашли в результате поиска. Начнем с кандидатов, которых решили пропустить.
Теперь давайте углубимся в особенности того, почему эти модули работали (или в основном не работали) для этого проекта.

Программа форматирования файлов Google Viewer
Программа форматирования файлов Google Viewer это то, на что это похоже: способ использования Документов Google для встраивания отображаемых файлов на вашу веб-страницу. Хотя нам понравилась универсальность Документов Google, одной из наших целей было оставаться независимым от сторонних сервисов.
Кроме того, у этого модуля было менее 100 установок.
Средство просмотра документов Ajax
Хотя «AJAX» - это общий термин Javascript, Средство просмотра документов Ajax Оказалось, что полагается на конкретный сторонний сервис. Всего около 100 установок. Двигаемся дальше...
Scald PDF
Scald PDF было всего 40 установок, но мы должны были взглянуть, так как это явно было частью более крупного проекта под названием (да) Ошпарить. Как поясняется на странице проекта Scald: "Scald - это новаторский подход к обращению с Медиа-атомы в Drupal ".
Это предложение вызвало два больших красных флажка: «инновационный подход» и слово «медиа» в паре с «атомом». «Атом», очевидно, было измененным словом для «вещи», что само по себе сделало его красным флагом. В Drupal есть склонность к таким словам типа пустого ящика: узел, юридическое лицо, характерная черта... Чем шире это слово, тем масштабнее могут быть изменения.
Вы прочтете восторженные заявления о том, как Scald по сути изменит то, как вы обрабатываете медиа на своем сайте.
Теперь правда в том, что обработка мультимедиа в Drupal может потребовать некоторого переосмысления. Scald - не единственный амбициозный проект в этой сфере.
Следующим может быть ожог Взгляды. Это было бы здорово. Но это также может быть заброшенное программное обеспечение с (небольшим) следом сломанных сайтов, оставшихся плакать.
Shadowbox
Shadowbox нас удивили: заявлено, что это единое решение для отображения всех видов мультимедиа, от PDF-файлов до изображений и видео. Это было не так масштабно, как Scald, так как он сосредоточился только на отображение медиа, не вводя совершенно новых концепций, таких как «медиа-атомы». Но, как уже упоминалось, нам уже нравится Colorbox.
Однако мы заметили (с внутренним стоном), что с более чем 16,000 устанавливает, Shadowbox может быть более мощной альтернативой в том же пространстве. Мы имел посмотреть.
Модуль Shadowbox Drupal - это, по сути, мост к библиотеке Javascript, Shadowbox.js, поэтому мы заглянули на сайт библиотеки. Там мы обнаружили две причины двигаться дальше:
- Библиотека требует лицензионного сбора для коммерческого использования. Плата была достаточно разумной, но мы стараемся избегать платного ПО с открытым исходным кодом.
- Тщательный поиск в FAQ показал, что, в отличие от описания на странице модуля Drupal, PDF-файлы нет 100% поддерживается библиотекой Shadowbox. Ой.
Два претендента: PDF и PDF Reader
Исключив остальных, мы подошли к двум очевидным претендентам: PDF а также Читатель PDF
У этих двух проектов были ключевые общие черты:
- У обоих было почти 3000 установок, что намного больше, чем у альтернатив (кроме Shadowbox).
- Оба использовали одну и ту же внешнюю библиотеку Javascript, pdf.js.
А как насчет различий?
Читатель PDF также была возможность интеграции с Google Docs.
Тем временем, PDF был отмечен как «Ищу соавтора (ей)». Это может быть признаком того, что разработчик скоро откажется от проект, но, с другой стороны, последняя фиксация была сделана неделю назад, так что, по крайней мере, разработчик все еще активный.
С другой стороны, Читатель PDF был отмечен как «Активно поддерживается», но последняя фиксация была сделана год назад.
Не имея явного победителя, мы решили протестировать их обоих.
Тестирование претендентов
Мы протестировали оба модуля на копии нашего действующего сайта. (Независимо от того, насколько надежным и безобидным выглядит модуль, никогда не пробуйте его сначала на действующем сайте. Вы можете сломать весь свой сайт.)
Мы были предвзято относились к Читатель PDF потому что у него было больше опций (например, Google Docs), чем PDF. Итак, мы решили попробовать PDF во-первых, чтобы убрать это с дороги.
Ошибка PDF: требуется компиляция?
Однако когда мы установили PDF и прочитав «README.txt», мы обнаружили проблему, которую мы видели, но проигнорировали на странице проекта. По какой-то причине этот модуль требует, чтобы вы компилировали pdf.js вручную. Хотя на странице проекта говорилось, что это не обязательно, README.txt предполагал, что это необходимо.
С Читатель PDF будет использовать ту же самую библиотеку, не требуя этого шага, мы все-таки решили сначала попробовать. Если это не сработает, мы всегда сможем вернуться к PDF и попробуйте вручную скомпилировать pdf.js.
PDF Reader: Успех! Вроде, как бы, что-то вроде
Итак, наконец-то мы попробовали Читатель PDF. Этот модуль предоставляет новый виджет для отображения Файл поле. Вы добавляете поле файла к желаемому Тип содержимого и установите тип виджета на Читатель PDF. Затем вы создаете узел этого типа и загружаете свой PDF-файл. PDF-файл отображается встроенным в «рамку» на странице.
Вы можете попробовать различные варианты отображения, снова отредактировав тип контента и изменив настройки отображения для поля.
Мы обнаружили, что у каждого варианта отображения есть свои плюсы и минусы:
- В Гугл документы Читатель работал нормально как встраиваемый, но когда мы щелкнули по нему, чтобы перейти в полноэкранный режим, мы оказались на странице Документов Google, на которой извинялись за превышение предела скорости. Ой. Возможно, это было бы более надежно, если бы мы подключили модуль к платной учетной записи Google Apps, но мы не удосужились выяснить.
- В pdf.js вариант отлично работал... в Firefox и Chrome. Но когда мы запустили Internet Explorer, поле оказалось пустым. Видимо, это проблема самого pdf.js, а не самого Читатель PDF модуль. Мы полагаем, что этого и следовало ожидать, учитывая, что pdf.js разработан Mozilla, а Internet Explorer - сам по себе. Тем не менее, досадно, что мы не подумали о том, чтобы подтвердить, что pdf.js надежно работает во всех браузерах с самого начала.
- В вставлять вариант был самым надежным. Это фактически запускало Adobe Reader в окне на веб-странице. Firefox по-прежнему предпочитал запускать pdf.js, но мы думаем, что это была настройка браузера. В любом случае, если у посетителя был Firefox или программа просмотра PDF, например Adobe Reader, PDF-файл будет отображаться.
Таким образом, в конечном итоге наше решение состоит в том, чтобы использовать Читатель PDF с Встроить вариант отображения. Эта опция позволит вам прикрепить PDF-файл к узлу Drupal и надежно отобразить его на веб-странице Drupal.
К сожалению, иногда «надежного» недостаточно.