【发布时间】:2012-11-10 23:59:39
【问题描述】:
lowagie 和 iText 有什么区别?这只是版本差异还是库的升级。推荐使用哪一种?
【问题讨论】:
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 版本有以下重大变化:
com.lowagie 更改为 com.itextpdf。从来没有正式的 iText 6 版本; iText 6 仅存在于 iText Group 内部,为 iText 7 做准备。
iText 7 版本是对库的完全重写。想要从 iText 7 之前的版本迁移的人将不得不重写他们的代码,因为 iText 7 与之前的版本不兼容。
从头开始创建新版本的原因有很多:
如需更全面地了解 iText 的历史,以及发生变化的方式和原因,请访问Entreprenerd 网站。
答案于 2021 年 7 月 21 日更新:自 2020 年 3 月起,我不再隶属于任何 iText 公司。
【讨论】:
其实没有区别:在 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 的举措。
【讨论】:
到目前为止,还有OpenPDF 使用来自 com.lowagie 的类,因此您可能还需要考虑您的项目的某些依赖项可能依赖于 OpenPDF。
【讨论】: