天天看點

SharePoint 2013 文檔庫中PPT轉換PDF

  通過使用 PowerPoint Automation Services,可以從 PowerPoint 二進制檔案格式 (.ppt) 和 PowerPoint Open XML 檔案格式 (.pptx) 轉換為其他格式。例如,您可能需要将一批 PowerPoint 97–2003 檔案更新到 Open XML 示範文稿檔案。您還可以在“編輯”菜單中建立自定義操作,以允許使用者按需建立 PDF 版本的示範文稿。

一、效果示範:

1、建立一個ppt文檔(office 2013,字尾pptx),添加内容,上傳到文檔庫,如下圖:

SharePoint 2013 文檔庫中PPT轉換PDF
2、建立一個測試文檔庫,上傳該ppt到文檔庫,如下圖:
SharePoint 2013 文檔庫中PPT轉換PDF
3、執行寫好的轉換程式,執行後,文檔庫多出一個pdf文檔,如下圖:
SharePoint 2013 文檔庫中PPT轉換PDF
4、檢視新生成的pdf檔案,如下圖:
SharePoint 2013 文檔庫中PPT轉換PDF

  綜上所述,就是使用 PowerPoint Automation Services服務,将文檔庫中的ppt文檔,自動轉換成為pdf文檔。當然,也可以用于将ppt類型的文檔,批量轉換為pptx文檔。

5、科普一下PPTX類型文檔

  Open XML标準的簡單介紹:Ecma Office Open XML(“Open XML”)是針對字處理文檔、示範文稿和電子表格的國際化開放标準,可免費供多個應用程式在多個平台上實作。

  該标準旨在提供現有 ISO 标準所無法提供的獨特好處,其中包括能夠實作從現有二進制格式向基于 XML 的格式的高保真移植。

二、操作步驟:

  首先,建立一個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下,如下圖:

SharePoint 2013 文檔庫中PPT轉換PDF
  然後,編寫核心代碼,如下:

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);      

  支援的目标文檔格式包括所有支援的源文檔格式,以及以下格式:

  • .pptx(Open XML 檔案格式示範文稿格式)
  • .pdf
  • .xps(Open XML 紙張規範)
  • .jpg
  • .png(可移植網絡圖形格式)

三、其他類成員介紹:

1、PresentationRequest 類

  PresentationRequest 類(繼承自 Request 類)将 PowerPoint 97–2003 檔案 (.ppt) 或 Open XML 檔案格式示範文稿 (.pptx) 轉換為其他示範文稿檔案格式。在上面提及的第一種方案中,您使用此類将文檔庫中的舊的示範文稿檔案轉換為 Open XML 檔案格式示範文稿格式。

  PresentationRequest 類的構造函數方法具有三個必需參數:

  • input - 采用需要轉換為 Stream 對象的檔案。
  • extension - 指定将轉換的檔案的檔案擴充名的字元串。
  • output - 指定将存儲輸出的 SPFileStream 對象。

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的文檔給的也非常詳細,我附後了。

四、完整代碼

SharePoint 2013 文檔庫中PPT轉換PDF
SharePoint 2013 文檔庫中PPT轉換PDF
1 string siteURL = "http://URL";
 2 using (SPSite site = new SPSite(siteURL))
 3 {
 4     using (SPWeb web = site.OpenWeb())
 5     {
 6         Console.WriteLine("Begin conversion");
 7 
 8         SPFolder docs = web.Folders[siteURL +
 9             "/PPT_Transfer"];
10         SPFile file = docs.Files[siteURL +
11             "/PPT_Transfer/TransferPPT.pptx"];
12 
13         Stream fStream = file.OpenBinaryStream();
14         SPFileStream stream = new SPFileStream(web, 0x1000);
15 
16         //PDF轉換,extension是原文檔字尾,驗證是不是該格式
17         PdfRequest request = new PdfRequest(
18             fStream,
19             ".pptx",
20             stream);
21 
22         IAsyncResult result = request.BeginConvert(
23             SPServiceContext.GetContext(site),
24             null,
25             null);
26 
27         request.EndConvert(result);
28 
29         //新文檔添加到文檔庫
30         SPFile newFile = docs.Files.Add(
31             "TransferPdf.pdf",
32             stream,
33             true);
34         Console.WriteLine("Output: {0}", newFile.Url);
35 
36     }
37 }      

View Code

參考文獻

SharePoint 2013 中的 PowerPoint Automation Services

http://msdn.microsoft.com/zh-CN/library/sharepoint/fp179894

博文推薦:
    SharePoint 2013 WebPart 管理工具分享[開源]
    基于SharePoint 2013的論壇解決方案[開源]
    SharePoint 2013 學習基礎系列入門教程
    SharePoint 2013 圖文開發系列之門教程
    SharePoint Designer 學習系列入門教程
特:如果有SharePoint項目,歡迎郵件聯系我,Email:[email protected]

繼續閱讀