1

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

一段时间以来,我一直在使用 flysaucer 格式化 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参数。

我想我可能必须下载 flysaucer 或 iText 的源代码(我认为它们都是开源的)并自己解决这个问题(我以前没有做过,但我认为我可以做到)但我可以想象我不是第一个遇到这个问题的人,也许还有另一种解决方法,或者其他人已经分叉了一个项目来解决这类问题。

4

1 回答 1

2

披露:我从事 docx4j 项目

docx4j 2.8.0 仅使用 iText,因为我们的 Flying Saucer 分支需要它,它执行 XHTML 导入。

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

同时,为了完整起见,我提到你可以在你的类路径上同时拥有真正的飞碟和我们的 fork,因为我们的 fork 是重新打包的。

回到您的问题,FlyingSaucer 现在具有相同的 2.1.7 依赖项,因此,如果您能够使用当前资源,那应该可以解决您提出的问题。

于 2012-07-05T12:40:10.003 回答