Office Web Apps Server 2013與PDF(二)


在上一篇文章(Office Web Apps Server 2013與PDF(一))中,曾經介紹了Office Web Apps Server 2013在更新后,可以直接對PDF文檔進行在線的查看。不過文章中還遺留了兩個小問題:

1、搜索結果頁面的PDF文檔預覽

2、文檔庫視圖頁面的PDF文檔預覽

本文主要就關注在這兩個問題上。

首先來看搜索結果頁面。2013在搜索結果頁面中,如果集成了Office Web Apps,默認對Office文檔提供了預覽功能,當鼠標移動到搜索結果的一個文檔上的時候,會出現如下圖所示的文檔預覽:

image

但如果是一個PDF文檔的話:

image

當我們的Office Web Apps Server 2013支持了PDF文檔預覽功能之后,並不會改變搜索結果預覽的默認行為,需要我們手動進行配置。在SharePoint 2013中,搜索結果的樣式是通過結果類型對應的模板(一個由html自動生成的js文件)來渲染的,我們只需要修改PDF文件對應的模板即可。

最簡單的方法,就是直接利用Word的顯示模板來顯示PDF文件(Office Web Apps是通過Word Web App來渲染PDF的,還記得么?)。

進入網站設置,在搜索區域中,進入“結果類型”:

image

這里面會列出所有自定義和SharePoint內置的結果類型,其中已經默認包含了PDF的結果類型,不過這個默認類型我們是無法修改或刪除的,但是可以復制它,強制使用我們復制的那個結果類型。在結果類型界面中,找到PDF,並復制:

image

在“操作”部分,把顯示模板從“PDF 項”直接修改為“Word 項”,並把結果類型的名字改成一個有意義的名字,比如“PDF with Preview”,然后保存。

image

(請無視那個糟爛的翻譯……英文版里面對應的是:What should these results look like)

然后……啊nia……木有效果……重啟IIS……木有效果……重新把PDF爬網了一下,好了(后來看了一下模板里面的代碼,里面有個EmbeddedUrl、PreviewUrl之類的屬性,應該是需要重新爬網來生成的)。效果如下:

image

在參考鏈接中,還有一種更“標准”的方法,就是直接修改PDF文件的預覽模板。其實也不算太復雜,直接照着Word的那個改就行了,有興趣的可以嘗試一下。

 

OK。第二件事,就是在列表視圖中的預覽,對於一個Word文檔是這樣的:

image

但是PDF文檔默認則是這樣的:

image

這個修改需要寫一些js腳本放到頁面中,如下:

   1: function WictorsPdfPreviews() {
   2:     SP.SOD.executeOrDelayUntilScriptLoaded(function () {
   3:         filePreviewManager.previewers.extensionToPreviewerMap.pdf = 
   4:             [embeddedWACPreview, WACImagePreview];
   5:         embeddedWACPreview.dimensions.pdf= { width: 379, height: 252}
   6:     }, "filepreview.js");
   7: }
   8: _spBodyOnLoadFunctionNames.push("WictorsPdfPreviews");

這段腳本的主要功能,就是在預覽支持中加上pdf擴展名。腳本可以通過下面幾種方式加到網站中:

1、寫一個SharePoint Solution(Sandboxed或者Full Trust都可以),然后注冊一個名字是AdditionalPageHead的DelegateControl(會出現在head標簽中),然后在控件中輸出這段腳本。注意如果是Sandboxed Solution,是不能寫ascx控件的。

2、直接把腳本寫到母板頁里(或者通過引用js的方式,一樣的)。這個時候需要注意的是,如果我們用的是2013特有的那種母板頁,也就是一個html帶着一個master的那種(比如默認母板頁seattle.master就是這種),我們不能直接修改.master文件(保存的時候會提示無法保存),而需要修改那個html文件。這也是2013中的一個新特性,有機會再詳細談。

效果:

image

 

寫完之后發現其實有人先寫出來了,http://www.cnblogs.com/janet/p/3179709.html

呵呵,果然還是不能偷懶啊……

參考文章:

1、SharePoint 2013: Enabling PDF Previews in Document Libraries with Office Web Apps 2013

2、SharePoint 2013: Enabling PDF Previews with Office Web Apps 2013 March 2013 update


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM