步骤 2:对 Web 部件编码
上次修改时间: 2010年7月20日
适用范围: SharePoint Server 2010
本主题说明如何使用 SharePoint Server 2010 Web 部件编写可启动 Word Automation Services 文档转换的代码。最终用户可通过单击 Web 部件上的按钮来转换指定的 SharePoint 文档库中的文档。
编写用于转换文档库的代码
以下过程会向 Web 部件添加一个按钮,然后在 Click 事件中为此按钮添加可启动 Word Automation Services 文档转换的代码。
向 Web 部件添加按钮
在 Web 部件解决方案示例的 Visual Studio 2010 项目中,在"解决方案资源管理器"中,展开"VisualWebPart1",右键单击"VisualWebPart1UserControl.ascx",然后单击"视图设计器"。
从"工具箱"中,将一个按钮控件拖动到设计器图面上。
在设计器中选中此按钮的情况下,在"属性"中双击"(ID)"字段,键入 btnSubmit,然后按 Enter。
在"属性"中,向下滚动到"文本",双击"文本"字段,键入 Convert Document Library,然后按 Enter。
转换文档
在设计器中打开"VisualWebPart1UserControl.ascx"的情况下,请确保此按钮在 Web 部件图面上处于选中状态。
在"属性"中,单击带闪电图标的按钮以移动到事件视图,然后在"Click"事件字段中双击。这将在"VisualWebPart1UserControl.ascx.cs"中创建 btnSubmit_Click 事件处理程序。
在"VisualWebPart1UserControl.ascx.cs"中,为 Word Automation Services 添加 using 指令。
using Microsoft.Office.Word.Server.Conversions;
用于执行 Word Automation Services 文档转换的主对象位于 Microsoft.Office.Word.Server.Conversions 命名空间中。
在 btnSubmit_Click 方法中添加以下代码。
ConversionJob myJob = new ConversionJob("Word Automation Services");
传递给 ConversionJob 构造函数的字符串参数必须是 Word Automation Services 的服务应用程序实例的名称,如配置 Word Automation Services 以进行开发主题中所述。该服务应用程序实例名称将显示在"SharePoint 管理中心"内的"管理服务应用程序"页上。
紧接着,通过添加以下代码设置 ConversionJob 的属性。
myJob.Settings.OutputFormat = SaveFormat.PDF; myJob.Settings.OutputSaveBehavior = SaveBehavior.AppendIfPossible;
代码中的两个设置指定:
输出格式应为 PDF 格式。
在启用版本控制时,应将输出文件作为新版本追加到现有文件,否则将替换这些现有文件。
设置在运行转换作业时要提供的凭据。
重要说明
此设置指定对文档进行的所有读/写操作都应使用单击该按钮的用户的凭据。默认情况下,Word Automation Services 会使用匿名上下文,因此设置该属性特别重要。
myJob.UserToken = SPContext.Current.Web.CurrentUser.UserToken;
紧接着,指定包含要转换的文件的输入库和已转换文件的输出库。
SPWeb myWebSite = SPContext.Current.Web; SPList inputLibrary = myWebSite.Lists["Input"]; SPList outputLibrary = myWebSite.Lists["Output"]; myJob.AddLibrary(inputLibrary, outputLibrary, true);
最后,通过添加启动 Word Automation Services 转换作业的代码完成 btnSubmit_Click 方法的代码。
myJob.Start();
当用户在 Web 部件上单击此按钮时,代码会启动针对输入库中文件的转换作业。
请参阅
任务
步骤 1:针对 Web 部件解决方案设置 Visual Studio 2010 项目