[COCOON+Jfor]将FO转换为RTF格式文档(二)

2024-01-18 05:38

本文主要是介绍[COCOON+Jfor]将FO转换为RTF格式文档(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

[COCOON+Jfor]FO转换为RTF格式文档()

  文档版本

版本

创建时间

创建人

备注

1.0.0.1

2003-11-15

郑昀

草稿

 

继续阅读之前,我们假设您熟悉以下知识,也可以参考本文后面的附录:

n         Cocoon(Apache组织的XML项目中的八个子项目之一)

n         XSL Formatting Objects (XSL-FO)

n         FOP(Formatting Objects Processor)

n         Jfor(Open-Source Java XSL-FO to RTF converter)

关键词:

cocoonjforxmlxsl-fo fop

 

接上回。

第五步,一个XMLàRTF的例子:

cocoon-2.1.3/build/webapp/

目录下新建一个文件夹,例如名字就叫“RtfDemo”。

 

建立这么几个文件:

sitemap.xmap

 

 

 

 

 

 

  

 

 

 

   

   

 

 

 

  

 

 

 

 

 

 

 

      

      

      

 

 

 

 

sitemap.xmap是一个当前站点的配置,非常重要。“map:match”节点指明了如何转换。

 

新建一个子文件夹Fo,其中放置这么两个文件:

hello.xml

encoding="gb2312"?>

 

 BPA</SPAN><SPAN style="FONT-FAMILY: 宋体; mso-hansi-font-family: Arial; mso-ascii-font-family: Arial; mso-ansi-language: EN-NZ">!</SPAN><SPAN lang=EN-US style="FONT-FAMILY: Arial; mso-bidi-font-family: 'Times New Roman'">

 

  美国当地时间1112日,微软发布了SQL Server 2000的开发支援工具“Best Practices AnalyzerBPA)”。 BPA是一种旨在构筑便于管理的SQL Server应用的工具。不仅可以防止导入SQL Server时遗忘设定等,而且还可以用于数据库的管理。微软从当天起通过该公司的Web站点开始提供该工具的β版。 !

 

page2fo.xsl

 

 

  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

  xmlns:fo="http://www.w3.org/1999/XSL/Format">

 

 

  

   

   

    

                  page-height="29.7cm"

                  page-width="21cm"

                  margin-top="1cm"

                  margin-bottom="2cm"

                  margin-left="2.5cm"

                  margin-right="2.5cm">

      

      

      

    

 

    

      

        

      

    

   

 

   

     

      

                 font-size="10pt"

                font-family="serif"

                line-height="14pt">page

     

 

     

       

     

   

  

 

 

 

   

 

 

 

   

 

 

好了,一切准备就绪。

浏览

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

CocoonApache组织的XML项目中的八个子项目之一根据Apache官方定义Cocoon是一项XML发布框架。它允许你定义XML文档和文档的转换,并最终生成你所选择的表 示形式,例如HTML, PDF, SVG, VRML等等。另外,Cocoon使你能够在XML文件中加入处理逻辑,从而是XML 道具备动态的特性。

官方主页

http://cocoon.apache.org/

 

XSL-FO

XSL 格式化对象规范是 W3C 的正式建议,通常称其为 XSL-FOXSL-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,MIFTXT。最主要的输出指的是PDF

James Tauber FOP 的最初作者。他开发了该工具的原始版本,而且很大方地开放了该代码,后来又将它移交给 Apache XML Project

xml.apache.org/dist/fop 下载 Apache XML 项目的 FOP 软件包。

 

FO工具

JFOR(Java xsl-FO to Rtf converter)是把依照XSL-FO规范的XML文档转换成RTF(Rich-Text Format)格式, 它的目的与把XSL-FO(通常用XSLT生成)文档转换成PDF(使用FOP或其他类似的工具)相似。

