Создание простого предварительного просмотра PDF для результатов поиска в SharePoint 2013

Исходная статья опубликована в пятницу, 21 декабря 2012 г.

В последнее время данная тема получала все большее распространение, и я подумал, что это может оказаться интересным. Пользователи задавали вопросы о новом предварительном просмотре эскизов для элементов в результатах поиска SharePoint 2013. Им нравилось то, как выполняется работа с документами Microsoft Office, и хотелось осуществлять нечто подобное с файлами PDF. Обоснованный ответ состоял в том, что можно создать пользовательское расширение WOPI, позволяющее подготавливать файлы PDF к просмотру с помощью Office Web Apps. Недостатком такого решения было то, что кто-то должен был написать код и провести тестирование (с использованием кода полного доверия), затем выполнить развертывание в ферме Outlook Web Access и создать новую привязку WOPI в ферме SharePoint. Повторю, что этот ответ был совершенно здравым в случае предъявления соответствующих требований.

Я же, исходя из начальных установок экономии и лени, решил использовать другой подход. Не вникая в подробности всей этой кухни, получается, что предварительный просмотр результатов поиска для документов Office реализован на базе iFrame. Так почему бы не поступить так же и с документами PDF? Именно так я и поступил. Ниже описано все то, что мне для этого потребовалось.

  1. Я перешел на сайт центра поиска и загрузил копию файла Item_PDF.html, который представляет собой готовый шаблон отображения для элемента PDF в SharePoint 2013. Я внес в него следующие изменения.
    1. Изменил заголовок на PDF by Steve.
    2. Изменил переменную hoverUrl в javascript на "~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Site_HoverPanel.js".
  2. Я сохранил его с именем PDF_Default.html и вернулся на сайт центра поиска SharePoint, затем выбрал "Параметры сайта", "Макеты страниц и главных страниц", "Отображение шаблонов", "Поиск" и отправил его.
  3. Я вернулся к параметрам сайта и выбрал "Типы результатов поиска" в разделе "Администрирование семейства веб-сайтов".
  4. Я создал тип результатов поиска и настроил его следующим образом.
    1. Имя: PDF Viewer
    2. Какие типы контента должны быть сопоставлены? : PDF
    3. Как должны выглядеть эти результаты? : PDF by Steve

Теперь все готово. Здесь следует отметить, что в шаге 1b я настроил шаблон отображения на использование готовой всплывающей панели для сайтов. Она настроена на использование и корректную прорисовку iFrame, поэтому мне даже не пришлось создавать специальную всплывающую панель. Замечу, что я все же создал ее от нечего делать, но готовое решение выглядело значительно привлекательнее моего, просто графическая составляющая — это не мой конек. В итоге я обеспечил предварительный просмотр своих документов PDF в результатах поиска, как вы можете убедиться с помощью приведенной ниже ссылки:

Там есть все. Я также прикрепил свой шаблон отображения на случай, если вы так же ленивы и экономны, как и я. :-) Поздравляю всех с Рождеством и Новым годом.

ОБНОВЛЕНИЕ. Я обнаружил одно существенное ограничение данного подхода — он работает только в том случае, если документы PDF находятся на одном узле с центром поиска, например в одном веб-приложении. Если центр поиска расположен по адресу https://www.foo.com, а файлы PDF — по адресу https://www.bar.com, то они не отображаются в качестве элементов предварительного просмотра. Это вызвано некоторыми заголовками X-Frame-Options, которые мы предоставляем вместе с SharePoint. Если вы выполните наши новые рекомендации по SharePoint 2013, заключающиеся в использовании одного веб-приложения для фермы, все будет в порядке, но при наличии нескольких веб-приложений или обхода контента с сайтов, отличных от SharePoint, прорисовка в предварительном просмотре не осуществляется.

 

Следует помнить еще о паре аспектов: во-первых, убедитесь, что установили программу Adobe Reader на компьютере, где осуществляется предварительный просмотр, во-вторых, я получил как минимум один отчет о том, что это не работает в браузере, отличном от Internet Explorer.

 

Это локализованная запись блога. Оригинал находится на странице Create An Easy PDF Preview for Search Results in SharePoint 2013