首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
X86
» HTML 至格式化对象(FO)转换指南(1)概述
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
HTML 至格式化对象(FO)转换指南(1)概述
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-7-15 08:16
|
只看该作者
HTML 至格式化对象(FO)转换指南(1)概述
我们设计 HTML 页面都是为了使它们在屏幕上看起来很好,但打印这些 Web 页面却往往是事后才想到的事。要创建 Web 页面的可打印版本,最好的方法是使用 XSLT 和 XSL-FO 来生成 PDF 文件。您可以利用开放源码 XSLT 处理器、XSL 格式化对象(XSL Formatting Objects,XSL-FO)词汇表和格式化对象引擎来做这项工作。如果您已经知道如何使用 XSL-FO 和 XSLT,那么本指南可为您提供有价值的参考资料:它逐一介绍最常用的 HTML 标记并定义了如何将每个标记转换成格式化对象。(如果您需要关于使用 XSL-FO 的背景知识,可以尝试学习有关这一主题的
developerWorks
教程,在 中可以很容易找到这些教程。)
本指南包含若干示例,这些示例说明了如何编写将 HTML 元素转换成相应格式化对象的 XSLT 样式表,格式化对象是用 XSL-FO 来处理文档的基本构件。
关于本指南中 XSLT 模板的简要说明;几乎所有的模板都包含以下文本:
1
<xsl:apply-templates select="*|text()"/>
该元素告诉 XSLT 处理器获取当前元素的所有文本和子元素并转换它们。这一递归技术确保所有 HTML 元素都能得以处理,不管它们是如何相互嵌套的。有关 XSLT 和 XSL-FO 技术的更多信息,请参阅本指南结尾处的 。
示例的上下文关于本参考资料的上下文,您可以打开 HTML 文档 everything.html (
下载
x-xslfo2app-samples.zip 查看 everything.html),它包含本指南中讨论的所有元素。您还可以参阅 XSLT 样式表 ,它包含本指南中引用的所有模板,以及本教程姊妹篇中介绍的大多数高级技术。要对 HTML 文件使用该样式表,请使用以下命令:
1
2
> java org.apache.xalan.xslt.Process -in everything.html
-xsl xhtml-to-xslfo.xsl -out everything.fo
顺便说一下,必须在一行上输入该命令,这里是为了适应
developerWorks
格式才将它分成两行。该命令告诉 Xalan 样式表引擎(在教程示例中使用)去读取文件 everything.html ,然后使用 xhtml-to-xslfo.xsl 样式表中的规则来转换它。转换的结果写入文件 everything.fo 。如果您想查看由该样式表创建的格式化对象,可以查看文件 。
有了 XSL-FO 文件之后,就可以使用以下命令来创建 PDF:
1
> java org.apache.fop.apps.Fop everything.fo everything.pdf
以下是这个 PDF 文件的抓屏:
如果愿意,可以查看文件 。
不见了的 HTML 元素出于种种原因(大多数是合理原因),本指南没有介绍某些 HTML 元素。不介绍它们的主要原因是它们在 PDF 文件中没有意义,这是格式化对象转换最常见的结果。略去的 HTML 元素中有些已经被 W3C 弃用,这也是不介绍它们的一个正当理由。有些元素在 PDF 上下文中可能对于您是有意义的。请告诉我您的想法;如果您有很好的理由将其它 HTML 元素加入到本指南,我将对其加以考虑(您可以使用本指南结尾处的反馈表单来提出建议)。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议