lowagie 和 iText 有什么区别?这只是版本差异还是库的升级。推荐使用哪一种?
4 回答
实际上,没有区别:在 iText 2.1.0 中。创建一个 PDF,转到属性并查看“lowagie.com 的 iText 2.1.0”))在 lib 的演变中似乎发生的事情是 java 包名称中的“lowagie”被替换为“itextpdf”。
那是我的第一个答案。布鲁诺不喜欢它))。好的——当然,java lib 的生命周期发生了很多变化。我的意思是“lowagie”与 iText 是同一个库(尽管在早期版本中)。我认为 Bruno 对重新命名 lib 非常感兴趣,并且不希望它被称为 lowagie。很好——但无需刻意——lowagie 是以前版本中的 iText。
Axe,让我再试一次......有一些东西,比如一个开源品牌/企业,他们有一个网站,它以创建者“lowagie.com”的名字命名。它是一个java lib。当我们使用它时,我们看到包装结构反映了这种品牌选择“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 的举措。
我是Lowagie,你说的那个lowagie。我是 iText 的原作者,也是“iText in Action”书籍和关于 iText 历史的“企业家”书籍的作者。
当人们在 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)。有分叉号称是基于 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.lowagie
为com.itextpdf
。 - 工具箱和 RTF 支持已被删除:它们现在位于 SourceForge 的单独项目中。
从来没有正式的 iText 6 版本;iText 6 仅存在于 iText Group 内部,为 iText 7 做准备。
iText 7 版本是对该库的完全重写。想要从 iText 7 之前的版本迁移的人将不得不重写他们的代码,因为 iText 7 与之前的版本不兼容。
从头开始创建新版本的原因有很多:
- 重写字体层对于支持连字和书写系统(如梵文(印地语)、Gurmukhi(旁遮普语))以及支持许多其他印度语言(如卡纳达语、泰卢固语、马拉地语、乌尔都语)是必要的……无法生成 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 公司。
到目前为止,还有使用 com.lowagie 中的类的OpenPDF,因此您可能还需要考虑您的项目的某些依赖项可能取决于 OpenPDF。