70+专家分享实战经验,2024年度AI最佳实践都在AICon北京 了解详情
写点什么

Apache FOP 1.0 业已发布

  • 2010-07-28
  • 本文字数:1438 字

    阅读完需:约 5 分钟

本月 21 日,Apache 基金会发布了 Apache FOP 1.0 ,这是一个已经做了十年的项目。Apache FOP,也叫做格式化对象处理器(Formatting Objects Processor),它开始于 Apache 的 XML 项目中(其中还有 Batik ,它是基于 Java 的 SVG 渲染程序),之后于 2004 年转移到 XMLGraphics 项目中。

Apache FOP 提供了一种方法,让我们可以将 XML 文档转换为各种可打印的格式,像 PDF、PNG,甚至是其他像 HTML 之类的格式。它的历史可以追溯到 W3C 第一次发布 XSL 的时候。 尽管大多数人都将 XSL 与 XSL 转换语言本身直接合并在一起,然而 XSL 主要是为了出版行业而发明的。因此,XSL 的规格包含了语言(可扩展样式表语言 eXtensible Stylesheet Language)和 XSL 格式化对象规范。 以下文字来自于 XSL 摘要

该规范定义了可扩展样式表语言(XSL)的特性和语法,那是一种用来解释样式表的语言。 它包含两个部分:

  1. 转换 XML 文档的语言(XSLT),以及
  2. 指定格式化语义的 XML 词汇表。

大多数人都认为 XSL 实际上就是规范中的第一部分 XSLT。 XSL 规范还定义了一种迷你的语言,使用它可以定义打印的文字按照 XSL 格式化对象或者同一规范中的 FO 方式应该如何排列。 (正是这个名称决定了 Apache FO 处理器的出现,同时也是项目本身的名称。)

尽管 CSS 1 和 CSS 2 分别是在 1996 年 1998 年发布的,但是它们都没有处理与打印相关的需求的能力,像脚注、页码引用、分栏文字的分割流(例如,自动在多个栏中分配文字,而不是将其预先切分为分离的几个 DIV)。在 2001 年,当 XSL FO 作为 XSL 规范的一部分发布的时候,没有什么处理器能够对其进行处理。Apache FOP 是第一个能处理这种格式的处理器,但是它在版本 0.20 (2003 年发布) 停滞了好久,直到重新启动发布了 FOP 0.93 (2007 年发布) 。事实上,几年前,在 Sun 公司,这种分隔方式被用来演示 OSGi 的在 OSGi JSIG 事件中载入不同版本的 JAR 文件的能力。

FO 的示例文档看起来和传统的 XML 文档有些相似,其中带有fo命名空间,它会与http://www.w3.org/1999/XSL/Format绑定。 下面是来自于 http://www.renderx.com/tutorial.html 的示例(一种商业化的 FO 处理器):

复制代码
<?xml version="1.0" encoding="iso-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page">
<fo:region-body margin="1in"/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body">
<fo:block>Hello, world!</fo:block>
</fo:flow>
</fo:page-sequence>
</fo:root>

fo:layout中的内容包含了样式(像页边的空白有多大,是否显示页码等等;它支持多种样式,因此你可以拥有相互不影响的“main page”和“index page”样式),后面是fo:page-sequence,这是与那一组(例如一章中的)页面相关的。在里面的部分,flowblock与 HTML 的divp设置类似。

标签的嵌套显得有些冗长,这通常是 MediaWiki 或者 WikiText 格式的中间交换格式。(Eclipse 的 WikiText 已经可以被转换成为 DocBook 或者 XSL-FO;事实上,很多 DocBook 处理器都能够生成 XSL-FO,然后这种格式可以通过像 Apache FOP 之类的工具编译成 PDF 。)Maven 的站点想要使用Apache FOP,从而生成带有 pdf 插件的 PDF 版本的站点。

目前 Apache FOP 1.0 还无法与 XSL FO 规范完全兼容;兼容性页面列出了更多关于当前支持情况的信息。

查看英文原文: Apache FOP 1.0 released

2010-07-28 09:352284
用户头像

发布了 340 篇内容, 共 129.2 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | 电商业务的性能测试(一): 必备基础知识

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 实战演练基于加密接口测试测试用例设计

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Frida 实现 Hook 功能的强大能力

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试平台开发-前端开发之数据展示与分析

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 实战演示 H5 性能分析

测吧(北京)科技有限公司

软件测试 | 测试开发 | Jenkins中,如何管理用户及其相对应权限?

测吧(北京)科技有限公司

测试

9个 方法预防租赁LED显示屏舞台隐患

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

秋招收到10几个offer 说说我的想法吧

Geek_0c76c3

Java 数据库 开源 程序员 开发

技术分享 | 实战演练

测吧(北京)科技有限公司

测试

喜报!霍格沃兹第二届火焰杯软件测试高校选拔赛荣获大奖

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Pytest 结合 Allure 生成测试报告

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试左移之Sonarqube maven项目分析

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试平台开发-前端开发之Vue router路由设计

测吧(北京)科技有限公司

测试

ElasticSearch 不停服升级实践

移动云大数据

elasticsearch

毕业后什么都不会,找了个培训班学软件测试学了4个月,拿到offer,坐等入职

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 学做测试平台开发-Vuetify 框架

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 接口抓包分析与Mock实战

测吧(北京)科技有限公司

测试

从启动到关闭 | SeaTunnel2.1.1源码解析

Apache SeaTunnel

软件测试 | 测试开发 | 一步一步学测试平台开发-Vue restful请求

测吧(北京)科技有限公司

测试

Qualcomm Atheros wallys QCA9880 Dual Band 2.4GHz 5GHz 2x2 MIMO 802.11ac Mini PCIE WiFi Module//QCA9882 3x3 FCC/CE/IC

wallys-wifi6

QCA9880 QCA9882

软件测试 | 测试开发 | 搞清楚这六个能力模型,轻松应对互联网裁员潮

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 做到这几点,你也能成为 BAT 的抢手人!

测吧(北京)科技有限公司

测试

Java 8的新特性

琦彦

java8 10月月更

软件测试 | 测试开发 | 通用 api 封装实战,带你深入理解 PO

测吧(北京)科技有限公司

测试

持续测试成熟度模型

陈磊@Criss

软件测试 | 测试开发 | 如何安装Jenkins 插件?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | Jenkins通过什么方式报警?

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 静态扫描体系集成

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 测试右移之logstash完整配置实例

测吧(北京)科技有限公司

测试

JVM——内存泄漏与内存溢出

琦彦

JVM 内存泄漏 内存溢出 10月月更

Log4j2远程执行代码漏洞如何攻击? 又如何修复

琦彦

log4j2 Log4j2 漏洞 10月月更

Apache FOP 1.0业已发布_Java_Alex Blewitt_InfoQ精选文章