12

在我工作过的一家公司中,我和我的同事在 XSL-FO 之上实现了一个定制的文档分发系统。

我的任务是获取脚本以传递文档并配置 CUPS 打印服务器和传真服务器,因此我从来没有时间接触 XSL-FO。

我正在考虑在该地区实施一些在那里制作的东西,但我需要一些模板在测试时使用。

既然我已经掌握了 fop 流程,我在哪里可以找到一些关于 XSL-FO 的好教程?

4

8 回答 8

12

我喜欢向人们推荐这篇 2003 年 IBM developerWorks 文章:HTML 到格式化对象 (FO) 转换指南

我不建议使用提供的 .xsl 将 HTML 转换为 FO,而是使用叙述来理解不同的 XSL-FO 构造以及它们与 HTML 的关系(我们都明白)。

于 2008-09-26T03:05:02.293 回答
4

首先,在您购买商业引擎之前,请查看 Apache FOP,它是一个非常可靠的 XSL-FO 引擎。我已将它广泛用于“政府”表单生成。

如果你刚刚开始。W3schools 在学习 XSL-FO 方面非常宝贵:http: //www.w3schools.com/xslfo/default.asp

如果您是 XSL 的新手,我强烈推荐列表 @ http://www.mulberrytech.com/xsl/xsl-list/index.html,即使只是为了寻找常见问题的常见解决方案。

于 2008-09-22T05:05:45.797 回答
4

您还可以尝试使用视觉 xsl-fo 设计器/编辑器。如果您仍想手动编写 XSL,请查看XML 1.1 Bible 中的 XSL-FO 教程

于 2010-02-27T22:31:58.513 回答
3

这里也是一个很好的 XSL-FO 新手教程。本文档通过示例快速介绍了 XSL 格式化对象。 http://www.renderx.com/tutorial.html

于 2010-10-26T13:46:05.773 回答
2

我也认为 O'Reilly 的书将是唯一的一本书,那里没有太多关于 XSL-FO 的内容......坦率地说,我认为这是一种死技术,对于普通程序员来说太复杂了,无法学习,这需要数周时间 - 再加上好的格式化程序非常昂贵。

这不是您问题的答案,但如果有人问我,我建议您不要学习 XSL-FO。这是寻找 IMO 问题的解决方案。

于 2008-09-21T20:55:54.413 回答
1

http://www.w3.org/TR/xsl/

http://www.renderx.com/tools/xep.html有一些很好的例子

http://my.safaribooksonline.com/0596003552

于 2009-02-02T22:53:01.400 回答
1

我认为要做好 xsl-fo,您需要牢牢掌握几种不同的技术。

首先是 XSLT 和 XPath,因为您将在 XSL-FO 中使用它们。有一些工具可以让您直观地创建 xsl-fo,但我看到的那些非常昂贵,所以我倾向于推出自己的 xslt,因为这些最终比生成的 xsl-fos 简单得多。

然后你需要对 fop 有扎实的把握,这似乎你已经掌握了,但对于其他任何人来说,如果你熟悉 css,你会熟悉最常见的样式,但对于特定的 fop 功能,做一些研究是有意义的。

进入它的最好方法是拿一些基本的例子并玩弄它们。在这里,Apache FOP 是一个很棒的开源处理器,如果您知道如何使用它,您可以将其用于专业目的。

像氧气 xml 这样的编辑器具有内置的 fop 支持,可以轻松快速地测试您的 xsl-fo,并且应该更容易学习 xsl-fo,但您也可以从命令行和其他几个编辑器执行相同的操作。

我推荐 Michael Kays XSLT 书,因为它是 XSLT “XSLT: Programmer's Reference 2nd Edition”链接的优秀参考书

此外,Dave Pawson 的 FOP 书是我所知道的最好的 XSL-FO 参考书,尽管不可否认,可用的书不多。它有点过时,但它是核心概念的一个很好的参考,对于刚开始的人来说可能会使其不那么复杂。关联

他的网站是关于奇怪问题或提高您对 xsl fo 的一般理解的重要提示来源。http://www.dpawson.co.uk/xsl/index.html

于 2009-12-17T21:34:13.633 回答
0

这可能不是您所需要的,但如果您只是想要一些 XSL-FO 测试模板,您可以在 Word 中使用转换来生成 XSL-FO。

我以前学习的书来自 O'Reilly ( XSL-FO ),因为坦率地说,关于这个主题的资源非常少。

于 2008-09-20T18:35:50.327 回答