[COCOON+Jfor]将FO转换为RTF格式文档(二)
2007-12-17 10:49
369 查看
[COCOON+Jfor]将FO转换为RTF格式文档(二)
继续阅读之前,我们假设您熟悉以下知识,也可以参考本文后面的附录:
n Cocoon(Apache[/b]组织的[/b]XML[/b]项目中的八个子项目之一[/b])[/b]
n XSL Formatting Objects (XSL-FO)[/b]
n FOP(Formatting Objects Processor)[/b]
n Jfor(Open-Source Java XSL-FO to RTF converter)[/b]
关键词:
cocoon、jfor、xml、xsl-fo fop
接上回。
第五步,一个XMLàRTF的例子:
在
cocoon-2.1.3\build\webapp\
目录下新建一个文件夹,例如名字就叫“RtfDemo”。
建立这么几个文件:
sitemap.xmap[/b]
[/b]
sitemap.xmap[/b]是一个当前站点的配置,非常重要。“map:match[/b]”节点指明了如何转换。
新建一个子文件夹Fo,其中放置这么两个文件:
hello.xml[/b]
和
page2fo.xsl[/b]
好了,一切准备就绪。
浏览
http://localhost:8888/rtfdemo/hello.rtf
就可以看到RTF版本的输出了,你可以另存为hello.rtf:
同时,cocoon的窗口也输出了这个过程:
[/b]
好了,用Cocoon+Jfor这么简单就实现了XMLàRTF。不过,这还是万里长征第一步。
待续。
缩略语清单:
Cocoon:
Cocoon是Apache组织的XML项目中的八个子项目之一,根据Apache官方定义,Cocoon是一项XML发布框架。它允许你定义XML文档和文档的转换,并最终生成你所选择的表 示形式,例如HTML, PDF, SVG, VRML等等。另外,Cocoon使你能够在XML文件中加入处理逻辑,从而是XML管 道具备动态的特性。
官方主页:
http://cocoon.apache.org/
XSL-FO:
XSL 格式化对象规范是 W3C 的正式建议,通常称其为 XSL-FO,XSL-FO 定义了许多 XML 标记,这些标记描述了应如何显示内容。
XSL-FO 文档定义了制作高质量可打印文档时非常重要的几件事情:
· 有关页面的实际大小的信息(信纸和 A4 等等)
· 有关页边距(顶部、左边、底部和右边)、页眉和页脚和页面其它特性的信息
· 有关文本的字体、字体大小、颜色和其它特征的信息
· 要打印的实际文本,由描述段落、突出显示、表等类似物的元素来标记
研读 W3C 站点(w3.org/TR/xsl)上的 XSL-FO 规范(总共 400 页)。
有关 XSL-FO 的更多一般信息,请访问位于 w3.org/style/xsl/ 的 W3C Style 页面。
XSL-FO详细教程:
http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/xml-onlinecourse-bytitle/3B308072632F949FC8256D320006CA3F?OpenDocument
FOP
FOP (Formatting Objects Processor) 是第一个基于XSL:FO的打印格式处理器,也是第一个与输出无关的格式处理器。它是一个Java程序,能够从对象树中读入然后生成渲染过的页面输出到指定的流。目前支持的输出格式有PDF,PCL,PS,SVG,XML(以树形结构表示),打印机,AWT,MIF和TXT。最主要的输出指的是PDF。
James Tauber - FOP 的最初作者。他开发了该工具的原始版本,而且很大方地开放了该代码,后来又将它移交给 Apache XML Project。
从 xml.apache.org/dist/fop 下载 Apache XML 项目的 FOP 软件包。
FO[/b]工具[/b]
JFOR(Java xsl-FO to Rtf converter)是把依照XSL-FO规范的XML文档转换成RTF(Rich-Text Format)格式, 它的目的与把XSL-FO(通常用XSLT生成)文档转换成PDF(使用FOP或其他类似的工具)相似。
WH2FO及其验证工具FOA的作者是Fabio Giannetti。WH2FO 是一个处理由Word 2000产生的HTML的Java应用程序,并把它们转换成XML内容文件和XSL样式表文件。从这些文件,一个标准的XSLT处理器可能获得只含有XSL-FO标记的fo文件。也可以应用样式表把XML文件转换成HTML,这样做就丢弃了Word额外补充进来的标记。使用XSL-FO Render,比如FOP,能够进一步渲染成PDF。
本文档仅供参考。
用户必须遵守所有适用的版权法。在不对版权法所规定的权利加以限制的情况下,如未得到 zhengyun和CSDN.Net明确的书面许可,不得出于任何目的、以任何形式或手段(电子的、机械的、影印、录制等等)复制、传播本文的任何部分,也不得将其存储或引入到检索系统中。
本文提到的其他产品和公司名称可能是其各自所有者的商标。
Writen by zhengyun_ustc(at)hotmail.com
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12735
文档版本
版本 | 创建时间 | 创建人 | 备注 |
1.0.0.1 | 2003-11-15 | 郑昀 | 草稿 |
n Cocoon(Apache[/b]组织的[/b]XML[/b]项目中的八个子项目之一[/b])[/b]
n XSL Formatting Objects (XSL-FO)[/b]
n FOP(Formatting Objects Processor)[/b]
n Jfor(Open-Source Java XSL-FO to RTF converter)[/b]
关键词:
cocoon、jfor、xml、xsl-fo fop
接上回。
第五步,一个XMLàRTF的例子:
在
cocoon-2.1.3\build\webapp\
目录下新建一个文件夹,例如名字就叫“RtfDemo”。
建立这么几个文件:
sitemap.xmap[/b]
<?xml version="1.0"?> <!-- CVS $Id: sitemap.xmap,v 1.12 2003/07/29 03:15:47 vgritsenko Exp $ --> <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0"> <!-- ================== Views ========================= --> <map:views> <map:view name="content" from-label="content"> <map:serialize type="xml"/> </map:view> <map:view from-label="content" name="pretty-content"> <map:transform src="context://stylesheets/system/xml2html.xslt"/> <map:serialize type="html"/> </map:view> <map:view name="links" from-position="last"> <map:serialize type="links"/> </map:view> </map:views> <!-- ================ Pipelines ====================== --> <map:pipelines> <map:pipeline> <!-- ================ MyFO2RTF =================== --> [/b] <map:match pattern="hello.rtf">[/b] <map:generate src="fo/hello.xml"/>[/b] <map:transform src="fo/page2fo.xsl"/>[/b] <map:serialize type="fo2rtf"/>[/b] </map:match>[/b] <!-- ================ MyFO2RTF =================== --> [/b] </map:pipeline> </map:pipelines> </map:sitemap> |
sitemap.xmap[/b]是一个当前站点的配置,非常重要。“map:match[/b]”节点指明了如何转换。
新建一个子文件夹Fo,其中放置这么两个文件:
hello.xml[/b]
<?xml version="1.0" encoding="gb2312"[/b]?> <!-- CVS $Id: hello.xml,v 1.3 2003/05/07 04:57:13 vgritsenko Exp $ --> <page> <title>BPA!</title> <content> <para>美国当地时间11月12日,微软发布了SQL Server 2000的开发支援工具“Best Practices Analyzer(BPA)”。 BPA是一种旨在构筑便于管理的SQL Server应用的工具。不仅可以防止导入SQL Server时遗忘设定等,而且还可以用于数据库的管理。微软从当天起通过该公司的Web站点开始提供该工具的β版。 !</para> </content> </page> |
page2fo.xsl[/b]
<?xml version="1.0"?> <!-- CVS $Id: page2fo.xsl,v 1.2 2003/05/07 04:57:13 vgritsenko Exp $ --> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:template match="/"> <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"> <fo:layout-master-set> <fo:simple-page-master master-name="page" page-height="29.7cm" page-width="21cm" margin-top="1cm" margin-bottom="2cm" margin-left="2.5cm" margin-right="2.5cm"> <fo:region-before extent="3cm"/> <fo:region-body margin-top="3cm"/> <fo:region-after extent="1.5cm"/> </fo:simple-page-master> <fo:page-sequence-master master-name="all"> <fo:repeatable-page-master-alternatives> <fo:conditional-page-master-reference master-reference="page" page-position="first"/> </fo:repeatable-page-master-alternatives> </fo:page-sequence-master> </fo:layout-master-set> <fo:page-sequence master-reference="all"> <fo:static-content flow-name="xsl-region-after"> <fo:block text-align="center" font-size="10pt" font-family="serif" line-height="14pt">page <fo:page-number/></fo:block> </fo:static-content> <fo:flow flow-name="xsl-region-body"> <xsl:apply-templates/> </fo:flow> </fo:page-sequence> </fo:root> </xsl:template> <xsl:template match="title"> <fo:block font-size="36pt" space-before.optimum="24pt" text-align="center"><xsl:apply-templates/></fo:block> </xsl:template> <xsl:template match="para"> <fo:block font-size="12pt" space-before.optimum="12pt" text-align="center"><xsl:apply-templates/></fo:block> </xsl:template> </xsl:stylesheet> |
浏览
http://localhost:8888/rtfdemo/hello.rtf
就可以看到RTF版本的输出了,你可以另存为hello.rtf:
同时,cocoon的窗口也输出了这个过程:
12:39:40.852 EVENT Started SocketListener on 0.0.0.0:8888 12:39:40.852 EVENT Started org.mortbay.jetty.Server@1037c71 jfor.INFO:jfor V0.7.1 - setting up conversion... jfor.INFO:Parsing xsl:fo document... jfor.INFO:Writing out RTF... jfor.INFO:Done converting xsl:fo to RTF. jfor.DEBUG:conversion took 80 milliseconds. jfor.INFO:jfor V0.7.1 - setting up conversion... jfor.INFO:Parsing xsl:fo document... |
好了,用Cocoon+Jfor这么简单就实现了XMLàRTF。不过,这还是万里长征第一步。
待续。
缩略语清单:
Cocoon:
Cocoon是Apache组织的XML项目中的八个子项目之一,根据Apache官方定义,Cocoon是一项XML发布框架。它允许你定义XML文档和文档的转换,并最终生成你所选择的表 示形式,例如HTML, PDF, SVG, VRML等等。另外,Cocoon使你能够在XML文件中加入处理逻辑,从而是XML管 道具备动态的特性。
官方主页:
http://cocoon.apache.org/
XSL-FO:
XSL 格式化对象规范是 W3C 的正式建议,通常称其为 XSL-FO,XSL-FO 定义了许多 XML 标记,这些标记描述了应如何显示内容。
XSL-FO 文档定义了制作高质量可打印文档时非常重要的几件事情:
· 有关页面的实际大小的信息(信纸和 A4 等等)
· 有关页边距(顶部、左边、底部和右边)、页眉和页脚和页面其它特性的信息
· 有关文本的字体、字体大小、颜色和其它特征的信息
· 要打印的实际文本,由描述段落、突出显示、表等类似物的元素来标记
研读 W3C 站点(w3.org/TR/xsl)上的 XSL-FO 规范(总共 400 页)。
有关 XSL-FO 的更多一般信息,请访问位于 w3.org/style/xsl/ 的 W3C Style 页面。
XSL-FO详细教程:
http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/xml-onlinecourse-bytitle/3B308072632F949FC8256D320006CA3F?OpenDocument
FOP
FOP (Formatting Objects Processor) 是第一个基于XSL:FO的打印格式处理器,也是第一个与输出无关的格式处理器。它是一个Java程序,能够从对象树中读入然后生成渲染过的页面输出到指定的流。目前支持的输出格式有PDF,PCL,PS,SVG,XML(以树形结构表示),打印机,AWT,MIF和TXT。最主要的输出指的是PDF。
James Tauber - FOP 的最初作者。他开发了该工具的原始版本,而且很大方地开放了该代码,后来又将它移交给 Apache XML Project。
从 xml.apache.org/dist/fop 下载 Apache XML 项目的 FOP 软件包。
FO[/b]工具[/b]
JFOR(Java xsl-FO to Rtf converter)是把依照XSL-FO规范的XML文档转换成RTF(Rich-Text Format)格式, 它的目的与把XSL-FO(通常用XSLT生成)文档转换成PDF(使用FOP或其他类似的工具)相似。
WH2FO及其验证工具FOA的作者是Fabio Giannetti。WH2FO 是一个处理由Word 2000产生的HTML的Java应用程序,并把它们转换成XML内容文件和XSL样式表文件。从这些文件,一个标准的XSLT处理器可能获得只含有XSL-FO标记的fo文件。也可以应用样式表把XML文件转换成HTML,这样做就丢弃了Word额外补充进来的标记。使用XSL-FO Render,比如FOP,能够进一步渲染成PDF。
Disclaimers:
本文档所包含的信息代表了在发布之日,zhengyun对所讨论问题的当前看法。本文档不应理解为zhengyun一方的承诺,zhengyun不保证所给信息在发布之日以后的准确性。本文档仅供参考。
用户必须遵守所有适用的版权法。在不对版权法所规定的权利加以限制的情况下,如未得到 zhengyun和CSDN.Net明确的书面许可,不得出于任何目的、以任何形式或手段(电子的、机械的、影印、录制等等)复制、传播本文的任何部分,也不得将其存储或引入到检索系统中。
本文提到的其他产品和公司名称可能是其各自所有者的商标。
Writen by zhengyun_ustc(at)hotmail.com
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12735
相关文章推荐
- [COCOON+Jfor]将FO转换为RTF格式文档
- [COCOON+Jfor]将FO转换为RTF格式文档(二)
- [COCOON+Jfor]将FO转换为RTF格式文档(二)
- [COCOON+Jfor]将FO转换为RTF格式文档(二)
- [COCOON+Jfor]将FO转换为RTF格式文档(二)
- 把Doc文档转换成rtf格式 [C#]
- C#实现将Doc文档转换成rtf格式的方法示例
- 把Doc文档转换成rtf格式 (转载)
- 把Doc文档转换成rtf格式
- 支持Word文档和其他文件格式间的转换的控件Spire.Doc for .NET
- 把Doc文档转换成rtf格式
- [COCOON+Jfor]将FO转换为RTF格式文档
- 把Doc文档转换成rtf格式
- 如何用C#把Doc文档转换成rtf格式
- 如何用C#把Doc文档转换成rtf格式
- 结合Vim ghostscript 将源代码文件转换成语法高亮的pdf格式文档
- 利用python将图片转换成excel文档格式
- Word组件Spire.Doc 教程:在Word文档中转换文件格式
- 分享把pdf文档转换成word格式的方法
- DOC 转换给 PDF 格式文档