XSL-FO 基础知识(三)

2023-11-15

基本块格式化 第 1 页(共4 页)


既然您已经接触到了 <fo:block><fo:inline> 元素的一些基本知识,您可以研究它们的更多特性以及用文本块可以做的其它一些事情。让我们首先看看上一章中介绍的 <fo:block>


<fo:block font-size="14pt" line-height="17pt">
  This is a paragraph of text.  Notice that as 
  <fo:inline font-style="italic">this meaningless 
  prose</fo:inline> drones on and on, the FOP 
  software automatically calculates line breaks for us.  
  Isn't that fascinating?
</fo:block>

该示例使用 line-height 特性来更改行间距。如果不使用该特性,line-height 会和 font-size 相同。使 line-heightfont-size 大 3 到 6 个点通常是好的做法;如果行与行之间没有小的空间,文本可能会难以辨认和阅读。所需的空间大小取决于字体的特征和文本列宽;如果您正与团队中的图形设计师一起工作,那么请遵循您的这位专家对该值的建议。

<fo:inline> 元素进行文本格式化 第 2 页(共4 页)


下面介绍如何用 XSL-FO <fo:inline> 元素来格式化文本:

  • 粗体字:使用带 font-weight="bold" 属性的 <fo:inline> 元素。
  • 斜体字:使用带 font-style="italic" 属性的 <fo:inline> 元素。
  • 等宽字:使用带 font-family="monospace" 属性的 <fo:inline> 元素。
  • 更改字体:要采用 serif 字体(通常类似于 Times-Roman),可使用带 font-family="serif" 属性的 <fo:inline> 元素。要采用 sans serif 字体(通常类似于 Arial),可使用属性 font-family="sans-serif"(请参阅 FOP 文档以了解如何将机器上安装的字体转换为 FOP 可以使用的字体)。

关于特性的一句话 第 3 页(共4 页)


即使简单的 XSL-FO 文件也会用到几个特性,如 font-sizeline-heightfont-style。许多 XSL-FO 特性与您可能知道的 CSS 特性相同。XSL-FO 和 CSS 还有共同之处:即元素常常从其祖先元素继承特性。下面还是那个示例段:


    <fo:flow flow-name="xsl-region-body">
      <fo:block font-size="14pt" line-height="17pt">
        This is a paragraph of text.  Notice that as 
        <fo:inline font-style="italic">this meaningless 
        prose</fo:inline> drones on and on, the FOP 
        software automatically calculates line breaks for us.  
        Isn't that fascinating?
      </fo:block>
    </fo:flow>

请注意,在定义 <fo:inline> 元素时,示例没有指定 font-sizeline-height 特性。那是因为那些特性是从包含 <fo:inline> 元素的 <fo:block> 元素继承而来。

关于特性要记住的另一件事:XSL-FO 特性只是 XML 属性。

您会注意到我在本教程中将特性(property)和属性(attribute)互换使用。XSL-FO 规范也是这样做的。

字符实体 第 4 页(共4 页)


以下是对于文本格式化要记住的另一方面:字符实体。不象 HTML,XSL-FO 没有定义字符实体。这意味着每次您想使用字符实体时,必须自己定义它。下面是定义字符实体的语法:


<!DOCTYPE fo:root [
  <!ENTITY frac14 "&#188;">
]>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
         xmlns:fox="http://xml.apache.org/fop/extensions"> 

