lowagie 和 iText 有什么区别?

IT小君   2021-10-18T00:39:43

lowagie 和 iText 有什么区别?这只是版本差异还是对库的升级。推荐使用哪一种?

评论(4)
IT小君

实际上,没有区别:在 iText 2.1.0 中。创建一个 PDF,转到属性并查看“iText 2.1.0 by lowagie.com”)) 在 lib 的演变过程中似乎发生的是 java 包名称中的“lowagie”被替换为“itextpdf”。

那是我的第一个回答。布鲁诺不喜欢它))。好的——当然,Java 库的生命周期发生了很多变化。我的意思是“lowagie”与 iText 是相同的库(尽管在早期版本中)。我认为 Bruno 对重新命名 lib 非常感兴趣,并且不希望它被称为 Lowagie。很好——但无需多言——lowagie 是以前版本中的 iText。

Axe,让我再试一次……有一些东西,比如一个开源品牌/企业,他们有一个网站,它以创建者“lowagie.com”的名字命名。它是一个java库。当我们使用它时,我们看到包装结构反映了这个品牌选择“lowagie”,如下所示:

import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.PdfContentByte;
import com.lowagie.text.pdf.PdfImportedPage;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;
import com.lowagie.text.pdf.PdfStamper;

所以,我坚持我的回答,并断言 iText 使用了两个品牌:iText 和 lowagie.com。但现在很明显,有一个举措可以摆脱“lowagie”并坚持使用 iText。

2021-10-18T00:39:43   回复
IT小君

我是洛瓦吉,你所指的洛瓦吉。我是 iText 的原作者,也是有关 iText 历史的“iText in Action”书籍和“Entreprenerd”一书的作者。

当人们在 PDF 的上下文中谈论 lowagie 时,他们通常谈论带有包名 (Java) 或命名空间 (C#) 的库,例如com.lowagie.text(Java)。这些是旧版本的 iText(版本 0、1 或 2)。这些旧版本中的最后一个是 2009 年 7 月或更早的 iText 2.1.7。

有 iTextSharp 3 和 4 (C#),但从来没有正式的 iText 3 或 4 版本 (Java)。有fork声称是基于iText 4的,因为数字4暂时用在开源库中,为iText 5的发布做准备。 有了iText 5,Java和C#版本的发布数字终于同步。

当人们谈论 iText 时,他们通常谈论更新版本的 iText 可以在更改日志中找到:http : //itextpdf.com/changelog

iText 5 版本有以下实质性变化:

  • iText.jar 是使用 Java 5(而不是使用 JDK 1.4)编译的。
  • F/OSS 许可证已从 MPL/LGPL 升级到 AGPL。
  • 包名称已从 更改com.lowagiecom.itextpdf
  • 工具箱和 RTF 支持已被删除:它们现在位于 SourceForge 的一个单独项目中。

从来没有官方的 iText 6 版本;iText 6 只存在于 iText Group 内部,为 iText 7 做准备。

iText 7 版本是对该库的完全重写。想要从 iText 7 之前的版本迁移的人将不得不重写他们的代码,因为 iText 7 与之前的版本不兼容。

从头开始创建新版本的原因有很多:

  • 重写字体层对于支持连字和书写系统(如梵文(印地语)、古尔穆基语(旁遮普语))以及支持许多其他印度语言(如卡纳达语、泰卢固语、马拉地语、乌尔都语等)是必要的。无法生成 PDF由于字体在这些版本中的实现方式,在那些版本较旧的语言中。
  • 重写库为修复 API 中的大量歧义和不一致提供了机会。从 iText 7 开始,该库不再是一个单一的 jar,而是一组 jar,您可以根据需要的功能从中挑选。
  • iText 5(及更早版本)的设计始于 2000 年 2 月。它早于 2012 年发布的 PDF/UA 标准,并且没有考虑可访问性。在 iText 5 中为支持 PDF/UA 付出了很大的努力,但我们不得不承认,辅助功能被固定在一个现有的库上,而这个库不是为此目的而创建的。iText 7 的设计以制作无障碍 PDF 为先决条件。作为副作用,iText 7 中的 HTML 到 PDF 转换比 iText 5 中的转换要好得多。
  • iText 7 也是唯一支持最新 PDF 2.0 标准的版本。以前版本的 iText 只能生成 PDF 1.7 或更早版本的文件。
  • 另一个已发展的重要标准涉及数字签名。请注意,您当然不应该使用 iText 2(或更早版本或克隆版本)来创建数字签名,因为“lowagie”可追溯到 2009 年,而从那时起的所有数字签名标准都已经过时了。

要更全面地了解 iText 的历史,以及事情发生变化的方式和原因,请查看Entreprenerd网站。

2021 年 7 月 21 日更新的答案:自 2020 年 3 月以来我不再隶属于任何 iText 公司。

2021-10-18T00:39:43   回复
IT小君

这是今天的日蚀氧气

所以我在 Eclipse Oxygen 中进行编辑,我的导入建议列表如下所示。有洛瓦吉!

2021-10-18T00:39:43   回复
IT小君

截至目前,还有OpenPDF使用 com.lowagie 中的类,因此您可能还需要考虑项目的某些依赖项可能依赖于 OpenPDF。

2021-10-18T00:39:43   回复