【问题标题】:Using flying saucer and docx4j on the same project在同一个项目上使用飞碟和 docx4j
【发布时间】:2012-07-05 11:58:06
【问题描述】:

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

一段时间以来,我一直在使用 flysaucer 来格式化 PDF 文档,并且出于兼容性原因总是不得不使用旧版本的 iText。现在我正在使用 docx4j,我需要将 iText 更新到更新的版本,否则它将无法正常工作。

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

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

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

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

【问题讨论】:

    标签: java itext flying-saucer xhtmlrenderer docx4j


    【解决方案1】:

    披露:我从事 docx4j 项目

    docx4j 2.8.0 只使用 iText,因为 our fork of Flying Saucer 需要它,它执行 XHTML 导入。

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

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

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

    【讨论】:

    • 我尝试使用 docx4j 使用的飞碟叉,但不幸的是生成的 pdf 文件似乎已损坏
    • 我在任何在线存储库中都找不到飞碟 R9 jar 的版本,因此不得不从 github 下载源代码并自己打包。这现在完美运行,这是一个很大的解脱,所以非常感谢你
    猜你喜欢
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 2013-07-30
    • 2014-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多