该代码定义了一个实体,并将它与一个特定字符相结合(DOCTYPE 关键字后的第一个单词必须是文档根元素的名称)。一旦您已经定义了字符实体,就可以在 XSL-FO 文档中使用它,就象您在 HTML 文档中所做的那样。当您在本教程的后续部分“XSL 格式化对象(XSL Formatting Object,XSL-FO)高级技术”阅读到无序列表时,您将看到另一个在 XSL-FO 中使用字符实体的示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XSL-FO 基础知识(三) 的相关文章

  • 由于 MIME 类型不受支持,拒绝应用样式

    我不断收到一条错误消息 指出 MIME 类型 text html 不可执行或不是受支持的样式表 MIME 类型 并且启用了严格的 MIME 检查 我的链接代码是
  • 通过 JavaScript 检测浏览器换行

    我需要 javascript 来检测每个浏览器包装的文本行并将其包装到 span class line 我读过一些关于测量每个单词的 y 轴的文章 但还没有看到可靠的解决方案 这是我到目前为止所拥有的 看到它Jsfiddle http js
  • 当 URL 包含片段时,iframe 会导致父元素在 Google Chrome 上向上滚动

    在 Google Chrome 37 0 2062 122 OSX Windows 上 具有包含片段的 URL 的 iframe 会导致父元素向上滚动 它只发生在 Chrome 中 在 Safari 和 Firefox 中测试 这是显示问题
  • IE7 显示问题:菜单中的表格

    我写了一个菜单样式 在 IE8 FF3 6 GC7 中运行良好 现在的问题是 我的老板希望它甚至可以在 IE7 上运行 我真的很努力地让它在 IE7 上运行 但无法获得相同的外观 menu css a outline none menu m
  • Flexbox 不适用于 iPad 和 Safari [重复]

    这个问题在这里已经有答案了 我在网站上使用 Flexbox 但它在 iPad Air iPad 3 和 Safari PC 上崩溃 设计和代码与此 codepen 类似 http codepen io anon pen xwJzEg htt
  • 如何动态打破 FlexBox 列以开始新列

    I have a dynamic list of items containing text placed column wise which I need to break after every 5th item 我只有两个限制 每个
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • 垂直对齐复选框标签? [复制]

    这个问题在这里已经有答案了 我有这样的复选框
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 禁用引导列上的滚动

    我正在尝试禁用引导列上的滚动 这是我的代码 div class container fluid h 100 div class row h 100 div class col 4 h 100 bg dark fixed div div cl
  • 如何指定网站的语言? (HTML?)

    如何指定页面采用某种语言以便搜索引擎可以理解 这是我放在顶部的元标记吗 如果是 您知道大多数搜索引擎是否使用它来确定语言吗 我已将一页英文内容转换为几种不同的语言 并希望将该信息包含在 html 中 让搜索引擎知道他们正在处理哪种语言 快速
  • 如何设置菜单按钮和菜单项的样式

    我尝试更改菜单按钮中的样式 我可以更改菜单按钮样式 但不能更改其菜单项 无论我尝试什么 菜单按钮内的菜单项都保持不变 menu button fx background color black menu button label fx ba
  • 在requestAnimationFrame中使用clearRect不显示动画

    我正在尝试在 HTML5 画布上做一个简单的 javascript 动画 现在我的画布是分层的 这样当我收到鼠标事件时 背景层不会改变 但带有头像的顶层会移动 如果我使用 requestAnimationFrame 并且不清除屏幕 我会看到
  • 如何将 Google Charts 与 Vue.js 库一起使用?

    我正在尝试使用 Vue js 库使用 Google Charts 制作图表 但我不知道如何添加到 div 这是我尝试做的 这是如何使用普通 javascript 添加图表 这是文档的代码示例 https developers google
  • Iframe 相对路径挑战

    我有一个页面 在页面内有一个 Iframe 目录如下 Folder1 Folder2 IframeCSS IframeCSS Css iframePage1 html stuff css parentPage1 html 在 iframeP
  • 如何阻止破折号自行包裹?

    我有一个标题 标题最后一个单词的末尾是一个破折号 单词和破折号之间没有空格 当浏览器窗口变小时 破折号会中断并换成新行 在自己的行上有一个破折号是不好的排版 如何停止破折号之前的换行 以便最后一个单词运行到新行 这是代码 h1 XYZ co
  • 更改文本输入标签中文本的大小?

    我有一个很大的文本输入框 但我无法更改字体大小
  • 如何在jquery中以相反的顺序迭代元素? [复制]

    这个问题在这里已经有答案了 我是jquery的新手 我想知道如何使用each 在jquery中以相反的顺序迭代表单元素 任何帮助 将不胜感激 尝试这个 input get reverse each function
  • 如何仅在最后一个
  • 处给出透明六边形角度?
  • 我必须制作这样的菜单 替代文本 http shup com Shup 330421 1104422739 My Desktop png http shup com Shup 330421 1104422739 My Desktop png
  • 无效字符错误:“fred”

    我确信他一定是一个新手问题 简单来说 我想定义我的第一个 Polymer dart 组件 只是我一直在同一个减速带上踢脚趾 为了使事情变得非常简单 我将其简化为一个非常简单的示例 我做了一个简单的rename示例 跑表 来自 Dart 组件

