在同一个项目中使用飞碟和docx4j

时间:2012-07-05 11:58:07

标签: java itext flying-saucer xhtmlrenderer docx4j

我有一个项目,我希望能够将xhtml文档格式化为PDF格式和Docx格式。

我一直在使用flyingsaucer格式化PDF文档已有一段时间了,出于兼容性原因,我总是不得不使用较旧版本的iText。现在我正在使用docx4j,我需要将iText更新为更新的版本,否则它将无效。

FlyingSaucer(xhtmlrenderer R8pre2)使用iText 2.0.8
docx4j 2.8.0使用iText 2.1.7

我只能使用一个iText库,但无论我使用哪一个,我最终都会遇到飞碟或docx4j的兼容性问题。

目前问题似乎归结为一个特定方法(com.lowagie.text.pdf.BaseFont.getCharBBox),该方法在一个版本中采用char参数,而在另一个版本中采用int参数。< / p>

我想我可能要下载flyingsaucer或iText的来源(我认为它们都是开源的)并自行修复(不是我之前做过的事情,但我认为我可以管理)但我可以想象我我不是遇到这个问题的第一个人,也许还有另一种解决方法,或者其他人已经分配了其中一个项目来解决这类问题。

1 个答案:

答案 0 :(得分:1)

披露:我处理docx4j项目

docx4j 2.8.0仅使用iText,因为our fork of Flying Saucer需要它才能进行XHTML导入。

在那个分支中,我添加了与docx相关的东西,并删除了一些我们不需要的东西。未来,我们可能会把它提供给飞碟 - 这是有时间的问题。

与此同时,我提到完整性,你可以同时在你的课程路径上拥有真正的飞碟和叉子,因为我们的叉子被重新包装。

回到你的问题,FlyingSaucer现在有same 2.1.7 dependency,所以如果你能够使用当前的资源,那么这应该解决你提出的问题。