SlideShare uma empresa Scribd logo
1 de 15
http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0712_sirohi/0712_sirohi.html<br />IBM WebSphere Portal 中的文档转换服务:概述和故障诊断<br />本文重点讨论用于文档转换的服务,并提供配置和故障诊断技巧。本文将讨论 IBM WebSphere Portal 中的文档转换服务的体系结构、所支持的转换类型、远程转换,以及独立转换。<br />顾名思义,文档转换服务(Document Conversion Services,DCS)将文档从一种格式转换为另一种格式。如果无法使用本机软件来打开文档,文档转换服务是非常有用的。DCS 在 IBM WebSphere Portal 中广泛用于查看文档和将文档转换为各种格式。<br />本文的内容是为 WebSphere Portal 和 IBM Lotus Quickr 用户编写的,并在开发使用 DCS 的应用程序时非常有用,DCS 包括以下功能:<br />文档查看。DCS 对于预览文档起重要的作用。假设 WebSphere Portal 用户希望预览某个存储在 IBM Workplace Web Content Manager 中的 Microsoft Word 文件。Workpplace Web Content Manager 将调用 DCS 来将该文件转换为 HTML。<br />文档转换。WebSphere Portal 中的 Document Manager 提供了各种使用 DCS 的转换。例如,WebSphere Portal 用户可以使用 DCS 将 Microsoft Word 文件转换为 RTE 格式(Document Manager 用来创建文本文档的富文本编辑器格式)。<br />文档搜索。DCS 还可以帮助 Juru 对 WebSphere Portal 中存在的各种文档建立索引。DCS 将门户中的整个文档转换为 SearchText 格式,这是一种仅包含文档的文本及其元数据的格式。Juru 使用 SearchText 格式来对文档建立索引。<br />转换为图像。DCS 还可以将文档转换为图像。文档的每一页被转换为一个对应的图像。目前,此功能在 Lotus Quickr 中用于显示文档第一页的缩略图图像。<br />体系结构<br />文档转换服务体系结构划分为两个主要部分:<br />IBM 转换器<br />Oracle OutsideIn 转换器<br />图 1 显示了 DCS 体系结构。<br />图 1. DCS 体系结构 <br />IBM 转换器<br />这些由 IBM 开发并使用 Java 编写的转换器在文档转换中起作重要的作用。其中部分转换器使用了一个 APACHE 开放源代码 API 来转换文档,其他转换器则使用它们自己的逻辑来执行转换。表 1 列出了 IBM 转换器支持的转换。<br />表 1. IBM 转换器支持的转换<br />源格式目标格式RTE/HTMLMicrosoft WordRTE/HTMLIBM Lotus Word ProRTE/HTMLAdobe PDF<br />Oracle OutsideIn 转换器<br />Oracle OutsideIn 转换器在文档查看(转换为 HTML)、文档搜索(转换为 SearchText)和转换为图像中起着重要的作用。它们是由 Oracle 提供并使用 C 编程语言编写的第三方转换器;因此,它们具有针对不同平台的不同二进制文件。<br />OutsideIn 转换器支持 200 多种格式。它们可以将所有的 200 多种格式转换为 HTML、SearchText 和图像,这些功能分别称为“HTML 导出 (HTML Export)”、“搜索导出 (Search Export)””和“图像导出 (Image Export)”。表 2 列出了 OutsideIn 转换器支持的主要格式。<br />表 2. OutsideIn 转换器支持的一些主要格式<br />源格式目标格式Microsoft ExcelHTML/SearchText/图像Microsoft PowerPointHTML/SearchText/图像IBM Lotus 1-2-3HTML/SearchText/图像IBM Lotus Word ProHTML/SearchText/图像Microsoft WordHTML/SearchText/图像Open Office 格式HTML/SearchText/图像<br />平台支持<br />Oracle OutsideIn 二进制文件是使用 C 编写的,并且是平台相关的。表 3 列出了各种平台上的 OutsideIn 支持。<br />表 3. OutsideIn 二进制文件的平台支持<br />平台是否支持搜索导出是否支持 HTML 导出是否支持图像导出Linux是是是Sun Solaris是是是zLinux是是是IBM zOS是是是HPUX是是是Microsoft Windows是是是IBM AIX是是是IBM iSeries是是是<br />远程文档转换服务<br />文档转换服务还可以作为远程 Web 应用程序运行。如果使用 DCS 的应用程序不在支持 DCS 的平台上,则远程文档转换服务是非常有用的。例如,IBM zOS 上的某个应用程序需要 DCS 将文档转换为图像,但是 DCS 在 zOS 上不支持图像导出。远程 DCS 为此问题提供了解决方案。可以将远程 DCS 安装在诸如 Microsoft Windows 等任何支持图像导出的平台上的 IBM WebSphere Application Server 上;然后本地 DCS 包装程序就可以调用远程 DCS 来执行转换。当使用 DCS 的应用程序希望在另一台计算机上执行转换以实现负载平衡时,远程 DCS 也是非常有用的。<br />注意:必须在本地主机上存在的配置文件 convertors.xml 中指定远程 DCS。<br />DCS 配置文件<br />DCS 配置文件为更改 DCS 配置提供了支持,例如设置日志模式、转换超时、日志文件位置和远程 DCS 地址。此配置文件还可以用于添加转换器。此文件为 XML 格式并且名为 convertors.xml。在 WebSphere Portal 中,此文件存在于以下路径:<br /><Portal Home>/shared/app folder <br />此配置文件划分为两个部分/标记:<br />全局属性<br />转换器<br />全局属性<br />全局属性包括如下部分:<br />ODC_LOG。此属性用于获取日志中的消息类型。下面的列表显示了用于设置此属性及其功能的不同模式值。<br />ODC_SILENT。此值表示不存在日志消息。<br />ODC_ERROR。此日志值用于仅获取日志中的错误消息。<br />ODC_WARNING。此模式打印错误和警告消息。<br />ODC_INFO。此模式启用错误、警告和信息性消息。<br />ODC_DEBUG。此值获取日志中所有类型的消息。在 OutsideIn 转换器的情况下,当启用了此模式时,将不会从临时文件位置删除源文件和转换后的文件的副本。Windows 和 UNIX 的临时文件位置分别是 c:emp 和 mp。<br />下面的语法用于设置此属性:<br /><property name=quot;
ODC_LOGquot;
 value=quot;
