常常會有客戶問,在SharePoint中,如何在瀏覽器中查看與編輯文檔,一般給出的解決方案是集成Office Web App。javascript
而在實際應用過程當中,客戶一般會要求實現PDF文件在線查看,對於PDF文件,office web App微軟一直沒有提供官方支持。爲了實現這個功能,開發人員一般採用以下兩種方式:html
1.修改SharePoint,使PDF文件默認在瀏覽器中打開,這種方式,實質上是告訴瀏覽器,文檔由瀏覽器調用,根據本地文檔關聯調用本地客戶端進行呈現,這種方式就要求客戶端安裝adobe reader才能夠正常打開,不然仍舊顯示下載框。java
2.文檔轉換方式,一般思路是文檔轉換成圖片或文檔轉換成swf文件,實際項目中經常使用的是相似百度文檔的方式,轉換成swf文件,經過程序開發自定義界面進行呈現。jquery
具體作法是上傳時,自動轉換一份swf文件,而後經過flashpaper進行展現,這種方式控制粒度高,能夠防止複製與下載,但須要進行必定的二次開發才能夠實現,並且因爲文檔同時存在兩個副本,信息一致性也須要考慮。 web
一個好的消息是在今年3月份的時候,微軟發佈了Office Web Apps Server 2013的一個更新,能夠在這裏下載:KB2760445。這個更新中包括了若干新功能,其中最主要的就是支持了PDF格式的在線查看。api
部署過程摘要瀏覽器
在一臺加域的服務器上安裝Office Web App2013,而後安裝該KB,安裝完成後,打開PowerShell,輸入以下命令,進行Farm初始化(注owa2013爲office web app服務器名稱):服務器
New-OfficeWebAppsFarm –InternalURL http://owa2013 -ExternalUrl http://owa2013 –AllowHttp –EditingEnabled -ClipartEnabled –TranslationEnabledapp
而後在 SharePoint服務器上啓動PowerShell,輸入以下腳本與office web app服務進行綁定測試
Add-PSSnapin Microsoft.SharePoint.PowerShell
New-SPWOPIBinding -ServerName owa2013 -AllowHTTP
Set-SPWopiZone internal-http
若是使用HTTP鏈接而非https,則須要執行如下命令:
$sts = (Get-SPSecurityTokenServiceConfig)
$sts.AllowOAuthOverHttp = $true
$sts.Update()
執行完成後,發現PDF文件已經能夠在線查看了:
後續產生的問題
1.文檔列表中,沒法直接預覽文檔
解決方法:
Designer打開站點,建立pdfview.js文件,文件內容以下(注:我母版頁中引用了jquery)
function addPdfPreviews() {
SP.SOD.executeOrDelayUntilScriptLoaded(function () {
filePreviewManager.previewers.extensionToPreviewerMap.pdf = [embeddedWACPreview, WACImagePreview]
embeddedWACPreview.dimensions.pdf= { width: 379, height: 252}
}, "filepreview.js");
}
$(function(){addPdfPreviews();});
修改默認母版頁,添加JS引用以下:
<script language="javascript" src="/Themes/js/jquery-1.4.2.min.js"></script>
<script language="javascript" src="/Themes/js/pdfView.js"></script>
保存母版頁,刷新界面進行測試,能夠看到,PDF文件預覽能夠正常顯示了
2.搜索結果中,也沒法直接預覽文檔
解決方法:
在網站集管理中點擊「搜索結果類型」
在類型列表中找到「PDF」,點擊「複製」
在彈出的新建類型界面中輸入類型名稱,並如圖所示,將結果類型改成「Word項」
點擊「保存」後,從新搜索,能夠看到搜索結果的pdf文件已經能夠正常預覽了。
本文參考:
http://www.cnblogs.com/erucy/archive/2013/07/05/3173707.html