針對 SharePoint 2013 搜尋結果建立簡易的 PDF 預覽

英文原文已於 2012 年 12 月 21 日星期五發佈

這個問題前幾天已不斷被詢問,我覺得還蠻有趣的。有人問起關於 SharePoint 2013 搜尋結果項目新穎的縮圖預覽。他們真的蠻喜愛 Microsoft Office 文件的運作方式,且希望 PDF 檔也能照做。這裡有個不錯的答案:您可以建立一個自訂 WOPI 副檔名,它可以使用 Office Web Apps 進行 PDF 檔轉譯。缺點是必須有人進行編碼及測試 (使用完全信任的程式碼),然後將它部署至您的 OWA 伺服器陣列,接著在 SharePoint 伺服器陣列中建立一個新的 WOPI 繫結。再次說明,如果您的需求是那樣,這會是個完全合理的回應。

不過,基於懶惰又想走捷徑的因素,我決定針對這個問題採取不同的方式。 若沒有打算深入了解所有環節運作的細節,總有一天,只要透過 iFrame 就可以完成 Office 文件搜尋結果預覽。既然這樣,PDF 檔不也可以用相同的方式進行嗎?為何不這樣做?其實我就是這樣做的。以下是我進行的方式:

  1. 我到自己的搜尋中心網站下載一份 Item_PDF.html 複本,這是 SharePoint 2013 PDF 項目的現成顯示範本。我針對範本做了以下的變更:
    1. 將標題變更為「PDF,Steve 製作」
    2. 將 javascript 的 hoverUrl 變數改為 "~sitecollection/_catalogs/masterpage/Display Templates/Search/Item_Site_HoverPanel.js"
  2. 然後儲存為 PDF_Default.html,再回到我的 SharePoint 搜尋中心網站,接著瀏覽至 [網站設定]...[主頁面及版面配置]...[顯示範本]...[搜尋] 並且上傳。
  3. 回到 [網站設定],在 [網站集合管理] 區段內選取 [搜尋結果類型]。
  4. 建立一個搜尋結果類型並按照以下步驟進行設定:
    1. 名稱:PDF 檢視器
    2. 符合的內容類型是? : PDF
    3. 這些結果的標題是? : PDF,Steve 製作

這就對了!現在您已經準備好要開始了。值得一提的是,在步驟 1b 中,我設定顯示範本,以使用針對網站推出的的浮現式面板。由於我將它設定為使用 iFrame,而它也完美的呈現了,因此我甚至不需要為其建立浮現式面板。當我閒逛的時候,確實是把它當作快速筆記,不過,既然現成的東西,看起來比我能做的好得多,又何必大費周章,繪製美麗的圖形並不是我的強項。完成以後,我在搜尋結果就得到一個很棒的 PDF 文件預覽,您可以在這裡檢視:

報告完畢。如果您和我一樣懶惰,只想走捷徑,我已經在這附上我的顯示範本供您參考 :-) 祝大家聖誕快樂,新年快樂。

更新:我發現這個方法有個很大的限制,那就是,您的 PDF 檔和搜尋中心必須位於相同主機,否則無法運作。也就是說,如果它們位於相同的網路應用程式,這是最簡單的例子。所以,如果您的搜尋中心位於 https://www.foo.com,但是 PDF 卻位於 https://www.bar.com,那麼,它們就無法如預覽項目所顯示。那是因為我們現在使用 SharePoint 向下傳送某些 X-Frame-Options 標題。如果您按照我們新的 SharePoint 2013 建議事項進行,針對伺服器陣列使用單一網路應用程式,那麼您將可以順利完成;如果您有多個網路應用程式,或者您正在從非 SharePoint 網站進行內容編目,那麼它將無法在預覽中進行呈現。

其他可能需要注意的事項:1) 請確認您正在檢視預覽的電腦已安裝 Adobe Reader 以及 2) 我至少已取得一份報表指出:必須使用 Internet Explorer 瀏覽器才能順利運作。

這是翻譯後的部落格文章。英文原文請參閱 Create An Easy PDF Preview for Search Results in SharePoint 2013