ODC_ERRORquot;
/><br />TIMEOUT。此值用于限制 OutsideIn 二进制文件的转换时间(以秒为单位)。这是一个非常重要的属性,因为演示文稿文件和图像转换通常要花很长的时间才能完成转换;使用此属性可以限制该时间。下面的语法用于设置此属性:<property name=quot;
TIMEOUTquot;
 value=quot;
0quot;
/><br />ODC_ERROR_FILE。此属性用于定义错误日志文件的位置。还可以使用此属性来定义缺省日志文件夹。例如,当在 WebSphere Portal 中使用 DCS 时,将会在 <Portal Home>/log 文件夹中创建日志文件。使用 ODC_DEFAULT 将设置错误日志文件位置的缺省值。下面的语法用于设置此属性:<property name=quot;
ODC_ERROR_FILEquot;
 value=quot;
ODC_DEFAULTquot;
/><br />ODC_OUT_FILE。此属性用于定义日志文件的位置。还可以使用此属性来定义缺省日志文件夹。例如,当在 WebSphere Portal 中使用 DCS 时,将会在 <Portal Home>/log 文件夹中创建日志文件。使用 ODC_DEFAULT 将设置日志文件位置的缺省值。下面的语法用于设置此属性:<property name=quot;
ODC_OUT_FILEquot;
 value=quot;
ODC_DEFAULTquot;
/><br />remoteHost。此属性用于定义远程 DCS 的 URL。如果未使用远程 DCS,则需要将此属性注释掉。下面的语法用于设置此属性:<property name=quot;
remoteHostquot;
 value=quot;
http://yourservername:9080/dcs/dcsquot;
 /><br />转换器<br />此标记定义各种类型的转换器。其中包含以下三种类型的转换器:<br />Input。此标记包含转换器的输入 MIME 类型。转换器可以接受各种输入类型,并且这些类型在多个 input 标记中进行定义。下面是一个示例: <input>application/html</input><br />Output。此标记包含转换器的输出 MIME 类型。转换器可以接受各种输出类型,并且这些类型在多个 output 标记中进行定义。下面是一个示例:<output>application/jpeg</output><br />Property。此标记包含执行转换的 Java 类的完全限定名称。清单 1 中的示例代码显示了一个完整的转换器标记。<br />清单 1. 完整的转换器标记 <br /><convertor><input>application/msword</input><input>application/vnd.lotus-wordpro</input><input>application/html</input><input>application/rtf</input><output>application/png</output><output>application/gif</output><output>application/tiff</output><output>application/html.zip</output><property name=quot;
classquot;
 value=quot;
