我认为在现在(2012年),我们可以,最后,使用CSS与渲染引擎,了解 paged media of CSS2和某些 CSS3 …但在哪里的“新文本”,程序员的共识和软屋的投资?
XSL-FO或“XSL格式化对象”(W3C标准)是生成PDF文档最常用的技术,
从XML或XHTML内容。版本1.1 of XSL-FO
发表于2006年,1.0 in 2001。
CSS2.1是从2011年,但CSS2.0是一个1998年的标准,在2008年修订…我认为标准的年龄不是一个问题。 CSS与HTML,XHTML或XML具有“打印的力量”:看到工具,如PrinceXML,WebKit print module(或wkhtmltopdf),ABCpdf等。
在CSS和XSL-FO之间选择:使用CSS2,您可以将文本完全适合纸页等。
这不是分页,多列布局,地方脚注,运行页眉或页面边距的问题…
两者,CSS(分页媒体)和XSL-FO,是做到这一点的良好标准。
PS:在这个上下文中有一些相关的问题/答案,about webkit transform,converting with with PHP和大约Generation PDF from HTML.没有人对这个提出的问题有好的答案。
解决方法
现在,2014年,我的职位超过了1.5年(5月17日),是时候巩固:没有答案是,对我来说,一个“完全的答案”,但所有的答案(见Nenotlep和亚历克斯)图片。
我现在的主要动机是巩固,是2013-11年的@mzjn’s news (here)。
XSL-FO正式垂死
星期六,2013-11-02,Liam R. E. Quin wrote:
“我们关闭了工作组,因为没有足够的人参加”W3C XML活动领导,关于XSL-FO 2.0连续性的失败。 (参见better copy here)。
工作草案的最后更新是2012年1月,现在确认:W3C停止开发XSL-2。
为什么?它将被CSS3-page替换,见下文。
PS:讨论“官方统计”,使用http://stackoverflow.com/a/21345449/287948
CSS3正式成长
标准CSS3-page是一个草案,但许多应用程序,如PrinceXML v9和AntennaHouse Formatter v6表明它准备好了!并且HTML5 for 2014的预期发布正在进行预测版本CSS3。
所以,我明白,对于W3C,CSS3页面做所有我们需要表达良好的打印和良好的PDF。
其他动机
有一天,在一个遥远的未来… PDF将死 – 它是复杂的,不是XML家庭或W3C投资的一部分,并且许多人声称EPUB将取代它。
这是另一个好的动机:平板电脑阅读器和PC浏览器将打印(HTML,XHTML和EPUB)以及PDF。所以PDF不是必要的…而且,对于这一天,唯一的标准需要, Webkit printing project,将是CSS3页面的标准。
CSS3是两个战略事务的关键点:1)从XML或HTML内容生成良好的PDF; 2)替换PDF。
注意:另一个2014年更新的问题的链接:wkHtmlToPDF is now here.关于“新文本”,现在我们有很多,见前。 Building Books with CSS3。
程序员的一个更新的答案,对于这个页面的问题,为什么使用XSL-FO而不是CSS2,将HTML转换成好的PDF?
如果你进一步实现一个新的XML发布系统,没有好的理由使用XSL-FO。总结:
> XSL-FO是当今的死机技术,仅供利基市场公司使用,用于维护大型出版公司(如Elsevier)的遗留系统… Stackoverflow的大多数作者/读者来自中小型公司。像O’Reilly Media,Inc. already use CSS3 for print这样的公司。
> CSS3将取代CSS2,覆盖CSS2的所有空白(和@ AlexS的恐惧)。
>今天(2014),你可以通过谷歌或我的链接检查(见PrinceXML v9和AntennaHouse Formatter v6),我们有一些好的软件来渲染内容与CSS2或CSS3。
> as @bytebuster说,“CSS更容易开发”(更容易学习!)。
>如上所述,CSS3不是孤立的,它是一块“XML / HTML / SVG”系列。
>开发“HTML CSS模板”(标准网页设计师执行简单任务的每小时成本)比“XSL-FO模板”(复杂任务中的罕见专业人员的每小时成本)开发便宜得多。
> ….
新闻…
2016年1月,最终的CSS3标准来了!
关于W3C标准:旧的“css-page”被“css-break”取代,“分页媒体”被“fragmentation”取代…现在它是一个候选建议,见https://www.w3.org/TR/css-break-3