文档转换器

上次修改时间: 2010年11月19日

适用范围: SharePoint Server 2010

本文内容
文档转换过程概述
文档转换器范围
文档转换文件类型
转换 IRM 保护文件
转换优先级

文档转换器是自定义可执行文件,可利用某种文件类型的文档,生成该文档的另一种文件类型的副本。例如,文档转换器可以使用 Microsoft Excel 2010 文件,并通过它生成 文件。您可以借助文档转换器,将内容转换为不同的版本,以适应业务需要。您或许希望将草稿文档转换成不同的最终格式以备长期存档;或者需要将内部文档转换成其他格式,以放置在面向客户的网站上。

Microsoft SharePoint Server 2010 包括一个扩展框架,可用于在 Web 应用程序中启用自定义的文档库文档转换器。开发自定义文档转换器的基本步骤如下所示:

  1. 请确保已启用了 Web 应用程序的文档转换。

  2. 通过特定命令行命令创建可调用的可执行文件。

  3. 将该可执行文件与文档转换器定义文件打包,作为可在 Web 应用程序级别部署和激活的功能。

  4. 安装和激活文档转换器;可通过管理中心用户界面进一步配置文档转换器。

有关文档转换器必须响应的命令行命令的详细信息,请参阅文档转换器运行命令

有关部署文档转换器的详细信息,请参阅文档转换器部署

文档转换过程概述

因为文档转换器需要消耗资源,所以 SharePoint Server 2010 将依靠 DocConvLoadBalancerDocConvLauncher 这两个服务来管理负载平衡、对转换进行优化和计划。当用户通过用户界面或对象模型开始文档转换时,SharePoint Server 2010 将文档转换请求传递到这两个服务。DocConvLaunch 服务将实际调用文档转换器。文档转换器被调用后,将利用原始文件生成转换副本。然后,SharePoint Server 2010 将使用转换副本,在转换副本上执行某些后处理操作。这些操作包括:

  • 如果使用文档转换器的默认后续处理,则将原始文件中的元数据添加到转换副本。在其他情况下,例如,在智能客户端创作期间,SharePoint Server 2010 使用非默认后续处理将原始文件中的元数据添加到转换副本。

    文档转换器在默认后续处理过程中将旧文件上的所有字段传送到新文件。

    // Set required properties.
                        foreach (SPField field in file.Item.Fields)
                        {
                            // If we have a field that is not read only,
                            // where the child does not have a value yet
                            // but the parent does, copy that field.
                            if (!field.ReadOnlyField &&
                                !field.Hidden &&
                                newFile.Item[field.InternalName] == null &&
                                file.Item[field.InternalName] != null)
                            {
                                newFile.Item[field.InternalName] = file.Item[field.InternalName];
                                fUpdateNewFile = true;
                            }
                        }
    

    在智能客户端创作中,没有任何元数据传送到页面。发生这种情况的原因是智能客户端创作运行的后处理器为 runDefaultPostProcessing 返回 false。

    bool runDefaultPostProcessing = true;
                    if (tp != null)
                        tp.PostProcess(etr, cdti, out runDefaultPostProcessing);
    
                    if (runDefaultPostProcessing)
    

    有关 SharePoint Server 2010 中的后续处理的详细信息,请参阅 PostProcess() 方法。

  • 添加标识原始文件的元数据和用于生成转换副本的文档转换器。

  • 通知特定人员已执行转换。

  • 将转换副本放到原始文件的相同文档库中。

有关 DocConvLoadBalancerDocConvLaunch 服务的详细信息,请参阅文档转换所需的服务

有关文档转换器必须响应的命令行命令的详细信息,请参阅文档转换器运行命令

有关 SharePoint Server 2010 在转换副本上执行的后处理操作的详细信息,请参阅转换后的文档

文档转换器范围

文档转换器在 Web 应用程序级别启用。在激活 Web 应用程序的文档转换器后,即可在该 Web 应用程序的每个网站的每个文档库转换使用该转换器。

无法禁用特定网站或文档库的文档转换器。

还可以设置不在用户界面中显示文档转换器。在这种情况下,只能通过 SharePoint Server 2010 对象模型访问文档转换器。例如,可能存在一个只由管理员用于批量处理存档项目的文档转换器。您不希望其他用户通过用户界面使用该文档转换器。

文档转换文件类型

对于 Web 应用程序,可以通过多个转换器,使用具有相同文件类型扩展名的原始文档来生成具有相同文件类型扩展名的转换副本。例如,可以通过多个转换器将 Excel 文件转化成 PowerPoint 文件。每个转换器对文件执行不同的转换功能,但是最终文件类型扩展名是相同的。因此,可以获得同一原始文档的相同文件类型的多个转换副本。

SharePoint Server 2010 将存储用于创建每个特定转换副本的转换器的 GUID。它使用 GUID 而非文件类型扩展名来确定是否使用了特定转换器来生成转换副本。

转换 IRM 保护文件

如果某个文档受信息版权管理 (IRM) 保护,则您创建的任何转换副本也将受 IRM 保护。如果存在一个采用 IRM 保护文件格式的文档,而您选择的转换器可能生成采用非 IRM 保护文件格式的转换副本,则转换将出现错误。

转换优先级

可以将每个文档转换的优先级设成以下三个级别之一。DocConversionLauncherService 服务在计划执行文档转换请求的顺序时将考虑文档转换优先级。

以下是优先级的值。

1 (高)

通过 SharePoint Server 2010 用户界面启动的所有文档转换的默认优先级。

2 (一般)

通过 Windows SharePoint Services 对象模型启动的所有文档转换的默认优先级。

3 (低)

大批量文档转换的推荐优先级级别。文档转换比较耗资源,尤其在执行批量转换时更是如此。

无法通过用户界面明确设置文档转换优先级。

可以通过使用对象模型设置 Convert 方法的优先级参数来明确设置文档转换请求的优先级。

请参阅

概念

文档转换器概述

已转换文档的自定义处理