com.ibm.wps.odc.convert.stellent.OutsideInExportquot;
/></convertor><br />使用 DCS 来转换文档的步骤<br />调用 DCS 来执行文档转换是非常简单的。只需按照以下三个步骤操作。<br />启动 DocumentConvertorImpl。这个称为“DCS 工厂类”的类帮助获取适当转换器的实例以便执行某个特定的转换。 DocumentConvertorImpl dcs = new DocumentConvertorImpl ();<br />搜索并实例化适当的转换器。DocumentConvertorImpl 类使用 convertors.xml 来帮助搜索适当的转换器。例如,您需要某个转换器来将 Microsoft Word 转换为 HTML。您需要将 MS-word 的 MIME 类型作为输入 MIME 类型并将 HTML 的 MIME 类型作为输出 MIME 类型传递给 DCS 工厂。此工厂类在 convertors.xml 中存在的转换器标记中搜索该输入和输出 MIME 类型的组合。找到该组合以后,此工厂类将实例化在同一个 转换器标记中找到的类名称并将其返回。下面的代码片段说明了如何搜索和实例化适当的转换器:Convertor htmlConvertor = dcs.getConvertor(<input mime-type>, <output mime-type>); 例如, Convertor htmlConvertor = dcs.getConvertor (application/msword, application/html.zip);注意:如果未找到适当的转换器,则返回 Null。<br />提供原文档并转换该文档。此步骤包括提供源文件的 inputStream 并获取转换后的文件的 outputStream。htmlConvertor.doConversion (<inputStream of the source file>, <outputStream of the converted file>);IBM 转换器和 OutsideIn 转换器在此步骤中的内部工作方式是不同的。对于 IBM 转换器,将会读取 inputStream 并从转换中生成 outputStream。对于 OutsideIn 转换器,则会将 inputStream 复制到某个临时文件夹;在成功复制 inputStream 以后,再将该临时位置的路径传递给 OutsideIn 转换器。存储输出文件的路径也将传递给 OutsideIn 转换器。然后 OutsideIn 转换器转换该文件并将结果放在指定的路径。在 HTML 转换或多页图像转换的情况下,将对输出文件夹进行压缩,并返回 ZIP 文件的 outputStream。这样做是因为转换可能会产生多个文件。在 SearchText 或单个图像转换的情况下,将不会对输出文件夹进行压缩;转换后的文件直接传递到 outputStream。<br />演示文稿文件的 HTML 转换<br />HTML 格式的演示文稿文件的转换与其他 HTML 格式的转换不同。在演示文稿文件的 HTML 转换的情况下,转换后的文件是一个 HTML 文件,其中包含与每个演示文稿幻灯片相对应的图像。除了使用指向 True Type 字体文件夹的 GDFONTPATH 环境变量的 Linux 和 Solaris 平台以外,此转换要求在 UNIX 上运行 Xserver。。<br />图像转换<br />在图像转换中,文件将转换为图像。DCS 提供了五种用于转换的图像格式:GIF、TIFF、JPEG、BMP 和 PNG。<br />DCS 提供了两种类型的图像转换:<br />缩略图图像。此转换创建文档第一页的 150 x 150 像素的缩略图图像。可以提供以下任何输出类型来执行此转换:<br />application/jpeg<br />application/bmp<br />application/png<br />application/gif<br />application/tiff<br />完整文档的图像转换。此转换创建给定文档的每一页的 1000 x 1000 像素的图像。可以提供以下任何输出类型来执行此转换: <br />application/gif.zip<br />application/jpeg.zip<br />application/png.zip<br />application/tiff. zip<br />application/bmp.zip<br />独立转换<br />DCS 包含一个 TestDriver 类,此类帮助用户通过直接将某个文件传递给 DCS 来转换该文件。这个独立应用程序通过提供输入 MIME 类型、输出 MIME 类型、源文件路径和必须存储转换后的文件的路径来转换文档。<br />要对 WebSphere Portal 上的 Oracle OutsideIn 转换器使用独立转换,请按照以下步骤操作:<br />在安装 WebSphere Portal 的计算机上打开命令提示符。<br />转到目录 <Portal Home>/shared/app。<br />设置路径和库路径。(有关此主题的更多信息,请参见“故障诊断”部分。)<br />执行如清单 2 所示的 Java 命令。<br />清单 2. Java 命令<br />java –cp ./convertors.jar:./Export.jar:<PortalHome>/IBMTrans/lib/xerces.jar com.ibm.wps.odc.convert.TestDriver <input mime-type>, <output mime-type> , <full path to the Input file>, <full path to the output file> <br />故障诊断<br />本部分描述在使用 DCS 时遇到的常见问题及其快速解决方案。这其中大多数问题都是在使用 OutsideIn 转换器时发生的,因为这些转换器是平台相关的。这些问题通常发生在 UNIX 平台上。稍后的一个部分还将讨论一些常见的平台问题。<br />设置路径和库路径<br />本部分定义需要在使用 OutsideIn 转换器之前在 UNIX 平台上设置的各个路径和库路径。路径和库路径变量必须包含放置 OutsideIn 二进制文件的文件夹的完全限定路径。OutsideIn 二进制文件始终位于 oiexport 文件夹中。WebSphere Portal 中的路径设置如下:<br />export path = <portal home>/shared/app/oiexport:$path<br />库路径也可以按相同的方式进行设置。表 4 显示了各种平台的库路径变量。<br />表 4. 各种平台的库路径变量<br />平台库路径变量AIX、iSeries 和 zOSLIBPATHHP-UXSHLIB_PATHLinuxLD_LIBRARY_PATHSolarisLD_LIBRARY_PATH<br />OutsideIn 转换器无法工作<br />此问题表明 HTML 导出、图像导出和搜索导出转换无法工作。出现此问题通常是由于以下原因:<br />问题:OutsideIn 二进制文件没有执行权限。解决方案:向 OutsideIn 二进制文件赋予完全权限。OutsideIn 二进制可在安装 DCS 的 oiexport 文件夹中找到。例如,在 WebSphere Portal 中,这些二进制文件位于以下路径:<Portal Home>/shared/app/oiexport<br />问题:路径和库路径未设置。解决方案:参考表 4 设置路径和库路径。<br />演示文稿文件的图像转换和 HTML 转换无法工作。<br />当此问题出现时,DCS 生成一个 85 字节或 0 字节的转换文件。<br />问题:由于 Xserver 在转换期间未运行,创建的文件为 85 字节。 解决方案:验证 DISPLAY 环境变量是否指向正在运行的 Xserver。对于 Linux 和 Solaris 平台,可以通过设置 GDFONTPATH 环境变量来替换 Xserver,该环境变量指向包含 True Type 字体(即 TTF 和 TTC)的字体目录。<br />问题:由于图形库安装不正确,创建的文件为 0 字节。解决方案:使用以下命令安装 libXm.so.3 并将该库与 libXm.so.2.0.1 连接起来:ln -sf /usr/X11R6/lib/libXm.so.3.0.2 /usr/X11R6/lib/libXm.so.2.0.1. <br />演示文稿文件的 HTML 转换中的字体显示不正确<br />OutsideIn 转换使用所安装的平台中的字体。Windows 和非 Windows 平台上都会出现此问题。<br />安装源文档中使用的字体和字符集可以解决此问题。例如,如果某个源文档包含带土耳其字符集的 Arial 字体,则 OutsideIn 转换器将搜索相同的字体和字符集组合。如果未找到,则使用系统上存在的最接近的匹配组合。<br />富文本编辑器文件的 HTML 转换中的字体显示不正确<br />富文本编辑器文件包括诸如 Microsoft Word、Lotus Word Pro 和 Open Office 等文件。此问题会在使用非英语源文件时出现,因为用于生成 HTML 文件的字符集没有恰当的字符来表示源文件中存在的双字节字符集 (DBCS) 字符。Windows 和非 Windows 平台上都会出现此问题。<br />要解决此问题,必须在 export.cfg 文件中根据源文档更改输出字符集属性。在 WebSphere Portal 中,该文件存在于以下路径:<br /><Portal Home>/shared/app/export.cfg<br />文本文件的 HTML 转换中的字符显示不正确<br />此问题会由于以下两个原因而出现:<br />DCS 无法识别源文件格式。DCS 无法识别文本文件格式,因为文本文件没有包含任何有关文件格式的信息。 应更改 export.cfg 文件中的 Fallbackformat 属性。在 WebSphere Portal 中,该文件存在于以下位置:<Portal Home>/shared/app/export.cfg将 Fallbackformat 属性更改为源文本文件中使用的格式。<br />输出字符集不适合用于正确显示字符。Windows 和非 Windows 平台上都会出现此问题。应更改 export.cfg 文件中的 Character Set 属性。在 WebSphere Portal 中,该文件存在于以下位置:<Portal Home>/shared/app/export.cfg将 Charset 属性更改为源文件字符的相应字符集。<br />结束语<br />文档转换服务提供了一种将文档转换为所需格式的便利方法。在本文中,您了解了 DCS、DCS 的功能以及它所支持的所有转换。本文还介绍了对 DCS 进行故障诊断的技巧。<br />参考资料<br />您可以参阅本文在 developerWorks 全球站点上的 英文原文 。 <br />参与论坛讨论 。 <br />在 IBM WebSphere Portal 专栏阅读有关文档转换服务的更多信息。<br />参阅 IBM WebSphere Portal 产品页。<br />关于作者<br />Chitresh Sirohi 是一名 IBM 软件工程师,自从 2004 年以来一直在 IBM 工作。在过去的一年里,他一直在从事文档转换服务方面的工作。在此之前,Chitresh 曾从事 IBM WebSphere Everyplace Mobile Portal 方面的工作。您可以通过 chitresh.sirohi@in.ibm.com 与 Sirohi 先生联系。<br />
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务
testing-Ibm web sphere portal 中的文档转换服务

