小编典典

使用XSL-FO,CSS3而不是CSS2创建分页文档(如PDF)?

css

有很多旧文本,例如2002年这本书,指出我们必须使用“ CSS for Web”和“ XSL-FO for print”。我认为,在当今(2012年),我们最终可以将CSS与渲染引擎一起使用,这些引擎能够理解CSS2和CSS3的分页媒体 ……但是,“新文本”,程序员的共识以及软硬件的投资又在哪里?

XSL-FO或“ XSL格式设置对象”(W3C标准)是从XML或XHTML内容生成PDF文档的最常用技术。XSL-FO的1.1版 于2006年发布,1.0版于2001年发布。

CSS2.1来自2011年,但是CSS2.0是1998年的标准,于2008年修订…我认为标准年龄不是问题。带有HTML,XHTML或XML的CSS具有“打印的力量”:请参见PrinceXML,WebKit打印模块(或wkhtmltopdf),ABCpdf等工具。

在CSS和XSL-FO之间进行选择:使用CSS2,您可以使文本完全适合纸质页面等。这与分页,多列布局,放置脚注,运行页眉或页面页边距无关。 CSS(页面媒体)和XSL-FO是执行此操作的良好标准。

PS:在这种情况下,有一些相关的问题/解答,例如有关Webkit转换,用PHP进行转换以及有关从HTML生成PDF的问题。没有人对这个提出的问题有好的答案。


阅读 376

收藏
2020-05-16

共1个答案

小编典典

CSS3正式增长
标准的CSS3页面是草稿,但是许多应用程序(例如PrinceXML v9和AntennaHouse Formatter v6) 证明它已经准备就绪(!);而且,2014年预期的HTML5发行将与CSS3预测发行版一起进行。

因此,我知道对于W3C,CSS3-page可以完成表达出色的印刷品和PDF所需的所有工作。

其他动机
有一天,在不远的将来……PDF将会死掉-它是复杂的,不属于XML系列或W3C投资的一部分-许多人声称EPUB将取代它。这是另一个很好的动机:平板电脑阅读器和PC浏览器将同时打印(HTML,XHTML和EPUB)以及PDF。因此,PDF将不再是必需的…而且,对于这一天,唯一的标准需求是ex。Webkit打印项目,将是CSS3页面标准。

CSS3是两个战略事务中的关键点:1)从XML或HTML内容生成好的PDF;2)替换PDF。

注意:问题链接的另一个2014年更新:wkHtmlToPDF现在在这里。关于“新文本”,现在我们有很多,请参见前。使用CSS3构建书籍。

针对此问题的程序员的最新答案:为什么使用XSL-FO而不是CSS2将HTML转换为优质PDF?

如果您走得更远并为XML-Publishing实现一个新系统,则没有充分的理由使用XSL-FO。总结:

  • XSL-FO是当今已经淘汰的技术,仅由利基公司用来为大型出版公司(如Elsevier)的遗留系统提供维护。Stackoverflow的大多数作者/读者都是来自中小型公司。像O’Reilly Media,Inc.这样的公司已经在使用CSS3进行印刷。

  • CSS3将取代CSS2,涵盖了所有的差距(和恐惧为@来自Alexs的)的CSS2。

  • 今天(2014年),您可以通过Google或我的链接(请参阅PrinceXML v9和AntennaHouse Formatter v6)进行检查,我们有一些不错的软件可以用CSS2或CSS3呈现内容。

  • 正如@bytebuster所说,“ CSS更容易开发”(也更容易学习!)。

  • 正如我上面所说,CSS3不是孤立的,它是“ XML / HTML / SVG”家族的一部分。

  • 开发“ HTML + CSS模板”(执行简单任务的标准Web设计人员的小时成本)比“ XSL-FO模板”(执行复杂任务的罕见专业人员的小时成本)便宜得多。

....

2016年1月,确定的CSS3标准即将发布!
关于W3C标准:旧的“ css-page”替换为“ css-break”,“ paged media”改为“ fragmentation” ...现在是候选建议,请参见https://www.w3.org/ TR / css-break-3

2020年4月,Blimey,+ 4年,什么都没有!…好,需要更多测试
从问题发布到发布,总共有8年,从“ css-break-3失败了”,总共有4年!公告…

Chrome是第一个在2019年发布的Chrome,但在W3C的测试验证团队中有些错误,而在2020年,则出现了错误。现在的状态(在23个测试中)是:

Chrome的Blink引擎未通过1次测试;
Firefox的Gecko引擎未通过3次测试。

2020-05-16