經過使用 PowerPoint Automation Services,能夠從 PowerPoint 二進制文件格式 (.ppt) 和 PowerPoint Open XML 文件格式 (.pptx) 轉換爲其餘格式。例如,您可能須要將一批 PowerPoint 97–2003 文件升級到 Open XML 演示文稿文件。您還能夠在「編輯」菜單中建立自定義操做,以容許用戶按需建立 PDF 版本的演示文稿。web
1、效果演示:網絡
一、新建一個ppt文檔(office 2013,後綴pptx),添加內容,上傳到文檔庫,以下圖:函數
二、新建一個測試文檔庫,上傳該ppt到文檔庫,以下圖:post
三、執行寫好的轉換程序,執行後,文檔庫多出一個pdf文檔,以下圖:測試
四、查看新生成的pdf文件,以下圖:spa
綜上所述,就是使用 PowerPoint Automation Services服務,將文檔庫中的ppt文檔,自動轉換成爲pdf文檔。固然,也能夠用於將ppt類型的文檔,批量轉換爲pptx文檔。code
五、科普一下PPTX類型文檔orm
Open XML標準的簡單介紹:Ecma Office Open XML(「Open XML」)是針對字處理文檔、演示文稿和電子表格的國際化開放標準,可免費供多個應用程序在多個平臺上實現。對象
該標準旨在提供現有 ISO 標準所沒法提供的獨特好處,其中包括可以實現從現有二進制格式向基於 XML 的格式的高保真移植。blog
2、操做步驟:
首先,建立一個Windows控制檯程序(4.0),引用兩個類文件(Microsoft.SharePoint.dll和Microsoft.Office.Server.PowerPoint.dll),前面的類文件就很少說了,後面的位置在C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Server.PowerPoint\v4.0_15.0.0.0__71e9bce111e9429c下,以下圖:
而後,編寫核心代碼,以下:
1 //PDF轉換,extension是原文檔後綴,驗證是否是該格式 2 PdfRequest request = new PdfRequest( 3 fStream, 4 ".pptx", 5 stream); 6 7 //開始轉換 8 IAsyncResult result = request.BeginConvert( 9 SPServiceContext.GetContext(site), 10 null, 11 null);
支持的目標文檔格式包括全部支持的源文檔格式,以及如下格式:
3、其餘類成員介紹:
1、PresentationRequest 類
PresentationRequest 類(繼承自 Request 類)將 PowerPoint 97–2003 文件 (.ppt) 或 Open XML 文件格式演示文稿 (.pptx) 轉換爲其餘演示文稿文件格式。在上面說起的第一種方案中,您使用此類將文檔庫中的舊的演示文稿文件轉換爲 Open XML 文件格式演示文稿格式。
PresentationRequest 類的構造函數方法具備三個必需參數:
2、PdfRequest 類
PdfRequest 類(也繼承自 Request 類)將 PowerPoint 97–2003 文件 (.ppt) 或 Open XML 文件格式演示文稿 (.pptx) 轉換爲 .pdf 文件。在上面說起的第二種方案中,您使用此類將演示文稿轉換爲 PDF 文件。
PdfRequest 類的構造函數方法也具備三個必需參數(input、extension 和 output),這相似於 PresentationRequest 類。
3、PictureRequest 類
PictureRequest 類(也繼承自 Request 類)將 PowerPoint 97–2003 文件 (.ppt) 或 Open XML 文件格式演示文稿 (.pptx) 轉換爲一組 .jpg 或 .png 格式的圖像文件。
此外,PictureRequest 類的構造函數方法具備四個必需參數。input、extension 和 output 參數與 PresentationRequest 類構造函數的參數相似。PictureRequest 類的構造函數方法也具備必需的 format 參數,該參數必需是 PictureFormat 枚舉中的常數。
4、簡單說明
其實使用起來,就是轉換不一樣類型,使用不一樣的類,可是extension的參數,填寫原文檔的擴展名,代碼很簡單,MSDN的文檔給的也很是詳細,我附後了。
4、完整代碼
string siteURL = "http://URL"; using (SPSite site = new SPSite(siteURL)) { using (SPWeb web = site.OpenWeb()) { Console.WriteLine("Begin conversion"); SPFolder docs = web.Folders[siteURL + "/PPT_Transfer"]; SPFile file = docs.Files[siteURL + "/PPT_Transfer/TransferPPT.pptx"]; Stream fStream = file.OpenBinaryStream(); SPFileStream stream = new SPFileStream(web, 0x1000); //PDF轉換,extension是原文檔後綴,驗證是否是該格式 PdfRequest request = new PdfRequest( fStream, ".pptx", stream); IAsyncResult result = request.BeginConvert( SPServiceContext.GetContext(site), null, null); request.EndConvert(result); //新文檔添加到文檔庫 SPFile newFile = docs.Files.Add( "TransferPdf.pdf", stream, true); Console.WriteLine("Output: {0}", newFile.Url); } }