Mais conteúdo relacionado

Semelhante a testing-Ibm web sphere portal 中的文档转换服务

Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南yiditushe
 
Migrations 與 Schema 操作
Migrations 與 Schema 操作Migrations 與 Schema 操作
Migrations 與 Schema 操作Shengyou Fan
 
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletServlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletJustin Lin
 
P6 服务器安装与配置
P6 服务器安装与配置P6 服务器安装与配置
P6 服务器安装与配置epst
 
第9章 t sql程序设计
第9章 t sql程序设计第9章 t sql程序设计
第9章 t sql程序设计hanmo1988
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践yiditushe
 
Subversion
SubversionSubversion
Subversioni7Xh
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0qianshi
 
Javascript代码注释及文档生成
Javascript代码注释及文档生成Javascript代码注释及文档生成
Javascript代码注释及文档生成fangdeng
 
test
testtest
testxieyq
 
Migrations 與 Schema操作
Migrations 與 Schema操作Migrations 與 Schema操作
Migrations 與 Schema操作Shengyou Fan
 
Apache服务器配置全攻略
Apache服务器配置全攻略Apache服务器配置全攻略
Apache服务器配置全攻略Yiwei Ma
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率gowell
 
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5lovingprince58
 
Re Introduce Web Development
Re Introduce Web DevelopmentRe Introduce Web Development
Re Introduce Web Developmentfinian lau
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程yiditushe
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统klandor
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料yiditushe
 
大型互联网应用架构设计
大型互联网应用架构设计大型互联网应用架构设计
大型互联网应用架构设计thinkinlamp
 

Semelhante a testing-Ibm web sphere portal 中的文档转换服务 (20)

Struts快速学习指南
Struts快速学习指南Struts快速学习指南
Struts快速学习指南
 
