其实在 ALA 上 Printing a Book with CSS: Boom! 这篇文章出现的时候就想写篇文章说说这个东西了,拖到现在实在有点不好意思。
简单的说,Prince (可能这个网站在国内被封禁了) 是这么个工具,你可以在用简单的 (X)HTML 和 CSS 来描述自己的文档之后,把它转换成适合打印的 PDF。
乍看起来,Prince 是一个近乎完美的工具,优秀的 CSS 支持——它甚至已经 Pass 了 Acid 2,支持透明 PNG,能够自动探测并支持 HTML 和 XML 格式,对 CSS 3 Page Media 的创新性实现,Prince 对非营利的学术使用是免费的……等等。CSS 的创始者,Bert Bos 和 Håkon Wium Lie 已经用这种方式完成了一本书。
那是不是它就没有缺陷了呢?正相反,缺陷也同样明显——对基本的印刷排版的支持还是太少,毕竟 CSS 相比书面排版,已经是一个简化而又简化的模型了,最大的问题是缺乏自动断字 (hyphening),如果不能断字,左右对齐 (justify) 的文本中每个单词之间就会有过大的间隙,这是印刷排版中最致命的地方。(顺便说说,TeX 中最有趣的一个算法就是创新的断行算法,当时为了看这个算法专门复印了 70 来页的论文,555..)
此外还有边界出血、色彩使用等许多问题,导致 ALA 上这篇文章的评论中纷纷表示“Not the right tool”。但作者的看法也有其道理:你可以创建这样的书,在支持绝大多数浏览器阅读的情况下,还有能力转换成 PDF 供纸上阅读,不是很方便的吗?对于不愿意深入了解 LaTeX 或其他专业排版工具的 CSS 专家们来说,这也是很趁手的工具,就像大家喜欢使用 S5 这样的幻灯片制作工具而宁愿放弃 PowerPoint 这样的专门工具一样。
总结起来,Prince 是两位 CSS 创始人作的非常有趣的尝试,它在易用性上已经远远超过 DocBook – XSL-FO – FOP 这种传统的由 XML 生成 PDF 的过程,虽然现在还不能和 TeX 的效果相比,假以时日,排版的效果必会更加出色。