分享
 
 
 

XSL对象格式使用指南(四)

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

下面是我们将在文档中增加列表的内容:

1.If a syllable has an accent mark, that syllable always gets the stress: acción (action), teléfono.

2.If the word ends with a vowel, n, or s, the next-to-last syllable gets the stress: amigo, hablan (they talk), animales.

3.All other words are accented on the last syllable: hotel, similar, espa?ol.

一个列表由四个元素构成。<fo:list-block>属性包含单独的<fo:list-items>属性。列表不同的部件被<fo:list-item-label>属性和<fo:list-item-body>属性固定。你可以通过下面的图表所示属性来设定列表的间隔:

A.provisional-distance-between-starts

B.provisional-label-separation

C.start-indent for list-item-label

D.start-indent for list-item-body

E.end-indent for list-item-label

F.end-indent for list-item-body

现在我们来创建一个XSLT 模板来处理一个规划好的列表。开始先设定列表的各项部件的标签,再通过FOP输出。使用相关的em 间隔,列表将拥有合理的间隔和字体大小:

<xsl:template match="ol">

<fo:list-block space-before="0.25em" space-after="0.25em">

<xsl:apply-templates/>

</fo:list-block>

</xsl:template>

<xsl:template match="ol/li">

<fo:list-item space-after="0.5ex">

<fo:list-item-label start-indent="1em">

<fo:block>

<xsl:number/>

</fo:block>

</fo:list-item-label>

<fo:list-item-body>

<fo:block>

<xsl:apply-templates/>

</fo:block>

</fo:list-item-body>

</fo:list-item>

</xsl:template>

制作无序列表跟以上类似。在一个无序列表中各部件的相关定义为:

<xsl:template match="ul/li">

<fo:list-item>

<fo:list-item-label start-indent="1em">

<fo:block>

</fo:block>

<!-- etc. -->

定位列表

使用列表样式创建一个有限的表格并定位它们的条款和解说并不能依靠XSLT。我们将在分开的行内放入条款和解说,象普通的HTML所演示的。

<xsl:template match="dl">

<fo:block space-before="0.25em" space-after="0.25em">

<xsl:apply-templates/>

</fo:block>

</xsl:template>

<xsl:template match="dt">

<fo:block>

<xsl:apply-templates/>

</fo:block>

</xsl:template>

<xsl:template match="dd">

<fo:block start-indent="2em">

<xsl:apply-templates/>

</fo:block>

</xsl:template>

这儿是小册子的一部分,展示了怎么规划列表和定位列表。注意下面的文本流程不需要我们做任何改动。

表格

下面显示了一个典型的表格。

Singular Plural

yo canto nosotros cantamos

tú cantas vosotros cantáis

él canta

ella canta ellos cantan

ellas cantan

通过 XSL格式化过的表格有以下元素:

<fo:table-and-caption>

<fo:table-caption>

<fo:table>

<fo:table-column>

<fo:table-header>

<fo:table-row>

<fo:table-cell>

<fo:table-body>

<fo:table-row>

<fo:table-cell>

<fo:table-footer>

<fo:table-row>

<fo:table-cell>

<fo:table> 属性相当于HTML 的<table>标签; <fo:table-body>属性相当于HTML 的<tbody>属性。注意只需要定义 <fo:table-column> 属性,它允许你指定表格队列的宽度。你也可以用标签定义单元格具有相同的队列和范围。<table-and-caption> 元素在当前的FOP执行中不能实现。你必须在<fo:table-column>元素定义column-width 属性来调整表格队列的宽度。FOP不能自动调节并显示你的表格的宽度。

XSLT 可以制作简单的表格,假定已经定位了第一行表格的宽度,还得确定是72象素/英寸宽度单位。但还没有处理行和列的跨距。请看代码示例。

第三人称需要一个<br />标签,可以用FO转换成:

<xsl:template match="br">

<fo:block><xsl:text> </xsl:text></fo:block>

</xsl:template>

表格处理结果显示为:

概要

正如你见到的,XSLT 和 FO相结合允许你将XHTML文档 或其他 XML文档转换成印刷格式。用XSL 的对象格式化功能只能做初步的版面设计。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有