【问题标题】:Flying Saucer - HTML to PDF and Licensing (iText)飞碟 - HTML 到 PDF 和许可 (iText)
【发布时间】:2019-01-07 22:30:30
【问题描述】:

我正在编写将 HTML 转换为 PDF 的代码,其中包括以下 2 个依赖项:

    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-core</artifactId>
        <version>9.1.6</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.xhtmlrenderer</groupId>
        <artifactId>flying-saucer-pdf-itext5</artifactId>
        <version>9.1.6</version>
        <scope>compile</scope>
    </dependency>

我有它的工作。我能看到的唯一方法是使用 ITextRenderer。不幸的是,看起来这是 iText 5,需要 AGPL 许可,或者支付大量许可费用。

对我来说似乎很清楚,基于此许可证:https://github.com/flyingsaucerproject/flyingsaucer/blob/master/LICENSE

这对吗?

还有其他不需要 iText(或许可软件)的方法吗?

我尝试过 Apache PDFBox,但它的级别太低了,我不确定它是否可行。我知道这并不容易。 HTML -> PDF 绝对不可能。

OpenPDF 看起来有点弱。

有什么想法/建议吗?

这是我们项目(启动)的一小部分,因此许可软件不是首选。

谢谢。

【问题讨论】:

  • 我投票结束这个问题,因为这是一个许可问题,而不是技术问题。
  • 你可以试试这个github.com/danfickle/openhtmltopdf它在PDFBox的顶部。
  • @yngwietiger 我不知道。查看 pom.xml 或询问他们。
  • @TilmanHausherr 仅供参考,我能够轻松切换到 openhtmltopdf(来自 Flying Saucer)。看起来它可以完成我需要它做的所有事情。非常感谢您的建议! (其实前几天我也简单看过了,但是因为某种原因把它写下来了)。 Aso,如果你很好奇,没有对 iText 的引用(通过“mvn dependency:tree | grep -i itext”),所以它看起来也不错。再次感谢。
  • 很高兴听到这个消息。我知道那个项目是因为其中一个人(Emmeran Seehuber)帮助改进了 PDFBox/修复了错误。

标签: java itext pdf-generation pdfbox flying-saucer


【解决方案1】:

截至今天,有三种可用的飞碟实现,其中之一是 OpenPDF。

引用他们的readme(强调我的):

可用的工件是:

  • org.xhtmlrenderer:flying-saucer-core - 核心库和 Java2D 渲染
  • org.xhtmlrenderer:flying-saucer-pdf - 使用 iText 2.x 输出 PDF
  • org.xhtmlrenderer:flying-saucer-pdf-itext5 - 使用 iText 5.x 输出 PDF
  • org.xhtmlrenderer:flying-saucer-pdf-openpdf - 使用 OpenPDF 输出 PDF
  • org.xhtmlrenderer:flying-saucer-swt - SWT 输出
  • org.xhtmlrenderer:flying-saucer-log4j - log4j 的日志插件

iText 2.x 有未修复的安全漏洞。新项目应该避免它。

OpenPDF 和飞碟本身都在 LGPL 下获得许可。因此,您现在可以使用flying-saucer-pdf-openpdf 来避免 iText 2 的安全问题和 iText 5 的许可问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2010-10-11
    • 2012-04-01
    • 2021-03-25
    • 1970-01-01
    • 2011-11-23
    • 1970-01-01
    相关资源
    最近更新 更多