WH2FO及其验证工具FOA的作者是Fabio GiannettiWH2FO 是一个处理由Word 2000产生的HTMLJava应用程序,并把它们转换成XML内容文件和XSL样式表文件。从这些文件,一个标准的XSLT处理器可能获得只含有XSL-FO标记的fo文件。也可以应用样式表把XML文件转换成HTML,这样做就丢弃了Word额外补充进来的标记。使用XSL-FO Render,比如FOP,能够进一步渲染成PDF

 

Disclaimers

本文档所包含的信息代表了在发布之日,zhengyun对所讨论问题的当前看法。本文档不应理解为zhengyun一方的承诺,zhengyun不保证所给信息在发布之日以后的准确性。

本文档仅供参考。

用户必须遵守所有适用的版权法。在不对版权法所规定的权利加以限制的情况下,如未得到 zhengyunCSDN.Net明确的书面许可,不得出于任何目的、以任何形式或手段(电子的、机械的、影印、录制等等)复制、传播本文的任何部分,也不得将其存储或引入到检索系统中。

 

 

本文提到的其他产品和公司名称可能是其各自所有者的商标。

Writen by zhengyun_ustc(at)hotmail.com

 



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=12735


这篇关于[COCOON+Jfor]将FO转换为RTF格式文档(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/618179

相关文章

Linux使用dd命令来复制和转换数据的操作方法

《Linux使用dd命令来复制和转换数据的操作方法》Linux中的dd命令是一个功能强大的数据复制和转换实用程序,它以较低级别运行,通常用于创建可启动的USB驱动器、克隆磁盘和生成随机数据等任务,本文... 目录简介功能和能力语法常用选项示例用法基础用法创建可启动www.chinasem.cn的 USB 驱动

IDEA如何将String类型转json格式

《IDEA如何将String类型转json格式》在Java中,字符串字面量中的转义字符会被自动转换,但通过网络获取的字符串可能不会自动转换,为了解决IDEA无法识别JSON字符串的问题,可以在本地对字... 目录问题描述问题原因解决方案总结问题描述最近做项目需要使用Ai生成json,可生成String类型

Python 标准库time时间的访问和转换问题小结

《Python标准库time时间的访问和转换问题小结》time模块为Python提供了处理时间和日期的多种功能,适用于多种与时间相关的场景,包括获取当前时间、格式化时间、暂停程序执行、计算程序运行时... 目录模块介绍使用场景主要类主要函数 - time()- sleep()- localtime()- g

JAVA中整型数组、字符串数组、整型数和字符串 的创建与转换的方法

《JAVA中整型数组、字符串数组、整型数和字符串的创建与转换的方法》本文介绍了Java中字符串、字符数组和整型数组的创建方法,以及它们之间的转换方法,还详细讲解了字符串中的一些常用方法,如index... 目录一、字符串、字符数组和整型数组的创建1、字符串的创建方法1.1 通过引用字符数组来创建字符串1.2

SpringBoot3集成swagger文档的使用方法

《SpringBoot3集成swagger文档的使用方法》本文介绍了Swagger的诞生背景、主要功能以及如何在SpringBoot3中集成Swagger文档,Swagger可以帮助自动生成API文档... 目录一、前言1. API 文档自动生成2. 交互式 API 测试3. API 设计和开发协作二、使用

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

基于C#实现将图片转换为PDF文档

《基于C#实现将图片转换为PDF文档》将图片(JPG、PNG)转换为PDF文件可以帮助我们更好地保存和分享图片,所以本文将介绍如何使用C#将JPG/PNG图片转换为PDF文档,需要的可以参考下... 目录介绍C# 将单张图片转换为PDF文档C# 将多张图片转换到一个PDF文档介绍将图片(JPG、PNG)转

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

easyui同时验证账户格式和ajax是否存在

accountName: {validator: function (value, param) {if (!/^[a-zA-Z][a-zA-Z0-9_]{3,15}$/i.test(value)) {$.fn.validatebox.defaults.rules.accountName.message = '账户名称不合法(字母开头,允许4-16字节,允许字母数字下划线)';return fal