设为首页 收藏本站
查看: 1284|回复: 0

[经验分享] SharePoint 2013 文档库中PPT转换PDF

[复制链接]

尚未签到

发表于 2015-9-24 08:06:01 | 显示全部楼层 |阅读模式
  通过使用 PowerPoint Automation Services,可以从 PowerPoint 二进制文件格式 (.ppt) 和 PowerPoint Open XML 文件格式 (.pptx) 转换为其他格式。例如,您可能需要将一批 PowerPoint 97–2003 文件升级到 Open XML 演示文稿文件。您还可以在“编辑”菜单中创建自定义操作,以允许用户按需创建 PDF 版本的演示文稿。
  一、效果演示:
  1、新建一个ppt文档(office 2013,后缀pptx),添加内容,上传到文档库,如下图:
DSC0000.png
  2、新建一个测试文档库,上传该ppt到文档库,如下图:
DSC0001.png
  3、执行写好的转换程序,执行后,文档库多出一个pdf文档,如下图:
DSC0002.png
  4、查看新生成的pdf文件,如下图:
DSC0003.png
  综上所述,就是使用 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下,如下图:
DSC0004.png
  然后,编写核心代码,如下:



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的文档给的也非常详细,我附后了。
  
  四、完整代码


DSC0005.gif DSC0006.gif


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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-117893-1-1.html 上篇帖子: [翻译]No.9353 SharePoint Pages(2)之SharePoint母版页 下篇帖子: 在sharepoint中利用文档库扩展新闻应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表