游客:
注册
|
登录
|
帮助
网友俱乐部
»
网络编程
»
XML教程
» XSL对象格式使用指南(一)
网友生活网
|
网友学堂
如何获得金币?
诚招斑竹
IP归属地查询 PR查询 收录查询 whois查询
免费超短2级域名,your.jpy.cc
传世私服
|
传奇世界私服
注册亚洲交友中心,找个人来同居吧!
免费存储空间,免费网络硬盘
‹‹ 上一主题
|
下一主题 ››
投票
交易
悬赏
活动
打印
|
推荐
|
订阅
|
收藏
标题: XSL对象格式使用指南(一)
问天
元帅
UID 11493
精华
187
积分 34201
帖子 33353
威望 91
金币 13148
热心 2617
阅读权限 100
注册 2006-4-7
状态 离线
#1
使用道具
发表于 2007-2-20 11:33
资料
个人空间
主页
短消息
加为好友
XSL对象格式使用指南(一)
World Wide Web 联盟的规范书将可扩展样式语言(XSL)规划成两个部分:
■XSLT用来转换XML文件
■XSL对象格式(XSL FO) 用来详细说明格式语句的 XML函数库。
XSLT 非常容易学习和使用。只需要花费很少的时间,开发者就能将XML 文档转换成可以在用户自己浏览器上看到的HTML 文档。这也是开发者喜欢使用XSLT的原因。
XSL对象格式是一个以XML为基础的扩展函数库,能详细定义标记页数、版面和字体等网页内容信息。XSL FO 扩展语言非常复杂,也很冗长;但只有通过XSL FO 才能快速把XSLT 转换成文档源文件。
除了完全介绍XSL FO,这篇文章还将提供足够的信息和例子来说明怎样使用XSL FO。我们将通过XSL FO学习制作一个西班牙语的评论手册并将它打印出来。我们将使用Apache Software Foundation 的 FOP 工具软件使FO 文件转换成PDF 文件。
初始化
把XSL FO 文件转换成XML 文档,先需要基本的XML处理指令和FO 根元素:
<?xml version="1.0" encoding="utf-8"?>
<fo:root>
文档的结构为:
●主要的版面设计,由以下组成
○文档可能出现的各种页面
○安排这些页面的格式序列
●页面和它们的内容
页面规划
在FO 文档的开始<fo:root> 标签后,我们必须描述文档所拥有的页面类型。文档拥有下面图表中的三种页面。按照空白区域分类为封面、左边页和右边页。封面和左边页在左面有较多的空白区域。每个页面都有页眉和页脚。
让我们从定位页面长度、宽度及空白空间开始。在文章里单位都使用厘米,也可以使用任何CSS 单位,如象素 (pixel)、毫米、英寸等。这些规格被命名为simple-page-master 并用 master-name语句指定。请看代码示例。需要注意的是页面空白区域不能有任何需要印刷出来的内容。
内容区
在所有的印刷品的图表中都会有零星的线条。那是页面的内容区(正式上被称作页面参照区), 在下面可以看出内容区被分成五个区域。
说明
我们必须先了解一些术语。当我们设定页面边的空白时,我们会使用top, bottom, left, and right这样的词汇。因为每个人都认为纸张的一块边缘就是纸张的左边、顶部、底部和右边。当我们谈到内容区域时会使用不同的词汇,因为不是所有的语言都能描述左到右或顶部到底部。
FO 认为一个页面由两种元素构成: block elements (例如文章的段落)它由新的一行起头。inline elements (例如字体的粗体和斜体)。FO的block-progress-direction 决定了段落在页面的位置。before-edge表示在段落之前,after-edge 表示在段落之后。
inline-progress-direction 决定了在一行话中每个字符的位置。start-edge 表示位置在一行话之前, end-edge表示位置在一行话之后。
对于希伯莱语来说,象以下所示:开头和结尾中文字位置与英语习惯是互相对应的。(阿拉伯语的写法也相似)
日语写法有时象下面一样写,下面是XSL 规范手册中的图片:
这种新函数库最大的优势是它使用的语言不受约束。如果你希望页面的标题出现在和普通文本相对应的位置,你可以象下面一样设定 text-align="end"
一个有趣的标题
标题一般在最上方,这样才能吸引读者的注意
如果文档最后要翻译成阿拉伯语或日语,你仍然能确定标题仍然出现在文本相对应的位置。就不需要来回调整文档的左右和上下。
指定区域的尺寸
封面页不需要页眉和页脚,所以我们只需要象以下所示的用粗体指定region-body信息。
<fo:simple-page-master master-name="cover"
page-height="12cm"
page-width="12cm"
margin-top="0.5cm"
margin-bottom="0.5cm"
margin-left="1cm"
margin-right="0.5cm">
<fo:region-body
margin-top="3cm" />
</fo:simple-page-master>
左边页和右边页拥有页眉和页脚,所以我们需要指定region-before 和 region-after的范围。
要点:你得给region-body 指定范围,相当于指定region-before 和region-after 的范围 (FOP 现在不支持region-start 和region-end)。如果你象下面这样做 :
<fo:region-before extent="1cm"/>
<fo:region-after extent="1cm"/>
<fo:region-body
margin-top="0.20cm"
margin-bottom="0.20cm" />
结果会是:
网友
问天
签名 - 网友社区
请您回个帖。谢谢
PR查询
免费域名
免费空间
[广告]
免费域名(Free Subdomain)
免费空间(Free hosting)
PR查询(Google Pagerank)
投票
交易
悬赏
活动
控制面板首页
编辑个人资料
积分交易
公众用户组
好友列表
个人空间管理
基本概况
流量统计
客户软件
发帖量记录
论坛排行
主题排行
发帖排行
积分排行
在线时间
管理团队
管理统计
当前时区 GMT+8, 现在时间是 2008-10-12 01:15
信产部ICP备案:
京ICP备05066424号
北京市公安局网监备案:1101050648号
Powered by
Discuz!
5.5.0
TOP
清除 Cookies
-
联系我们
-
网友俱乐部
-
Archiver
-
WAP