飞碟 - HTML 到 PDF 和许可 (iText)

问题描述 投票:0回答:1

我正在编写将 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 看起来有点弱。

有什么想法/建议吗?

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

谢谢。

java itext pdf-generation pdfbox flying-saucer
1个回答
18
投票

编辑:正如评论中指出的,

org.xhtmlrenderer:flying-saucer-pdf
现在使用OpenPDF(2024年)。这取代了
org.xhtmlrenderer:flying-saucer-pdf-openpdf


截至今天(2018 年),Flying Saucer 提供了三种实现,其中之一是 OpenPDF。

引用他们的自述文件(强调我的):

可用的工件有:

  • 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 和 Flying Saucer 本身均获得 LGPL 许可。因此,您现在可以使用

flying-saucer-pdf-openpdf
来避免 iText 2 的安全问题和 iText 5 的许可问题。

© www.soinside.com 2019 - 2024. All rights reserved.