随机推荐

  • EAN13条形码绘制(Delphi版)

    单元声明 unit UnitEAN https wenku baidu com view d61eec0dc4da50e2524de518964bcf84b9d52d0d html 共有95 18 113条数据模块 1表示黑 0表示白 左侧
  • Python版SSH远程服务器使用Paramiko和scp库

    作为开发人员 配置或调试VPS通常是无法解决的 而且并不是特别有意义 充其量 您的应用程序可能最终将以与本地环境相同的方式运行 我们如何才能使这一不可避免的工作变得更好 好吧 我们可以使其自动化 设置SSH密钥 要验证SSH连接 我们需要设
  • 图像处理算法大全(基于libyuv或IPP)----NV12转成I420,RGB24,ARGB集合

    周星星教你学ffmpeg 技巧 libyuv源码 static void NV12ToI420 BYTE pNV12 Y BYTE pNV12 UV BYTE pYV12 int width int height libyuv NV12To
  • 在Nginx中让所有HTTP请求转发到HTTPS

    title 在Nginx中让所有HTTP请求转发到HTTPS date 2017 10 23 20 50 24 tags nginx http https categories 运维 背景 在启用HTTPS协议的网站上 通常会让用户始终以
  • Sklearn常用API以及代码

    1 ensemble 集成 VotingClassifier 投票分类器 由若干异质分类器组成 例如LR RF朴素贝叶斯 GNB import numpy as np from sklearn import datasets from sk
  • 2022年业绩逆势增长,“要强”蒙牛再创蒙牛

    2022年是蒙牛 再造一个新蒙牛 五年计划的第二年 也是乳企赛道疫情以来最为艰难的一年 这一年里 不仅有疫情多点散发所带来的线下渠道不畅 也有原材料价格飙涨所导致的成本高企 在这种形势下 蒙牛尽管遭遇多重困难 但仍拿出了一份亮眼的成绩单 其
  • Eclipse 连接 SQL Server 2008数据库,运行JAVA代码时出现:‘sa’用户登录失败

    前几天用Eclipse 连接 SQL Server 2008数据库 运行JAVA代码时总是出现 sa 用户登录失败 我的连接方法都是按照网上找的 一直在寻找错误的原因 网上说 1 sql server的密码是否正确 2 sql server
  • 西瓜书《机器学习》课后答案——chapter7

    7 1 试使用极大似然法估计西瓜数据集3 0中前3个属性的类条件概率 解答 假设类别C为随机变量 则它总共有两种取值 好瓜和坏瓜 前3个属性分别为色泽 根蒂和敲声 分别用随机变量R S T表示 并且可取值分别为 青绿 乌黑 浅白 38738
  • Array K-Coloring【Codeforces Round #531 (Div. 3)B】【构造】

    题目链接 题意 给你N长度的数组 以及K种颜色 要求的是我们能否使用全部K种颜色来填充每个数组元素 其中数组中的每个相同值元素的染色是不能相同的 并且 要用完所有K个颜色 能达到以上要求 则是YES并输出染色 否则 只有NO 我WA在了第6
  • 一个或多个筛选器或者Listeners启动失败

    今天使用tomcat直接部署项目 之前一直都是在idea直接部署 但是在启动tomcat的过程中一直报一个或多个筛选器或者Listeners启动失败的错误 之前在idea部署的时候也出现过这个错误 然后就根据网上的答案说 lib 下可能没有
  • 数据结构初阶 ---- 顺序表的(C语言)实现

    目录 一 动态顺序表的结构体定义 二 动态顺序表的函数接口 1 顺序表的初始化 2 顺序表的销毁 3 打印结构体数组内的内容 4 检查数组容量 容量不够时 扩容 5 顺序表的尾插 6 顺序表的尾删 7 顺序表的头插 8 顺序表的头删 9 顺
  • jffs2:You cannot use older JFFS2 filesystems with newer kernels错误

    jffs2 You cannot use older JFFS2 filesystems with newer kernels错误 原因 可能在于交叉编译linux内核时 没有打开jffs2系统的使能开关 解决方法 在内核文件中执行make
  • spring mvc 中对静态资源的访问配置

    在web xml中配置spring mc servlet 对url pattern设置时 排除在spring的servlet之外
  • netty的线程池-----揭示了使用两个线程池的原因

    线程模型是Netty的核心设计 设计地很巧妙 之前项目中有一块处理并发的设计和Netty的Eventloop单线程设计类似 效果得到了实证 Netty5的类层次结构和之前的版本变化很大 网上也有很多文章写Netty的线程模型 Reactor
  • windbg+vmware双机调试配置教程及可能出现的问题

    一 设备参数说明 1 调试机 物理机windows 10 windbg 10 0 22000 194 2 被调试机 虚拟机windows xp sp3 3 虚拟机软件 VMware workstation 16 1 2 二 虚拟机配置调试串
  • Python面试题整理(选择题及其答案)

    Python面试题 选择题及其答案 往期文章 Python知识点整理 完整 Python知识点整理 图文结合近三万字 史上最全 Python二级考试知识点 史上最全 Python二级考试试题汇总 史上最全 2023年Python选择题及答案
  • 学习之笔记

    Hook技术被广泛应用于安全的多个领域 比如杀毒软件的主动防御功能 涉及到对一些敏感API的监控 就需要对这些API进行Hook 窃取密码的木马病毒 为了接收键盘的输入 需要Hook键盘消息 甚至是Windows系统及一些应用程序 在打补丁
  • Matlab求解矩阵方程

    描述 使用matlab求解某个方程 方程里面的变量和参数都是矩阵形式 代码 clc clear syms x A eye 4 B eye 4 x solve A x inv A B x就是方程的解 下面是另外一种形式 和上面是等同的 cle
  • UE4学习日记——蓝图中的各种颜色代表什么

    节点类型颜色 白色 执行线 蓝色 调用的函数或事件 暗蓝色 结构体 草绿色 流程切换 绿色 纯函数 通常用于获取什么 青色 试着对象转换 紫色 函数定义 灰色 宏 红色 事件的定义 土黄色 时间轴 数据类型颜色 白色线条 执行线 程序的执行
  • XSL-FO 基础知识(三)

    基本块格式化 第 1 页 共4 页 既然您已经接触到了