Migrations 與 Schema 操作
Migrations 與 Schema 操作Migrations 與 Schema 操作
Migrations 與 Schema 操作
 
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 ServletServlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
Servlet & JSP 教學手冊第二版試讀 - 撰寫與設定 Servlet
 
P6 服务器安装与配置
P6 服务器安装与配置P6 服务器安装与配置
P6 服务器安装与配置
 
第9章 t sql程序设计
第9章 t sql程序设计第9章 t sql程序设计
第9章 t sql程序设计
 
Lucene 全文检索实践
Lucene 全文检索实践Lucene 全文检索实践
Lucene 全文检索实践
 
Subversion
SubversionSubversion
Subversion
 
Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0Traffic server 管理员指南v1.0
Traffic server 管理员指南v1.0
 
Javascript代码注释及文档生成
Javascript代码注释及文档生成Javascript代码注释及文档生成
Javascript代码注释及文档生成
 
test
testtest
test
 
Migrations 與 Schema操作
Migrations 與 Schema操作Migrations 與 Schema操作
Migrations 與 Schema操作
 
Apache服务器配置全攻略
Apache服务器配置全攻略Apache服务器配置全攻略
Apache服务器配置全攻略
 
RESTful
RESTfulRESTful
RESTful
 
使用Lua提高开发效率
使用Lua提高开发效率使用Lua提高开发效率
使用Lua提高开发效率
 
Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5Jetty服务器架构及调优.v2 2011-5
Jetty服务器架构及调优.v2 2011-5
 
Re Introduce Web Development
Re Introduce Web DevelopmentRe Introduce Web Development
Re Introduce Web Development
 
Oracle北大青鸟完全教程
Oracle北大青鸟完全教程Oracle北大青鸟完全教程
Oracle北大青鸟完全教程
 
开源应用日志收集系统
开源应用日志收集系统开源应用日志收集系统
开源应用日志收集系统
 
中远公司 Java培训资料
中远公司  Java培训资料中远公司  Java培训资料
中远公司 Java培训资料
 
大型互联网应用架构设计
大型互联网应用架构设计大型互联网应用架构设计
大型互联网应用架构设计
 

