使用 Microsoft.HtmlTrans 命名空间编程

上次修改时间: 2011年2月1日

适用范围: SharePoint Foundation 2010

即使用户没有在能够显示请求文档的客户端计算机上安装应用程序,也可以查看文档库中的文档。Microsoft SharePoint Foundation 提供 Microsoft.HtmlTrans 命名空间作为基础结构,并在此基础结构上构建自定义转换器应用程序,此应用程序可提供所请求文档的 HTML 版本,以代替无法识别的二进制文件格式。

警告注释警告

必须在 SharePoint Foundation 管理中心启用 HTML 查看器功能,才能使用此功能。

Microsoft.HtmlTrans.Interface 命名空间由两个接口组成:IHtmlTrLoadBalancer 和 IHtmlTrLauncher。这两个接口的实现还依赖于一个称为 htmltransinfo.xml 的 XML 配置文件,该文件驻留在运行 SharePoint Foundation 的服务器上。

  • IHtmlTrLoadBalancer 接口可帮助选择要运行自定义转换器应用程序的服务器。

  • IHtmlTrLauncher 接口可启动自定义转换器应用程序并将 HTML 结果返回到 SharePoint Foundation。

  • htmltransinfo.xml 文件可将文档请求重定向到处理程序页,然后处理程序页会调用负载平衡器和启动器组件。htmltransinfo.xml 配置文件中的条目采用以下格式:

    <HtmlTrInfo>
        <Mapping Extension="ext" AcceptHeader="application/vnd.my-app" HandlerUrl="myapphandler.aspx" ProgId=""/>
    </HtmlTrInfo>
    
警告注释警告

当您使用 Service Pack 或安全修补程序更新 SharePoint Foundation 时,对 htmltransinfo.xml 文件所做的更改可能会丢失。

使用 Microsoft.HtmlTrans 命名空间

当用户请求运行 SharePoint Foundation 的服务器中的文档时,会发生下面的一系列事件:

  1. SharePoint Foundation 标识 htmltransinfo.xml 文件中文档的文件扩展名。如果找到,则 SharePoint Foundation 将检索匹配的 AcceptHeader 属性;如果找不到,则 SharePoint Foundation 将提示用户下载该文档。

  2. SharePoint Foundation 按照请求的 Accept-Header HTTP header 检查 AcceptHeader 属性值,以查看客户端计算机是否可识别请求的文档类型。如果可识别,则 SharePoint Foundation 将采用其本机格式传递文档。

  3. SharePoint Foundation 还将从 Htmltransinfo.xml 文件中检索 ProgId 属性,并通过使用由 ProgId 指定的组件来尝试打开客户端计算机上的文件。如果此尝试失败,则 SharePoint Foundation 将继续 HTML 转换过程。

  4. 如果客户端计算机无法识别请求的文档类型,则 SharePoint Foundation 会提示用户:"是否要转换文档以在浏览器中查看?",如果用户选择不转换此文档,则 SharePoint Foundation 改为提示用户下载此文档。

  5. 如果用户选择转换此文档,则 SharePoint Foundation 会将请求转发到由 Htmltransinfo.xml 文件中的 HandlerUrl 属性指定的处理程序页。处理程序页会管理该转换过程,并将转换后的文件提供给用户以供在浏览器中查看。

实现自定义文档转换

若要在 SharePoint Foundation 平台上实现自定义文档转换,您必须创建以下内容:

  • 在 Htmltransinfo.xml 文件中为该文档类型创建一个条目。

  • 用于启动文档转换过程并将 HTML 输出返回给用户的处理程序页。

  • 一组自定义转换组件。

您必须选择三种方法之一来生成一组自定义转换组件:

  • 生成可用于启动自定义转换器应用程序并将其结果返回到 SharePoint Foundation 的 IHtmlTrLoadBalancer 和 IHtmlTrLauncher 接口的自定义实现。

  • 生成一组不使用 Microsoft.HtmlTrans 接口的自定义转换组件。

  • 调用作为 Microsoft Office 2003 版资源包一部分提供的 IHtmlTrLoadBalancer 和 IHtmlTrLauncher 接口的自定义实现,并提供要调用的 IHtmlTrLauncher 实现的自定义转换器应用程序。

请参阅

概念

SharePoint Foundation 对象模型中的命名空间

其他资源

Getting Started with Customizing a SharePoint Web Site in Visual Studio .NET