我想将一些 xml 转换为像 pdf 文档这样的杂志。很像 LaTeX 允许你做的事情,但是我找不到任何关于这个主题的新书或在线教程。是否值得投资使用这项技术?
另外,我查看了 Apache XSL-FO 项目,他们的最后一个版本是在 2008 年 8 月。
ps 商业包不是一个选项:(
我想 XSL-FO 处理器可用性较低的唯一原因是它的格式化选项非常大而且也非常复杂。
由于涉及的复杂性,没有人愿意花这么多精力将其开源。我听说有相当多的可用于 XSL-FO 的酷炫商业处理器。甚至 Apache FOP 也可以很好地从中生成 pdf。
虽然我没有使用过 LuaTex,但我发现 XSL-FO 工作起来很有趣。它也只使用 XML 来生成 pdf。如果你问我,我会告诉你,它简单而强大。而且我也不希望它死.. :)
目前除了 FOP 和其他一些(恕我直言)不可用的免费 XSL-FO 格式化程序。但这并不意味着 XSL-FO 已经死了,它在技术文档中被大量使用。
创建一个功能齐全、符合标准的 XSL-FO 格式化程序非常困难,而 FOP 还没有。我猜他们被标准的纯粹复杂性所困扰。
我的公司目前正在创建另一个 XSL-FO 格式化程序,专注于基于LuaTeX的高排版输出,所以我知道我对这个领域有所了解。目前还没有决定这是否会开源。(对不起,我不能帮你)。
所以我的回答是:使用 Apache FOP。即使最后一次更改是在一段时间前,它在这一点上也非常有用。XSL-FO 远未消亡。如果您负担得起,请使用像样的 XML 编辑器(例如OxygenXML)进行编辑,它会使编辑 XSL 样式表变得有趣。(提到这个我没有得到任何钱。)
不,既不死也不利基。
2010 年的问题指出之前的 FOP 版本是在 2008 年。截至 2018 年,FOP 每年都会在 2015 年至 2018 年之间发布(参见https://xmlgraphics.apache.org/fop/news.html)。如果您还要查看商业格式化程序,Antenna House 大约每 45 天发布一次维护版本(请参阅https://www.antennahouse.com/antenna1/news-events/)。
https://www.antennahouse.com/antenna1/formatter/目前有汽车手册、年度报告和税表样本的链接。德国的火车票是使用 XSL-FO 生成的。我有时会惊讶于它的使用范围之广。
周六,2013 年 11 月 2 日,Liam RE Quin 写道: “我们已经关闭了工作组,因为没有足够的人参与”,W3C XML 活动负责人,关于XSL-FO 2.0连续性的失败。
工作草案的最后一次更新是在 2012 年 1 月,现在确认:W3C 停止开发 XSL-2。
为什么?它将被CSS3-page取代,请参阅 Use of XSL-FO, CSS3 instead of CSS2 to create Paginated documents like PDF?
PS:开源项目早染。例如,Apache XSL-FO 项目的最后一个版本是在 2008 年 8 月,然后是 2012 年(感谢@mzjn 的更新!),有(FOP v1.1)约 100 个已修复的错误。
编辑:2015 年 6 月,XSL-FO 2.0仍然是“W3C 工作草案 17”(2012 年 1 月)。但是我们需要更正关于 Apache 的 PS(感谢 @mzjn!),它作为Apache FOP 2.0发布。像3B2这样的软件也得到了维护。
在开发 XSL-FO 处理器时,您必须考虑格式化要求的复杂程度以及任何处理器满足您的需要的程度。FOP 当然不具备您在 Antenna House 产品中可以找到的所有功能,但可能具备您想要的基本杂志布局的大部分功能。
至于 FO 的复杂性,它当然涵盖了广泛的格式化需求,但通过一些练习来掌握基础知识并不难。如果您对 XSL 有一定的工作知识并且有任何 CSS 经验,那么您应该轻松掌握 FO 基础知识。通过谷歌搜索、阅读和从简单到复杂的构建,我已经掌握了我所知道的知识。
Apache FOP 得到维护,最近才达到 1.0 版,但不要被愚弄,这不是第一个版本,因为它是多年工作的结晶。几年前有一段时间,该项目看起来好像已经死了,但当时他们正在努力进行重大更改。从那时起,定期发布版本,每个版本都改进了兼容性和功能。
另外,如果您确实有问题(我的意思是渲染器的错误或技术问题,而不是关于 FO 的问题),我发现 FOP 团队真的很有帮助,并且总是给出快速响应。