如何用Java 3中的CSS 3生成PDF文档

时间:2011-07-21 21:04:17

标签: java pdf css3 pdf-generation

我目前正在开展一个项目,该项目涉及转换复杂的结构化图像和文本,并使用Java将它们转换为PDF。我的第一直觉是创建HTML / CSS,它表示应该输出数据的方式,然后使用Java库将HTML / CSS转换为PDF。在进行研究时,我没有找到任何考虑CSS 3属性的好解决方案,如border-radius,box-shadow和transform:rotate。我看过iText w / Flying Saucer和PD4ML。

有没有人知道最新的免费或商业产品并支持这种新的CSS技术?

或者我可能只是试图使用CSS / HTML开始走错路?

3 个答案:

答案 0 :(得分:1)

我不认为html / css是个好主意。使用html / css制作图像和格式是一件痛苦的事,然后将其转换为PDF是另一回事。

PDF支持嵌入图片和格式化文本,为什么不直接使用它?使用任何Java工具/库生成图像并使用iText或iReport打印PDF并不比单独使用html / css更难。

答案 1 :(得分:1)

HTML / CSS听起来像不必要的开销。由于您的数据是“结构化”的图像和文本,如果它很容易转换为XML,您可能会对Apache FOP有所帮助

答案 2 :(得分:0)

您可以将无头OpenOffice与JODConverter(http://www.artofsolving.com/opensource/jodconverter)一起使用来打开临时HTML文件,然后从无头OpenOffice保存到Export to PDF。只要你有一个相对简单的HTML / CSS文件,你应该没问题。我已经使用了很多,看起来很可靠。

我不知道我的推荐中CSS3的具体细节。我听说有关使用无头Firefox的传闻,但你会走出Java之外。由于我没有亲自这样做,所以不能提供太多的评论。