testing-Ibm web sphere portal 中的文档转换服务

  • 1. http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0712_sirohi/0712_sirohi.html<br />IBM WebSphere Portal 中的文档转换服务:概述和故障诊断<br />本文重点讨论用于文档转换的服务,并提供配置和故障诊断技巧。本文将讨论 IBM WebSphere Portal 中的文档转换服务的体系结构、所支持的转换类型、远程转换,以及独立转换。<br />顾名思义,文档转换服务(Document Conversion Services,DCS)将文档从一种格式转换为另一种格式。如果无法使用本机软件来打开文档,文档转换服务是非常有用的。DCS 在 IBM WebSphere Portal 中广泛用于查看文档和将文档转换为各种格式。<br />本文的内容是为 WebSphere Portal 和 IBM Lotus Quickr 用户编写的,并在开发使用 DCS 的应用程序时非常有用,DCS 包括以下功能:<br />文档查看。DCS 对于预览文档起重要的作用。假设 WebSphere Portal 用户希望预览某个存储在 IBM Workplace Web Content Manager 中的 Microsoft Word 文件。Workpplace Web Content Manager 将调用 DCS 来将该文件转换为 HTML。<br />文档转换。WebSphere Portal 中的 Document Manager 提供了各种使用 DCS 的转换。例如,WebSphere Portal 用户可以使用 DCS 将 Microsoft Word 文件转换为 RTE 格式(Document Manager 用来创建文本文档的富文本编辑器格式)。<br />文档搜索。DCS 还可以帮助 Juru 对 WebSphere Portal 中存在的各种文档建立索引。DCS 将门户中的整个文档转换为 SearchText 格式,这是一种仅包含文档的文本及其元数据的格式。Juru 使用 SearchText 格式来对文档建立索引。<br />转换为图像。DCS 还可以将文档转换为图像。文档的每一页被转换为一个对应的图像。目前,此功能在 Lotus Quickr 中用于显示文档第一页的缩略图图像。<br />体系结构<br />文档转换服务体系结构划分为两个主要部分:<br />IBM 转换器<br />Oracle OutsideIn 转换器<br />图 1 显示了 DCS 体系结构。<br />图 1. DCS 体系结构 <br />IBM 转换器<br />这些由 IBM 开发并使用 Java 编写的转换器在文档转换中起作重要的作用。其中部分转换器使用了一个 APACHE 开放源代码 API 来转换文档,其他转换器则使用它们自己的逻辑来执行转换。表 1 列出了 IBM 转换器支持的转换。<br />表 1. IBM 转换器支持的转换<br />源格式目标格式RTE/HTMLMicrosoft WordRTE/HTMLIBM Lotus Word ProRTE/HTMLAdobe PDF<br />Oracle OutsideIn 转换器<br />Oracle OutsideIn 转换器在文档查看(转换为 HTML)、文档搜索(转换为 SearchText)和转换为图像中起着重要的作用。它们是由 Oracle 提供并使用 C 编程语言编写的第三方转换器;因此,它们具有针对不同平台的不同二进制文件。<br />OutsideIn 转换器支持 200 多种格式。它们可以将所有的 200 多种格式转换为 HTML、SearchText 和图像,这些功能分别称为“HTML 导出 (HTML Export)”、“搜索导出 (Search Export)””和“图像导出 (Image Export)”。表 2 列出了 OutsideIn 转换器支持的主要格式。<br />表 2. OutsideIn 转换器支持的一些主要格式<br />源格式目标格式Microsoft ExcelHTML/SearchText/图像Microsoft PowerPointHTML/SearchText/图像IBM Lotus 1-2-3HTML/SearchText/图像IBM Lotus Word ProHTML/SearchText/图像Microsoft WordHTML/SearchText/图像Open Office 格式HTML/SearchText/图像<br />平台支持<br />Oracle OutsideIn 二进制文件是使用 C 编写的,并且是平台相关的。表 3 列出了各种平台上的 OutsideIn 支持。<br />表 3. OutsideIn 二进制文件的平台支持<br />平台是否支持搜索导出是否支持 HTML 导出是否支持图像导出Linux是是是Sun Solaris是是是zLinux是是是IBM zOS是是是HPUX是是是Microsoft Windows是是是IBM AIX是是是IBM iSeries是是是<br />远程文档转换服务<br />文档转换服务还可以作为远程 Web 应用程序运行。如果使用 DCS 的应用程序不在支持 DCS 的平台上,则远程文档转换服务是非常有用的。例如,IBM zOS 上的某个应用程序需要 DCS 将文档转换为图像,但是 DCS 在 zOS 上不支持图像导出。远程 DCS 为此问题提供了解决方案。可以将远程 DCS 安装在诸如 Microsoft Windows 等任何支持图像导出的平台上的 IBM WebSphere Application Server 上;然后本地 DCS 包装程序就可以调用远程 DCS 来执行转换。当使用 DCS 的应用程序希望在另一台计算机上执行转换以实现负载平衡时,远程 DCS 也是非常有用的。<br />注意:必须在本地主机上存在的配置文件 convertors.xml 中指定远程 DCS。<br />DCS 配置文件<br />DCS 配置文件为更改 DCS 配置提供了支持,例如设置日志模式、转换超时、日志文件位置和远程 DCS 地址。此配置文件还可以用于添加转换器。此文件为 XML 格式并且名为 convertors.xml。在 WebSphere Portal 中,此文件存在于以下路径:<br /><Portal Home>/shared/app folder <br />此配置文件划分为两个部分/标记:<br />全局属性<br />转换器<br />全局属性<br />全局属性包括如下部分:<br />ODC_LOG。此属性用于获取日志中的消息类型。下面的列表显示了用于设置此属性及其功能的不同模式值。<br />ODC_SILENT。此值表示不存在日志消息。<br />ODC_ERROR。此日志值用于仅获取日志中的错误消息。<br />ODC_WARNING。此模式打印错误和警告消息。<br />ODC_INFO。此模式启用错误、警告和信息性消息。<br />ODC_DEBUG。此值获取日志中所有类型的消息。在 OutsideIn 转换器的情况下,当启用了此模式时,将不会从临时文件位置删除源文件和转换后的文件的副本。Windows 和 UNIX 的临时文件位置分别是 c:emp 和 mp。<br />下面的语法用于设置此属性:<br /><property name=quot; ODC_LOGquot; value=quot; ODC_ERRORquot; /><br />TIMEOUT。此值用于限制 OutsideIn 二进制文件的转换时间(以秒为单位)。这是一个非常重要的属性,因为演示文稿文件和图像转换通常要花很长的时间才能完成转换;使用此属性可以限制该时间。下面的语法用于设置此属性:<property name=quot; TIMEOUTquot; value=quot; 0quot; /><br />ODC_ERROR_FILE。此属性用于定义错误日志文件的位置。还可以使用此属性来定义缺省日志文件夹。例如,当在 WebSphere Portal 中使用 DCS 时,将会在 <Portal Home>/log 文件夹中创建日志文件。使用 ODC_DEFAULT 将设置错误日志文件位置的缺省值。下面的语法用于设置此属性:<property name=quot; ODC_ERROR_FILEquot; value=quot; ODC_DEFAULTquot; /><br />ODC_OUT_FILE。此属性用于定义日志文件的位置。还可以使用此属性来定义缺省日志文件夹。例如,当在 WebSphere Portal 中使用 DCS 时,将会在 <Portal Home>/log 文件夹中创建日志文件。使用 ODC_DEFAULT 将设置日志文件位置的缺省值。下面的语法用于设置此属性:<property name=quot; ODC_OUT_FILEquot; value=quot; ODC_DEFAULTquot; /><br />remoteHost。此属性用于定义远程 DCS 的 URL。如果未使用远程 DCS,则需要将此属性注释掉。下面的语法用于设置此属性:<property name=quot; remoteHostquot; value=quot; http://yourservername:9080/dcs/dcsquot; /><br />转换器<br />此标记定义各种类型的转换器。其中包含以下三种类型的转换器:<br />Input。此标记包含转换器的输入 MIME 类型。转换器可以接受各种输入类型,并且这些类型在多个 input 标记中进行定义。下面是一个示例: <input>application/html</input><br />Output。此标记包含转换器的输出 MIME 类型。转换器可以接受各种输出类型,并且这些类型在多个 output 标记中进行定义。下面是一个示例:<output>application/jpeg</output><br />Property。此标记包含执行转换的 Java 类的完全限定名称。清单 1 中的示例代码显示了一个完整的转换器标记。<br />清单 1. 完整的转换器标记 <br /><convertor><input>application/msword</input><input>application/vnd.lotus-wordpro</input><input>application/html</input><input>application/rtf</input><output>application/png</output><output>application/gif</output><output>application/tiff</output><output>application/html.zip</output><property name=quot; classquot; value=quot; com.ibm.wps.odc.convert.stellent.OutsideInExportquot; /></convertor><br />使用 DCS 来转换文档的步骤<br />调用 DCS 来执行文档转换是非常简单的。只需按照以下三个步骤操作。<br />启动 DocumentConvertorImpl。这个称为“DCS 工厂类”的类帮助获取适当转换器的实例以便执行某个特定的转换。 DocumentConvertorImpl dcs = new DocumentConvertorImpl ();<br />搜索并实例化适当的转换器。DocumentConvertorImpl 类使用 convertors.xml 来帮助搜索适当的转换器。例如,您需要某个转换器来将 Microsoft Word 转换为 HTML。您需要将 MS-word 的 MIME 类型作为输入 MIME 类型并将 HTML 的 MIME 类型作为输出 MIME 类型传递给 DCS 工厂。此工厂类在 convertors.xml 中存在的转换器标记中搜索该输入和输出 MIME 类型的组合。找到该组合以后,此工厂类将实例化在同一个 转换器标记中找到的类名称并将其返回。下面的代码片段说明了如何搜索和实例化适当的转换器:Convertor htmlConvertor = dcs.getConvertor(<input mime-type>, <output mime-type>); 例如, Convertor htmlConvertor = dcs.getConvertor (application/msword, application/html.zip);注意:如果未找到适当的转换器,则返回 Null。<br />提供原文档并转换该文档。此步骤包括提供源文件的 inputStream 并获取转换后的文件的 outputStream。htmlConvertor.doConversion (<inputStream of the source file>, <outputStream of the converted file>);IBM 转换器和 OutsideIn 转换器在此步骤中的内部工作方式是不同的。对于 IBM 转换器,将会读取 inputStream 并从转换中生成 outputStream。对于 OutsideIn 转换器,则会将 inputStream 复制到某个临时文件夹;在成功复制 inputStream 以后,再将该临时位置的路径传递给 OutsideIn 转换器。存储输出文件的路径也将传递给 OutsideIn 转换器。然后 OutsideIn 转换器转换该文件并将结果放在指定的路径。在 HTML 转换或多页图像转换的情况下,将对输出文件夹进行压缩,并返回 ZIP 文件的 outputStream。这样做是因为转换可能会产生多个文件。在 SearchText 或单个图像转换的情况下,将不会对输出文件夹进行压缩;转换后的文件直接传递到 outputStream。<br />演示文稿文件的 HTML 转换<br />HTML 格式的演示文稿文件的转换与其他 HTML 格式的转换不同。在演示文稿文件的 HTML 转换的情况下,转换后的文件是一个 HTML 文件,其中包含与每个演示文稿幻灯片相对应的图像。除了使用指向 True Type 字体文件夹的 GDFONTPATH 环境变量的 Linux 和 Solaris 平台以外,此转换要求在 UNIX 上运行 Xserver。。<br />图像转换<br />在图像转换中,文件将转换为图像。DCS 提供了五种用于转换的图像格式:GIF、TIFF、JPEG、BMP 和 PNG。<br />DCS 提供了两种类型的图像转换:<br />缩略图图像。此转换创建文档第一页的 150 x 150 像素的缩略图图像。可以提供以下任何输出类型来执行此转换:<br />application/jpeg<br />application/bmp<br />application/png<br />application/gif<br />application/tiff<br />完整文档的图像转换。此转换创建给定文档的每一页的 1000 x 1000 像素的图像。可以提供以下任何输出类型来执行此转换: <br />application/gif.zip<br />application/jpeg.zip<br />application/png.zip<br />application/tiff. zip<br />application/bmp.zip<br />独立转换<br />DCS 包含一个 TestDriver 类,此类帮助用户通过直接将某个文件传递给 DCS 来转换该文件。这个独立应用程序通过提供输入 MIME 类型、输出 MIME 类型、源文件路径和必须存储转换后的文件的路径来转换文档。<br />要对 WebSphere Portal 上的 Oracle OutsideIn 转换器使用独立转换,请按照以下步骤操作:<br />在安装 WebSphere Portal 的计算机上打开命令提示符。<br />转到目录 <Portal Home>/shared/app。<br />设置路径和库路径。(有关此主题的更多信息,请参见“故障诊断”部分。)<br />执行如清单 2 所示的 Java 命令。<br />清单 2. Java 命令<br />java –cp ./convertors.jar:./Export.jar:<PortalHome>/IBMTrans/lib/xerces.jar com.ibm.wps.odc.convert.TestDriver <input mime-type>, <output mime-type> , <full path to the Input file>, <full path to the output file> <br />故障诊断<br />本部分描述在使用 DCS 时遇到的常见问题及其快速解决方案。这其中大多数问题都是在使用 OutsideIn 转换器时发生的,因为这些转换器是平台相关的。这些问题通常发生在 UNIX 平台上。稍后的一个部分还将讨论一些常见的平台问题。<br />设置路径和库路径<br />本部分定义需要在使用 OutsideIn 转换器之前在 UNIX 平台上设置的各个路径和库路径。路径和库路径变量必须包含放置 OutsideIn 二进制文件的文件夹的完全限定路径。OutsideIn 二进制文件始终位于 oiexport 文件夹中。WebSphere Portal 中的路径设置如下:<br />export path = <portal home>/shared/app/oiexport:$path<br />库路径也可以按相同的方式进行设置。表 4 显示了各种平台的库路径变量。<br />表 4. 各种平台的库路径变量<br />平台库路径变量AIX、iSeries 和 zOSLIBPATHHP-UXSHLIB_PATHLinuxLD_LIBRARY_PATHSolarisLD_LIBRARY_PATH<br />OutsideIn 转换器无法工作<br />此问题表明 HTML 导出、图像导出和搜索导出转换无法工作。出现此问题通常是由于以下原因:<br />问题:OutsideIn 二进制文件没有执行权限。解决方案:向 OutsideIn 二进制文件赋予完全权限。OutsideIn 二进制可在安装 DCS 的 oiexport 文件夹中找到。例如,在 WebSphere Portal 中,这些二进制文件位于以下路径:<Portal Home>/shared/app/oiexport<br />问题:路径和库路径未设置。解决方案:参考表 4 设置路径和库路径。<br />演示文稿文件的图像转换和 HTML 转换无法工作。<br />当此问题出现时,DCS 生成一个 85 字节或 0 字节的转换文件。<br />问题:由于 Xserver 在转换期间未运行,创建的文件为 85 字节。 解决方案:验证 DISPLAY 环境变量是否指向正在运行的 Xserver。对于 Linux 和 Solaris 平台,可以通过设置 GDFONTPATH 环境变量来替换 Xserver,该环境变量指向包含 True Type 字体(即 TTF 和 TTC)的字体目录。<br />问题:由于图形库安装不正确,创建的文件为 0 字节。解决方案:使用以下命令安装 libXm.so.3 并将该库与 libXm.so.2.0.1 连接起来:ln -sf /usr/X11R6/lib/libXm.so.3.0.2 /usr/X11R6/lib/libXm.so.2.0.1. <br />演示文稿文件的 HTML 转换中的字体显示不正确<br />OutsideIn 转换使用所安装的平台中的字体。Windows 和非 Windows 平台上都会出现此问题。<br />安装源文档中使用的字体和字符集可以解决此问题。例如,如果某个源文档包含带土耳其字符集的 Arial 字体,则 OutsideIn 转换器将搜索相同的字体和字符集组合。如果未找到,则使用系统上存在的最接近的匹配组合。<br />富文本编辑器文件的 HTML 转换中的字体显示不正确<br />富文本编辑器文件包括诸如 Microsoft Word、Lotus Word Pro 和 Open Office 等文件。此问题会在使用非英语源文件时出现,因为用于生成 HTML 文件的字符集没有恰当的字符来表示源文件中存在的双字节字符集 (DBCS) 字符。Windows 和非 Windows 平台上都会出现此问题。<br />要解决此问题,必须在 export.cfg 文件中根据源文档更改输出字符集属性。在 WebSphere Portal 中,该文件存在于以下路径:<br /><Portal Home>/shared/app/export.cfg<br />文本文件的 HTML 转换中的字符显示不正确<br />此问题会由于以下两个原因而出现:<br />DCS 无法识别源文件格式。DCS 无法识别文本文件格式,因为文本文件没有包含任何有关文件格式的信息。 应更改 export.cfg 文件中的 Fallbackformat 属性。在 WebSphere Portal 中,该文件存在于以下位置:<Portal Home>/shared/app/export.cfg将 Fallbackformat 属性更改为源文本文件中使用的格式。<br />输出字符集不适合用于正确显示字符。Windows 和非 Windows 平台上都会出现此问题。应更改 export.cfg 文件中的 Character Set 属性。在 WebSphere Portal 中,该文件存在于以下位置:<Portal Home>/shared/app/export.cfg将 Charset 属性更改为源文件字符的相应字符集。<br />结束语<br />文档转换服务提供了一种将文档转换为所需格式的便利方法。在本文中,您了解了 DCS、DCS 的功能以及它所支持的所有转换。本文还介绍了对 DCS 进行故障诊断的技巧。<br />参考资料<br />您可以参阅本文在 developerWorks 全球站点上的 英文原文 。 <br />参与论坛讨论 。 <br />在 IBM WebSphere Portal 专栏阅读有关文档转换服务的更多信息。<br />参阅 IBM WebSphere Portal 产品页。<br />关于作者<br />Chitresh Sirohi 是一名 IBM 软件工程师,自从 2004 年以来一直在 IBM 工作。在过去的一年里,他一直在从事文档转换服务方面的工作。在此之前,Chitresh 曾从事 IBM WebSphere Everyplace Mobile Portal 方面的工作。您可以通过 chitresh.sirohi@in.ibm.com 与 Sirohi 先生联系。<br />