我需要从现有的(X)HTML文档自动生成PDF文件.输入文件(报告)使用相当简单的基于表格的布局,因此可能不需要支持真正花哨的JavaScript/CSS内容.
由于我习惯于使用Java,因此最好能够在java项目中轻松使用.但它只需要在Windows系统上工作.
一种方法是可行的,但不能产生高质量的输出(至少开箱即用)是使用CSS2XSLFO和Apache FOP来创建PDF文件.我遇到的问题是,虽然很好地转换了CSS属性,但表格布局非常混乱,文本流出表格单元格.
我还快速浏览了Jrex,这是一个使用Gecko渲染引擎的Java-API.
有没有办法从Internet Explorer渲染引擎中获取渲染页面并自动将其发送到PDF-Printer工具?我没有windows中的OLE编程经验,所以我不知道什么是可能的,什么不是.
你有好主意吗?
编辑:FlyingSaucer/iText看起来很有前途.我会尽力去做.
感谢所有的答案
该飞碟 XHTML渲染项目具有输出XHTML到PDF的支持.看看这里的一个例子.
你尝试过WKHTMLTOPDF吗?
它是一个简单的shell实用程序,是WebKit的开源实现.两者都是免费的.
我们在这里设置了一个小教程
编辑(2017):
如果今天要建造一些东西,我就不会再去那条路了.
但是请改用http://pdfkit.org/.
可能会剥夺其所有nodejs依赖项,以便在浏览器中运行.
看看iText ; 它是一个纯Java PDF工具包,支持从HTML读取数据.我最近在一个项目中使用它,当我需要从CMS中提取内容并导出为PDF文件时,这一切都非常简单.对CSS和样式标记的支持非常有限,但它确实呈现表没有任何问题(我从未设法设置列宽).
从HTML创建PDF是这样的:
Document doc = new Document(PageSize.A4); PdfWriter.getInstance(doc, out); doc.open(); HTMLWorker hw = new HTMLWorker(doc); hw.parse(new StringReader(html)); doc.close();