步骤 2:对 Web 部件编码

上次修改时间: 2010年7月20日

适用范围: SharePoint Server 2010

本主题说明如何使用 SharePoint Server 2010 Web 部件编写可启动 Word Automation Services 文档转换的代码。最终用户可通过单击 Web 部件上的按钮来转换指定的 SharePoint 文档库中的文档。

编写用于转换文档库的代码

以下过程会向 Web 部件添加一个按钮,然后在 Click 事件中为此按钮添加可启动 Word Automation Services 文档转换的代码。

向 Web 部件添加按钮

  1. 在 Web 部件解决方案示例的 Visual Studio 2010 项目中,在"解决方案资源管理器"中,展开"VisualWebPart1",右键单击"VisualWebPart1UserControl.ascx",然后单击"视图设计器"。

  2. 从"工具箱"中,将一个按钮控件拖动到设计器图面上。

  3. 在设计器中选中此按钮的情况下,在"属性"中双击"(ID)"字段,键入 btnSubmit,然后按 Enter。

  4. 在"属性"中,向下滚动到"文本",双击"文本"字段,键入 Convert Document Library,然后按 Enter。

转换文档

  1. 在设计器中打开"VisualWebPart1UserControl.ascx"的情况下,请确保此按钮在 Web 部件图面上处于选中状态。

  2. 在"属性"中,单击带闪电图标的按钮以移动到事件视图,然后在"Click"事件字段中双击。这将在"VisualWebPart1UserControl.ascx.cs"中创建 btnSubmit_Click 事件处理程序。

  3. 在"VisualWebPart1UserControl.ascx.cs"中,为 Word Automation Services 添加 using 指令。

    using Microsoft.Office.Word.Server.Conversions;
    

    用于执行 Word Automation Services 文档转换的主对象位于 Microsoft.Office.Word.Server.Conversions 命名空间中。

  4. 在 btnSubmit_Click 方法中添加以下代码。

    ConversionJob myJob = new ConversionJob("Word Automation Services");
    

    传递给 ConversionJob 构造函数的字符串参数必须是 Word Automation Services 的服务应用程序实例的名称,如配置 Word Automation Services 以进行开发主题中所述。该服务应用程序实例名称将显示在"SharePoint 管理中心"内的"管理服务应用程序"页上。

  5. 紧接着,通过添加以下代码设置 ConversionJob 的属性。

    myJob.Settings.OutputFormat = SaveFormat.PDF;
       myJob.Settings.OutputSaveBehavior = SaveBehavior.AppendIfPossible;
    

    代码中的两个设置指定:

    • 输出格式应为 PDF 格式。

    • 在启用版本控制时,应将输出文件作为新版本追加到现有文件,否则将替换这些现有文件。

  6. 设置在运行转换作业时要提供的凭据。

    重要注释重要说明

    此设置指定对文档进行的所有读/写操作都应使用单击该按钮的用户的凭据。默认情况下,Word Automation Services 会使用匿名上下文,因此设置该属性特别重要。

    myJob.UserToken = SPContext.Current.Web.CurrentUser.UserToken;
    
  7. 紧接着,指定包含要转换的文件的输入库和已转换文件的输出库。

    SPWeb myWebSite = SPContext.Current.Web;
       SPList inputLibrary = myWebSite.Lists["Input"];
       SPList outputLibrary = myWebSite.Lists["Output"];
       myJob.AddLibrary(inputLibrary, outputLibrary, true);
    
  8. 最后,通过添加启动 Word Automation Services 转换作业的代码完成 btnSubmit_Click 方法的代码。

    myJob.Start();
    

    当用户在 Web 部件上单击此按钮时,代码会启动针对输入库中文件的转换作业。

请参阅

任务

步骤 1:针对 Web 部件解决方案设置 Visual Studio 2010 项目

步骤 3:生成并部署 Web 部件解决方案

概念

演练:创建使用 Word Automation Services 的 Web 部件