首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

将含有图形的 RTF 文档转换成 HTML 文档

将含有图形的 RTF 文档转换成 HTML 文档

HTML、sdocbook XML 和 RTF 中的图形表示为了完成图形的转换,首先我们要了解在我们正在处理的格式中是如何表示图形的,这些格式包括 RTF、sdocbook XML 和HTML。因为我们最熟悉 HTML,所以就从它开始。介绍完 HTML 后,我们将回过头简短地介绍在 sdocbook XML 以及 RTF中如何表示图形。
假设我们想表示 images 目录(相对于 Web 服务器的文档根目录)中一个名为 test1.jpg 的 JPG 图形文件。在 HTML中,我们使用:
1
<img src="images/test1.jpg"/>




在 sdocbook XML 中,我们使用:
1
2
3
4
5
<!NOTATION jpg PUBLIC "-/TetraSix/NOTATION Windows Metafile/EN" "jpg">
.
.
.
<graphic format="JPG" fileref="images/test1.jpg"/>




在 RTF 中,我们使用如下标记和十六进制数字:
1
2
3
4
5
6
7
{\shp{\*\shpinst{\pict\wmetafile8\...
.
.
0100090000035b00000002000800000000000400000003010800050000000b0200000000050000000c...
.
.
.




对于在 RTF 中如何表示图形需要做一些解释。RTF 使用 Windows Metafile 格式(WMF)来绘制图形。WMF是向量图形格式(请参阅侧栏中的 )。因此,您在 RTF文档中看见的一系列十六进制数实际上就是关于如何绘制图形的指示信息。      
向量图形对比光栅图形向量图形是一种用数学方式表示图形的方法,完全使用线、点、形状以及将这些元素组合起来的其它填充物。它更象是保存如何绘制图形的指示信息而不是保存图形本身。可以无限地放大或缩小向量图形,进行旋转、缩放、伸展、透明处理和着色等操作。
光栅图形也称为位图。位图由彩色像素的精确栅格组成原样图像。位图很适合表示复杂的图形,例如照片。但是,如果试图缩放或伸展光栅图形而超过其当前的分辨率,则它看起来就会模糊和扭曲。

从 sdocbook XML 到 HTML 的图形表示转换是由 sdocbook XSL 样式表(请参阅 )处理的。在这里我们需要在XSLT 处理器转换 sdocbook XML时告知处理器转换需要的docbook XSL 样式表 。      
从 RTF 到 sdocbook XML 的图形表示转换是由 MajiX 处理的,它具有一些在 sdocbook成为当前状态之前就已经可能确定的缺省设置。这样,如果使用缺省配置,我们将无法用上面提到的样式表将得到的 sdocbook XML转换成 HTML。
幸运的是 MajiX 很灵活,允许我们定制从 RTF 到 sdocbook XML 的映射。
定制 MajiX 以处理 RTF 图形要定制映射,按如下步骤启动 MajiX。
如果使用 JDK 1.2 或更高版本,只需要输入下列命令来运行 MajiX:
1
java -jar <MajiX install path>\lib\majix.jar




否则输入:
1
java -classpath <MajiX install path>\lib\majix.jar com.tetrasix.majix.MajixStandard




定制 sdocbook XML 图形标记要定制 sdocbook XML 图形标记:
  • 单击          Edit tags
  • 在          Special elements下找出          Picture
  • 双击          Picture: <graphic url='...'>
  • 在右边出现的面板上,将          URL of the graphic 更改为           fileref 。
  • 单击          Validate
重复该过程以更改成下列值:
  • 图形扩展名:           jpg
  • 图形记号名称:           <null>
  • 图形记号标识:           <null>
:         <null> 表示不要填写任何东西或去除任何已有的东西,然后单击         Validate。      
另外,如果想更改将用来存放 RTF 文件中图形的目录,还可以更改        Pictures directory。缺省值是         images 。      
提醒请记住将 sdocbook DTD 设置为 sdocbook.dtd 的位置,并且将样式表设置成         null (由于我们将在命令行上指定样式表)。该操作包括在         Edit tags窗口中设置下列内容:      
  • 样式表名称
  • DTD 系统标识
有关这个过程的详细信息,请参阅 中的上一篇文章。      
一旦完成该操作,单击        Close以关闭        Edit tags窗口。选择您想转换成 sdocbook XML 的        input RTFfile。MajiX 将自动生成XML文件,该文件名是通过用 .xml 替换选中的        input RTF file的 .rtf 来生成的。如果愿意可以更改它。      
下一步,我想将 RTF 文档转换成 sdocbook XML,因此将转换模板更改成        sdocbook。最后,单击        Convert。      
产生的结果是表示原来 RTF 文档的 sdocbook XML 文件。缺省情况下,RTF 文档中每个图形的文件都保存在与 sdocbook XML文件同一路径下的         images子目录中。      
处理 WMF 图形文件即使生成的图像带有 .jpg 扩展名,它们实际还是 Windows Metafile 格式(WMF ― 请参阅 )。这个扩展名是我们先前将        Picture extension映射定制为        jpg 时设置的。WMF格式是由 Microsoft 开发用来表示图形的 ― 除非安装了启用 WMF查看的插件,否则任何浏览器都无法识别它。一个取决于是否具有特定插件的用户Web 页面        不是一个好的设计,因此我们将把 WMF文件转换成另一种 Web 浏览器能够识别的格式 ― JPG。要完成转换,请下载 IrfanView(参阅 )。      
要将 WMF 转换成 JPG:
  • 启动 IrfanView,然后选择          File-->Open
  • 查找 WMF 文件(请记住它们具有扩展名 .jpg,并且在 images 子目录中)。
  • 打开其中一个。
  • 选择          File-->Save As并确保          Save as type为          JPG - JPEG Files,保留          File name为原样。         
    要点:不能更改文件名,因为由 MajiX 生成的 sdocbook XML 引用了这个文件名。
  • 单击          Save
  • 当提示确认已经存在该文件时,选择          Yes以覆盖现存文件。
对于所有其它 WMF 文件,请重复这个过程。
将 sdocbook XML 转换成 HTML最后,我们需要将 sdocbook XML 转换成 HTML。对于该操作,您将需要 Xalan 包(请参阅 ),它包含一个 XSLT处理器。一旦安装了该包,则在命令行上输入下列命令(        必须在一行上输入):      
将 sdocbook XML 变换成 HTML 的命令
1
2
3
4
5
6
java -classpath
    <xalan install path>\bin\xalan.jar;<xalan install path>\bin\xerces.jar
    org.apache.xalan.xslt.Process
    -IN <input file>
    -OUT <output file>
    -XSL <location of docbook.xsl>




输入文件是 MajiX 生成的 sdocbook XML 文件,输出文件是要生成的 HTML 文件的名称。docbook.xsl 将位于您安装 DocBook样式表的位置上(请参阅 )。      
一旦完成,就可以在您的浏览器中打开生成的 HTML 文件,        大功告成!
结束语MajiX 为简便地将含有图形的 RTF 文档转换成含有 WMF 图形的 sdocbook XML 格式提供了一种快捷方法。在此基础上,XSLT处理器(例如 Xalan)可以将生成的 sdocbook XML 格式转换成 HTML 以便从 Web 访问,并且可以使用 IrfanView 将 WMF图形文件转换成 Web 友好的 JPG 文件。
返回列表