SharePoint 2013 文档库中PPT转换PDF

原文:SharePoint 2013 文档库中PPT转换PDF

  通过使用 PowerPoint Automation Services,可以从 PowerPoint 二进制文件格式 (.ppt) 和 PowerPoint Open XML 文件格式 (.pptx) 转换为其他格式。例如,您可能需要将一批 PowerPoint 97–2003 文件升级到 Open XML 演示文稿文件。您还可以在“编辑”菜单中创建自定义操作,以允许用户按需创建 PDF 版本的演示文稿。

一、效果演示:

1、新建一个ppt文档(office 2013,后缀pptx),添加内容,上传到文档库,如下图:

2、新建一个测试文档库,上传该ppt到文档库,如下图:

3、执行写好的转换程序,执行后,文档库多出一个pdf文档,如下图:

4、查看新生成的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下,如下图:

  然后,编写核心代码,如下:

 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的文档给的也非常详细,我附后了。

 

四、完整代码

 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

时间: 2024-11-17 14:41:49

SharePoint 2013 文档库中PPT转换PDF的相关文章

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共享文档库中启用版本控制功能。

上海同事新要求,为了更方便和昆山及美国协同工作. 果断加上此功能, 还好,简单的实现,并不复杂. 微软推荐标准工作流程如下: http://office.microsoft.com/zh-cn/sharepoint-online-enterprise-help/HA101972543.aspx 导航到您计划在其中工作的库.如果库的名称没有显示在"快速启动"窗格中,请单击"所有网站内容",然后选择您的库的名称. 在功能区上的"库工具"组中,单击&q

SharePoint 2013 文档库如何设置单文件夹权限

问题描述 SharePoint2013文档库如何让不同的用户登陆后,只能查看自己有权限的文件夹?比如有三个文件夹:A.B.C用户:001,登陆后只能看到A.B用户:002,登陆后只能看到C 解决方案 解决方案二:设置文件夹的权限就好了啊...解决方案三:文件夹在文档库中相当于一个项,设置权限和项是一样的解决方案四:按照步骤点,就行了,先断开,再授权:解决方案五:Permission的继承和打破继承的逻辑是,先从parent节点copypermission到child的节点,然后再断开继承关系,所

如何使用SharePoint 2007文档库中的文档添加评论功能

背景:接到一个项目,要求文档管理,当然文档库就可以了,但是要求文档需要大家去读,读完以后还可以发表评论,这Moss貌似就有点困难了.和同事一起合计,想来想去也没有太好的办法,后来想到传统开发,两个表的级联,就想到了文档库和列表库通过一个字段进行级联,废话不多说了,进入正题. 1.首先,新建一个文档库,这不是废话么:然后,再建一个列表库用来保存文档的评论:当时我在想,对于一个文档什么才是唯一的,后来想到,这么简单,不就是ID么,又是废话了,呵呵.我们要做的就是通过文档库中文档的ID进行级联. 2.

SharePoint 2007 文档库中的文档添加评论功能

背景:接到一个项目,要求文档管理,当然文档库就可以了,但是要求文档需要大家去读,读完以后还可以发表评论,这Moss貌似就有点困难了.和同事一起合计,想来想去也没有太好的办法,后来想到传统开发,两个表的级联,就想到了文档库和列表库通过一个字段进行级联,废话不多说了,进入正题. 1. 首先,新建一个文档库,这不是废话么:然后,再建一个列表库用来保存文档的评论:当时我在想,对于一个文档什么才是唯一的,后来想到,这么简单,不就是ID么,又是废话了,呵呵.我们要做的就是通过文档库中文档的ID进行级联. 2

快速删除Word 2013文档段落中的硬回车的方法

  在Word文档中,有时会出现一些多余的空白段落.这样的空白段落的典型特征是其只有一个硬回车,在对文档编辑时可以通过使用"Delete"依次删除这些硬回车来删除这样的空白段落.实际上,通过编写简单的VBA代码可以快速实现对这类空白段落的删除,具体的方法就是在代码中对所有段落进行判断,判断其长度是否为1,如果是就删除该段落.下面介绍快速删除Word 2013文档段落中的硬回车的具体操作方法. 1.启动Word 2013并打开需要处理的文档,该文档中存在多余的空白段落,如图1所示. 图1

SharePoint更新文档库文档标题(Title)字段

前言:记录下写代码中遇到的小问题,帮同事写一个批量更新文档库标题字段的小程序,本来以为就Update一下就可以了,10分钟可以搞定.结果10分钟过去了,代码写好了,执行起来不报错,调试也没问题,只是要更新的东西没更新.然后问了下,文档库开启了签入签出(不判断会报错)和版本控制,找到问题所在了,Update是不行的. 1.废话不多说,上图和代码. SPFile file = listitemcoll[j].File; file.CheckOut(); file.Update(); file.Ite

O365(世纪互联)SharePoint 之文档库使用小记

前言 当O365越来越流行的时候,大家往往更多使用的是传统的Office功能,有太少订阅用户能触及到O365的一个非常棒的功能,叫做SharePoint online. 下面,我们就以图文并茂的方式,详细的介绍一下SharePoint online中非常有用的一个应用程序 – 文档库. 1.登陆进入O365的首页,我们可以看到Office Online的诸多应用,我们主要介绍的是网站应用(SharePoint Online),点击如下图红框的网站,进入网站模块: 2.SharePoint Onl

SharePoint 更新文档库文档标题(Title)字段

前言:记录下写代码中遇到的小问题,帮同事写一个批量更新文档库标题字段的小程序,本来以为就Update一下就可以了,10分钟可以搞定.结果10分钟过去了,代码写好了,执行起来不报错,调试也没问题,只是要更新的东西没更新.然后问了下,文档库开启了签入签出(不判断会报错)和版本控制,找到问题所在了,Update是不行的. 1.废话不多说,上图和代码. 1 SPFile file = listitemcoll[j].File; 2 file.CheckOut(); 3 file.Update(); 4