SharePoint 2013 中的 PowerPoint Automation Services
简介
许多大型和小型企业都将其 Microsoft SharePoint Server 库用作 Microsoft PowerPoint 演示文稿的存储库。所有这些企业在存储、分发和更新演示文稿方面都有其特定的需求。Microsoft PowerPoint Automation Services 是 Microsoft SharePoint Server 2013 的一种新功能,可帮助企业管理其演示文稿。它是一项共享服务,可提供无人参与的、服务器端至其他格式的演示文稿转换。其最初便是针对在服务器上运行而设计的,并能够以可靠且可预测的方式处理许多演示文稿文件。
通过使用 PowerPoint Automation Services,可以从 PowerPoint 二进制文件格式 (.ppt) 和 PowerPoint Open XML 文件格式 (.pptx) 转换为其他格式。例如,您可能需要将一批 PowerPoint 97–2003 文件升级到 Open XML 演示文稿文件。您还可以在"编辑"菜单中创建自定义操作,以允许用户按需创建 PDF 版本的演示文稿。
注释 |
---|
PowerPoint Automation Services 利用 SharePoint 2013 的工具,且作为其功能而存在。您必须安装 SharePoint Server 2013 才能使用 PowerPoint Automation Services。如果您要在服务器场中使用 SharePoint Server 2013,则必须明确启用 PowerPoint Automation Services。 |
下列方案描述了可通过 PowerPoint Automation Services 在服务器上自动处理演示文稿的两种方式:
大型企业将其所有年收益演示文稿存储在企业 Intranet 网站上的单个文档库中。该库包含多年累积的大量演示文稿。IT 部门需要将 PowerPoint 97–2003 二进制文件格式 (.ppt) 的所有演示文稿文件转换为 Open XML 演示文稿文件格式 (.pptx)。执行此转换的开发人员决定执行以下操作:将解决方案部署到将循环访问库中的所有文件的服务器,检查以确定该文件的格式是否为 .ppt 并将每个 .ppt 文件转换为 .pptx 文件格式。
地区销售部门向其所有客户提供了自定义服务估计值。每个销售人员将在现场会议或在线会议上与其客户审查其报价。在会议结束后,销售人员将向客户提供一份 PDF 格式的报价单副本。该部门聘请了一个供应商在"编辑"菜单中为存储在其 Extranet 中的文档库中的 PowerPoint 文件创建一个自定义动词。单击此动词时,服务器将运行一个程序,此程序会将 PowerPoint 文件转换为位于同一个库中的 PDF。
支持的源演示文稿格式
以下是适用于转换的受支持的源演示文稿格式:
Open XML 文件格式演示文稿格式 (.pptx)
PowerPoint 97–2003 演示文稿 (.ppt)
支持的目标文档格式
支持的目标文档格式包括所有支持的源文档格式,以及以下格式:
.pptx(Open XML 文件格式演示文稿格式)
.pdf
.xps(Open XML 纸张规范)
.jpg
.png(可移植网络图形格式)
PowerPoint Automation Services 的限制
PowerPoint Automation Services 不包括打印文档的功能。但是它能够直接将 PowerPoint 演示文稿文件(.ppt 和 .pptx)转换为 PDF 或 XPS,并将它们后台打印至打印机。
若要使用 PowerPoint Automation Services,您需要使用其编程接口将转换请求发送到 SharePoint Server 2013 服务器。对于每个转换请求,您指定要转换的文件和转换作业的输出格式。对于某些转换请求,还可以指定转换哪些类型的内容,包括注释、隐藏幻灯片或文档属性。
PowerPoint Automation Services 使用用于发送和接收转换请求的异步模式方法。因而,您可以编写在发送转换请求后继续执行的代码。如果您需要在完成转换请求后向用户发送通知,可以指定引用在操作完成时执行的回调方法的委托。
注释 |
---|
有关如何使用异步设计模式的详细信息,请参阅异步编程概述。 |
以下各节包含了一组有限数量的类,这些类是发送和接收转换请求所必需的。所有这些类都包含在 Microsoft.Office.Server.PowerPoint.Conversion 命名空间中。
请求基类
Request 类是 Microsoft.Office.Server.PowerPoint.Conversion 命名空间中的最基本类。所有其他请求 类型(PresentationRequest、PictureRequest、PdfRequest 和 XpsRequest)都从该类继承。
成员名称 |
说明 |
---|---|
BeginConvert(Microsoft.SharePoint.SPServiceContext, System.AsyncCallback, System.Object) 方法 |
开始转换操作。第一个参数为 serviceContext,该参数指定要转换的文件所在的 SharePoint 网站的上下文。使用 callback 参数可指定引用在操作完成时执行的方法的委托。如果您需要将任何其他信息从调用代码传递到回调方法,请使用 state 参数。 返回一个 IAsyncResult 对象。 |
EndConvert(IAsyncResult) 方法 |
结束转换操作。result 参数需要相应的 BeginConvert 转换请求返回的结果 IAsyncResult 对象。如果该请求在调用 EndConvert 时尚未完成,则将阻止调用线程,直到转换操作完成。 不返回值。 |
PresentationRequest 类
PresentationRequest 类(继承自 Request 类)将 PowerPoint 97–2003 文件 (.ppt) 或 Open XML 文件格式演示文稿 (.pptx) 转换为其他演示文稿文件格式。在上面提及的第一种方案中,您使用此类将文档库中的旧的演示文稿文件转换为 Open XML 文件格式演示文稿格式。
PresentationRequest 类的构造函数方法具有三个必需参数:
input - 采用需要转换为 Stream 对象的文件。
extension - 指定将转换的文件的文件扩展名的字符串。
output - 指定将存储输出的 SPFileStream 对象。
PresentationRequest 类具有针对其添加 settings 参数的构造函数方法的单个重载。settings 参数接受 PresentationSettings 对象作为参数。
PdfRequest 类
PdfRequest 类(也继承自 Request 类)将 PowerPoint 97–2003 文件 (.ppt) 或 Open XML 文件格式演示文稿 (.pptx) 转换为 .pdf 文件。在上面提及的第二种方案中,您使用此类将演示文稿转换为 PDF 文件。
PdfRequest 类的构造函数方法也具有三个必需参数(input、extension 和 output),这类似于 PresentationRequest 类。
PdfRequest 类也具有针对其添加 settings 参数的构造函数方法的单个重载。settings 参数接受 FixedFormatSettings 对象作为参数。
PictureRequest 类
PictureRequest 类(也继承自 Request 类)将 PowerPoint 97–2003 文件 (.ppt) 或 Open XML 文件格式演示文稿 (.pptx) 转换为一组 .jpg 或 .png 格式的图像文件。
此外,PictureRequest 类的构造函数方法具有四个必需参数。input、extension 和 output 参数与 PresentationRequest 类构造函数的参数类似。PictureRequest 类的构造函数方法也具有必需的 format 参数,该参数必需是 PictureFormat 枚举中的常数。
PictureRequest 类不具有针对其构造函数方法的任何重载。
说明如何编写使用 PowerPoint Automation Services 的代码的最简单方法是构建控制台应用程序。您必须在 SharePoint Server 上构建和运行控制台应用程序,而不是在客户端计算机上。启动转换请求的代码是类似的,无论转换请求代码是集成到 Web 部件、工作流还是事件处理程序中。通过从控制台应用程序使用 PowerPoint Automation Services,以下过程说明了如何在不增加 Web 部件、事件处理程序或工作流的复杂性的情况下使用 API。
注释 |
---|
由于 PowerPoint Automation Services 是 SharePoint Server 2013 的服务,因此您仅能将其用于直接在 SharePoint Server 上运行的应用程序中。您必须将应用程序构建为服务器场解决方案。您无法从沙盒解决方案使用 PowerPoint Automation Services。 |
构建应用程序
启动 Microsoft Visual Studio 2012。
在"文件"菜单上,指向"新建",然后选择"项目"。
在"新建项目"对话框中的"已安装"下方,依次展开"模板"和"Visual C#",然后选择"Windows"。
在项目模板列表中,单击"控制台应用程序"。
请确保,Visual Studio 中的项目面向 .NET Framework 4。
注释 早期版本的 SharePoint Server 需要您面向 .NET Framework 3.5。Microsoft.SharePoint 库现在引用 .NET Framework 4 中的程序集。此外,请确保您的项目面向整个 .NET Framework 4 而非 .NET Framework 4 Client Profile。
在"名称"框中,键入您要用于项目的名称,例如 PAS_Sample。
在"位置"框中,键入您要放置项目的位置。
单击"确定"以创建解决方案。
默认情况下,Visual Studio 2012 创建面向 x86 CPU 的项目,但是若要构建 SharePoint Server 应用程序,您必须面向所有 CPU。
如果您要构建 Microsoft Visual C# 应用程序,请在"解决方案资源管理器"中,右键单击项目,然后单击"属性"。
在项目"属性"窗口中,单击"构建"。
指向"配置"列表,并选择"所有配置"。
指向"平台目标"列表,并选择"任何 CPU"。
如果您要构建 Microsoft Visual Basic .NET Framework 应用程序,请在"属性"窗口中,单击"编译"。
单击"高级编译选项"。
指向"配置"列表,并选择"所有配置"。
指向"平台目标"列表,然后选择"任何 CPU"。
在"项目"菜单上,单击"添加引用"以打开"添加引用"对话框。
展开"程序集",然后执行下列操作:
展开"框架",然后添加对 System.Web 的引用。
展开"扩展名",然后添加对 Microsoft.SharePoint 的引用。
此外,在"添加引用"对话框中,选择"浏览",导航到 Microsoft.Office.Server.PowerPoint.dll 的位置(默认位置为 C:\Windows\Microsoft.NET\assembly\GAC_MSIL\Microsoft.Office.Server.PowerPoint\v4.0_15.0.0.0__71e9bce111e9429c),选择程序集,然后选择"添加"。
下面的 C# 和 Visual Basic 示例说明了一个简单 PowerPoint Automation Services 应用程序,该应用程序将 SharePoint 网站的共享文档文件夹中的 PowerPoint 97–2003 文件 (.ppt) 转换为同一文件夹中的 PowerPoint Open XML 文件 (.pptx)。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using Microsoft.SharePoint;
using Microsoft.Office.Server.PowerPoint.Conversion; namespace PAS_Sample
{
class Program
{
static void Main(string[] args)
{
try
{
string siteURL = "http://localhost";
using (SPSite site = new SPSite(siteURL))
{
using (SPWeb web = site.OpenWeb())
{
Console.WriteLine("Begin conversion"); // Get a reference to the "Shared Documents" library
// and the presentation file to be converted.
SPFolder docs = web.Folders[siteURL +
"/Shared Documents"];
SPFile file = docs.Files[siteURL +
"/Shared Documents/Pres1.ppt"]; // Convert the file to a stream and create an
// SPFileStream object for the conversion output.
Stream fStream = file.OpenBinaryStream();
SPFileStream stream = new SPFileStream(web, 0x1000); // Create the presentation conversion request.
PresentationRequest request = new PresentationRequest(
fStream,
".ppt",
stream); // Send the request synchronously, passing
// in a ‘null’ value for the callback parameter,
// and capturing the response in the result object.
IAsyncResult result = request.BeginConvert(
SPServiceContext.GetContext(site),
null,
null); // Use the EndConvert method to get the result.
request.EndConvert(result); // Add the converted file to the document library.
SPFile newFile = docs.Files.Add(
"newPres1.pptx",
stream,
true);
Console.WriteLine("Output: {0}", newFile.Url); }
}
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
finally
{
Console.WriteLine("Complete");
Console.ReadKey();
}
}
}
}
构建和运行示例
将 PowerPoint 文档(名为 Pres1.ppt )添加到 SharePoint 网站中的共享文档文件夹。
构建和运行示例。
等待一分钟以便转换进程开始运行,然后导航至 SharePoint 网站中的共享文档文件夹,并刷新页面。文档库中目前包含一个新的 PowerPoint 文档 Pres1.pptx。
SharePoint Server 2013 上的 PowerPoint Automation Services 为企业提供了用于管理其演示文稿文件的高级功能。此高性能解决方案允许可伸缩的、服务器端演示文稿操作和生成(批量或按需)。
注释 |
---|
必须先确保已在 SharePoint 管理中心控制台中启用 PowerPoint Automation Services,然后才能运行此示例。 若要验证是否已启用 PowerPoint Automation Services,请执行以下操作:
|
SharePoint Server 2013 上的 PowerPoint Automation Services 为企业提供了用于管理其演示文稿文件的高级功能。此高性能解决方案允许可伸缩的、服务器端演示文稿操作和生成(批量或按需)。
SharePoint 2013 中的 PowerPoint Automation Services的更多相关文章
- SharePoint 2013中的爬网最佳做法
了解在 SharePoint Server 2013 中爬网的最佳做法 搜索系统对内容进行爬网,以构建一个用户可以对其运行搜索查询的搜索索引.本文包含有关如何最有效地管理爬网的建议. 本文内容: 使用 ...
- SharePoint 2013中以其他用户身份登录的WebPart(免费下载)
在SharePoint 2013中微软并没有提供在SharePoint 2010中以其他用户身份登录的菜单,这对一般用户影响不大,但对于系统管理员或测试人员或特定人员(如在OA系统中的文员或秘书,常常 ...
- SharePoint 2013中修改windows 活动目录(AD)域用户密码的WebPart(免费下载)
前段时间工作很忙,好久没更新博客了,趁国庆休假期间,整理了两个之前积累很实用的企业集成组件,并在真正的大型项目中经受住了考验:.Net版SAP RFC适配器组件和SharePoint 2013修改AD ...
- SharePoint 2013中规划企业搜索体系结构
摘要:了解如何规划小型.中型或大型企业搜索体系结构. 设置企业搜索体系结构之前,需要仔细规划很多事项.我们将逐步帮助您规划小型.中型或大型企业搜索体系结构. 您是否熟悉 SharePoint 2013 ...
- SharePoint 2013 中自定义WCF服务
在使用SharePoint2013的时候,如果其他客户端 API 的组合不足,可以通过自定义 Web 服务扩展 SharePoint.默认情况下,SharePoint 2013 不仅支持创建自定义 A ...
- 在 SharePoint 2013 中配置 Office Web Apps
原文发布于 2012 年 7 月 23 日(星期一) 如您所知或您即将知道,SharePoint 2013 中的 Office Web Apps 不再是 SharePoint 场中的服务应用程序.相反 ...
- SharePoint 2013 中使用 JavaScript Like 和Unlike list item/page/document
SharePoint 2013中新增了很多社交功能,比如用户可以like/unlike 任何一个 list item/page/document,这是一个非常不错的功能. 但有时觉得like/unli ...
- [MSDN] 使用 SharePoint 2013 中的 JavaScript 库代码完成基本操作
MSDN:http://msdn.microsoft.com/zh-cn/library/jj163201.aspx 了解如何编写代码以在 SharePoint 2013 中使用 JavaScript ...
- SharePoint 2013 中的 URL 和标记
SharePoint 2013 中的 URL 的类型 SharePoint 2013 分析 URL 字符串以基于指定的协议(例如,http:)确定 URL 的格式或确定正 ...
随机推荐
- Android布局整理Relative/Linear
1.RelativeLayout布局 android:layout_centerHorizontal 水平居中 android:layout_centerVertical 垂直居中 android:l ...
- 输入scanner,if-else
import java.util.Scanner; public class Job{ public static void main(String[] args){ Scanner scanner ...
- 50道 Sql语句题
Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 ...
- linux配置3-安装tomcat
下载文件:apache-tomcat-7.0.73.tar.gz 通过共享传到Ubuntu, 复制到/tmp 解压 移动解压后的文件到到/opt/tomcat7,完成可见:/opt/tomcat7/a ...
- About “this” of Javascript
the 4 point about This: 1.the use of Object methods 2.the use of constructors 3.the use of ordinary ...
- JAVA求集合中的组合
好几个月没弄代码了,今天弄个求组合的DEMO 思路是将集合的每个值对照一个索引,索引大小是集合的大小+2.索引默认为[000...000],当组合后选取的组合值demo为[0100..00].然后根据 ...
- Phonegap中自定义插件的使用
在phonegap中需要实现特定相关的功能,可能需要自定义扩展一下功能,那么扩展phonegap组件就成为了可能. 源代码结构图: 本文目的在于讲述怎么扩展一个phonegap组件以及实现. 针对ph ...
- jQuery设置聚焦并使光标位置在文字最后
var editor = document.getElementById('btn'); editor.onfocus = function () { window.setTimeout(functi ...
- Imagick 缩放图片和实现模糊
Imagick功能相当的多,只是还不稳定,我下面的程序能够运行,但是会出现内存错误,但我们要的图片还是能够得到. 弄这个的原因是,一个客户要求在一个appcan的应用里面实现一个页面的背景图的缩放.调 ...
- ASP.NET MVC自定义ActionResult实现文件压缩
有时候需要将单个或多个文件进行压缩打包后在进行下载,这里我自定义了一个ActionResult,方便进行文件下载 using System; using System.Collections; usi ...