Как выбрать модуль Drupal 7 для просмотра PDF-файлов

Если у вас когда-либо был клиент, попросите вас добавить новую функцию на сайт компании Drupal: отображение файлов PDF в браузере. Если вы просматриваете параметры на drupal.org, вы поймете, что есть довольно много вариантов для выбора.

Определите, что вы хотите

Первый шаг — определить, что вы хотите. В общем, это довольно стандартные требования, которые вы будете ожидать.

  • Возможность просмотра PDF-файлов в веб-браузере аналогична этому примеру. Клиент будет загружать PDF-файлы бюллетеня компании, и посетители смогут легко их прочитать.
  • Сайт представляет собой Drupal 7, поэтому модуль должен соответствовать этой основной версии. (Drupal 7 уже давно отсутствует, поэтому, если разработчик модулей еще не выпустил версию Drupal 7, они, вероятно, не будут.)
  • Вы также можете избежать использования сторонних услуг. Для видео вы можете с радостью опубликовать контент на YouTube или Vimeo, а затем разместить его на сайте Drupal, но для PDF-файлов мы не думаем, что возможная дополнительная экспозиция перевесит потенциальные хлопоты, поломки и расходы.
  • Вы, вероятно, захотите сохранить модуль как можно более легким и конкретным. Возможно, вы ищете что-то более похожее на Colorbox, которое увеличивает изображения для лучшего просмотра, но остается полностью независимым от того, как вы решите управлять файлами изображений.
  • Как обычно, мы хотим следовать общим рекомендациям по выбору модуля Drupal. В основном, выберите модуль, который уже использовался несколькими тысячами человек (если возможно) какое-то время, с минимумом зависимостей, который, кажется, поддерживается активным разработчиком, который планирует продолжать поддерживать проект в будущем и не не требует лицензионного сбора.

    Поиск на Drupal.org

    Учитывая эти цели, следующим шагом стал простой поиск на Drupal.org. Время прыгнуть в шаровую яму модуля Goodness.

    Страница сравнения для модулей PDF

    Моей первой остановкой была (или должна была быть) эта страница: сравнение модулей просмотра PDF. У Drupal.org есть отличная традиция страниц документации, в которых изложены плюсы и минусы различных модулей в одном пространстве. Существует центральный список страниц сравнения, но они также разбросаны по всему сайту.

    Страница сравнения PDF включала четыре модуля просмотра PDF. Мы расскажем о них здесь, а также о нескольких других, которые мы нашли в результате поиска. Начнем с кандидатов, которых решили пропустить.

    Теперь давайте углубимся в особенности того, почему эти модули работали (или в основном не работали) для этого проекта.

    Google Viewer File Formatter

    Google Viewer File Formatter — это то, на что это похоже: способ использовать Google Docs для встраивания отображений файлов в вашу веб-страницу. Хотя нам понравилась универсальность Google Docs, одной из наших целей было оставаться независимым от каких-либо сторонних сервисов.

    Кроме того, у этого модуля было менее 100 установок.

    Ajax Document Viewer

    Хотя «AJAX» является общим термином Javascript, Ajax Document Viewer, как оказалось, полагается на определенную стороннюю службу. Всего около 100 установок. Двигаясь дальше …

    Скальд PDF

    У Scald PDF было всего 40 установок, но нам пришлось взглянуть, так как он явно был частью более крупного проекта под названием (да) Scald. Как объясняется на странице проекта Scald: «Scald — это инновационный подход к управлению Медиа Атомы в Друпале. «

    Это предложение подняло два огромных красных флага: «инновационный дубль» и слово «СМИ» в паре с «Атом». «Атом», очевидно, был перепрофилированным словом «вещь», что сделало его красным флагом само по себе. У Drupal есть склонность к таким пустым словам: узел, сущность, особенность … Чем более общее слово, тем более масштабными могут быть изменения.

    Вы прочтете восторженные заявления о том, как Scald в основном изобрел способы обработки мультимедиа на своем сайте.

    Теперь правда в том, что обработка Drupal Media может использовать некоторые изобретения. Scald не единственный амбициозный проект в этом пространстве.

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

    вести бой с тенью

    Shadowbox нас удивил: он утверждал, что является единым решением для отображения всех видов мультимедиа, от PDF до изображений и видео. Это было не так круто, как у Скальда, так как он сосредоточился бы только на отображении медиа без введения совершенно новых концепций, таких как «Атом медиа». Но нам уже нравится Colorbox, как уже упоминалось.

    Тем не менее, мы заметили (с внутренним стоном), что с более 16 000 установка, Shadowbox может быть более мощной альтернативой в том же пространстве. Мы должны были посмотреть.

    Модуль Shadowbox Drupal является в основном мостом к библиотеке Javascript, Shadowbox.js, поэтому мы проверили сайт библиотеки. Там мы обнаружили две причины двигаться дальше:

    • Библиотека требует плату за лицензию для коммерческого использования. Плата была достаточно разумной, но мы стараемся избегать использования программного обеспечения с открытым исходным кодом, которое не является бесплатным.
    • Тщательный поиск часто задаваемых вопросов показал, что, в отличие от описания на странице модуля Drupal, PDF не поддерживаются библиотекой Shadowbox на 100%. К сожалению.

    Два претендента: «PDF» и «PDF Reader»

    Исключив все остальное, мы теперь пришли к двум очевидным соперникам: PDF и PDF Reader

    Эти два проекта имели ключевое сходство:

    • Оба имели почти 3000 установок, намного больше, чем альтернативы (кроме Shadowbox).
    • Оба использовали одну и ту же внешнюю библиотеку Javascript, pdf.js.

    А как насчет различий?

    PDF Reader также имел возможность интеграции с Google Docs.

    Между тем, PDF был помечен как «Ищу соавтора (ов)». Это может быть признаком того, что разработчик вскоре покинет проект, но, с другой стороны, последний коммит был неделю назад, так что, по крайней мере, разработчик все еще был активным.

    С другой стороны, PDF Reader был помечен как «Активно поддерживаемый», но последний коммит был год назад.

    Без явного победителя мы решили проверить их обоих.

    Тестирование претендентов

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

    Мы были склонны к PDF Reader, потому что у него было больше возможностей (например, Google Docs), чем PDF. Поэтому мы решили сначала попробовать PDF, чтобы избавиться от него.

    PDF Fail: требуется компиляция?

    Однако, когда мы установили PDF и прочитали «README.txt», мы обнаружили проблему, которую видели, но игнорировали на странице проекта. По какой-то причине этот модуль требует компиляции pdf.js вручную. Хотя на странице проекта указывалось, что это необязательно, README.txt предположил, что это так.

    Поскольку PDF Reader будет использовать точно такую ​​же библиотеку, не требуя этого шага, мы решили все же попробовать сначала. Если это не сработало, мы всегда могли вернуться к PDF и попробовать вручную скомпилировать pdf.js.

    PDF Reader: успех! Вроде, как бы, что-то вроде

    Итак, наконец, мы попробовали PDF Reader. Этот модуль предоставляет новый виджет для отображения поля File. Вы добавляете поле файла к желаемому типу контента и устанавливаете тип виджета на PDF Reader. Затем вы создаете узел этого типа и загружаете свой PDF. PDF-файл отображается в рамке на странице.

    Вы можете попробовать различные параметры отображения, снова отредактировав тип содержимого и изменив параметры отображения для поля.

    Мы обнаружили, что у каждого варианта отображения есть свои плюсы и минусы:

    •  Гугл документы Считыватель прекрасно работал в качестве встраиваемого, но когда мы щелкнули по нему, чтобы перейти в полноэкранный режим, мы оказались на странице Документов Google, которая извинилась за превышение лимита скорости. К сожалению. Возможно, это было бы более надежно, если бы мы подключили модуль к платному аккаунту Служб Google, но мы не удосужились это выяснить.
    •  pdf.js вариант работал чудесно … на Firefox и Chrome. Но когда мы запустили Internet Explorer, коробка оказалась пустой. По-видимому, это проблема самого pdf.js, а не модуля PDF Reader. Мы предполагаем, что этого следовало ожидать, учитывая, что pdf.js разработан Mozilla, а Internet Explorer — сам по себе. Тем не менее, разочаровывает, что мы не подумали подтвердить, что pdf.js надежно работал во всех браузерах.
    •  встраивать вариант был самый надежный. Это фактически запустило Adobe Reader в окне на веб-странице. Firefox по-прежнему предпочитал запускать pdf.js, но мы думаем, что это была настройка браузера. В любом случае, если у посетителя есть Firefox или программа просмотра PDF, например, Adobe Reader, PDF будет отображаться.

      Таким образом, в конце концов, наше решение заключается в использовании PDF Reader с встраивать опция отображения. Эта опция позволит вам прикрепить PDF-файл к узлу Drupal и надежно отобразить его на веб-странице Drupal.

      К сожалению, иногда «надежного» недостаточно.

      Ссылка на основную публикацию