写点什么

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:352840
用户头像

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

关注

评论

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

科幻成真,未来已来!“2024上海智能机器人展会”大赏前瞻

AIOTE智博会

机器人展 智能机器人展 机器人展览会

智能制造领域智能问答系统

悦数图数据库

深入理解Transformer技术原理 | 得物技术

得物技术

架构 Transformer AIGC 企业号 4 月 PK 榜 注意力机制

国际标准图查询语言 GQL 正式发布,悦数图数据库业界首家原生支持

悦数图数据库

从源码到实战:探寻App中的等待神秘力量,强制等待vs隐式等待

测试人

软件测试 自动化测试 测试开发

GaussDB(DWS)基于Flink的实时数仓构建

华为云开发者联盟

数据库 华为云 华为云开发者联盟 华为云GaussDB(DWS) 企业号2024年4月PK榜

天谋科技专家解析自动化领域正在经历的 IT 行业的老路

Apache IoTDB

LED显示屏品质受LED灯珠的影响

Dylan

性能 信息 LED显示屏 全彩LED显示屏 led显示屏厂家

多元 CPU 性能调优的技术挑战、产品设计和业务实践

百度Geek说

cpu 百度智能云 企业号 4 月 PK 榜 btune

垃圾车的新用途:车外装摄像头,结合AI检查市容

算AI

人工智能 创业 AI 创新

SSD 价格已经翻番,还要不要继续选择全闪?

XSKY星辰天合

EC 分布式全闪 三副本

[图数据库]gStore1.2在Ubuntu和Java环境下的安装与试用

alexgaoyh

Java ubuntu 国产化 图数据库 gstore

用户行为分析模型实践(四)—— 留存分析模型

vivo互联网技术

hive 数据分析 Clickhouse 留存分析模型

多高的学历才能轻松找到工作?这个热点有点扯吧~

王中阳Go

Go 面试题 大厂面经 求职面试 面试行情

聊聊Swift中的宏

珲少

文心大模型ERNIE-Tiny:轻量化技术的全面解读

百度开发者中心

人工智能 大模型

长连接网关技术专题(十一):揭秘腾讯公网TGW网关系统的技术架构演进

JackJiang

即时通讯;IM;网络编程

国密加密卡定义以及作用简单说明

行云管家

数据安全 国密 国密加密卡

智能调度|AIRIOT智能车队管理解决方案

AIRIOT

物联网平台 智慧系统 智能车队管理

生态短讯 | Tapdata 与 TDengine 完成产品兼容性互认证,打造物联网实时数据生态

tapdata

利用SEO服务器优化你的网站,获得更多曝光机会

一只扑棱蛾子

服务器

Databend Cloud 正式上线腾讯云市场,加速挖掘数据创新价值

Databend

开放签电子签章第一季度总结和第二季度目标

开放签开源电子签章

开源 电子合同 电子签章

芜湖等保测评机构有哪些?在哪里?

行云管家

等保 等保测评 芜湖

系统logo及版权信息是否支持自定义配置 ?

开放签开源电子签章

版权保护 产品管理

Open WebUI大模型对话平台:适配Ollama的实践与探索

百度开发者中心

人工智能 大模型

华为云CodeArts IDE For Python 快速使用指南

华为云开发者联盟

云计算 华为云 华为云开发者联盟 华为云CodeArts 企业号2024年4月PK榜

容器化Java程序秒级弹性伸缩实践

HelloGeek

Java 容器 弹性伸缩

电商新宠:淘宝拍立淘API接口助力精准搜索商品信息

技术冰糖葫芦

API 接口 API 测试 pinduoduo API

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