What is the difference between lowagie and iText? Is this just version difference or an upgrade to the library. Which one is recommended to be used?
4 Answers
Actually, there is no difference: in iText 2.1.0. Create a PDF, go to properties and see "iText 2.1.0 by lowagie.com" )) what seems to have happened in the evolution of the lib is that "lowagie" in the java package name, was replaced with "itextpdf".
That was my first answer. Bruno does not like it )). OK -- so of course, lots has changed over the life of the java lib. What I meant to say is that "lowagie" is the same lib (albeit in an earlier revision) as iText. I think that Bruno is very interested in re-branding the lib and does not want it referred to as lowagie. Fine -- but no need to mince words -- lowagie is iText in a previous version.
Ax, let me try again... there was something, something like an opensource brand/business, they had a web site, it was named after the creater "lowagie.com". and it was a java lib. and when we used it, we saw that the package structure reflected this brand choice "lowagie" as in:
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;
So, I stand by my answer, and assert that there were two brands being used for iText: iText and lowagie.com. But now clearly, there is a move to get rid of "lowagie" and just stick with iText.

- 2,190
- 1
- 23
- 27
-
6I appreciate this comment much more than the comment by Mr Lowagie. Thanks for providing the changelog notes from the 5.0.0 Version stating the package name changed. Now I know its the same product, just a newer/better version that I can decide on purchasing. – Revoman Jun 18 '14 at 15:58
-
7@BrunoLowagie - Changing Toms answer seems to stretch the rules of stackoverflow edits. While you initially gave an "accurate" answer to the question about lowagie being a family name, it was most unhelpful. Until I found this post I associated lowagie with the iText libraries but thank you for correcting that misunderstanding. I would like to say the current answer you have provided is clear and helpful. In your defense, the question should have been more accurately written "What is the difference between the libraries in the iText package com.lowagie and com.itext". – Revoman Jul 03 '14 at 23:04
-
right. i, as @Revoman, and i would guess also like the person who asked this question, and (i would guess) like many others, we have (had) a _branding_ confusion. the question goes something like "hey, i see this "lowagie brand, and i see this itext brand, are they the same thing?" and the answer is yes!!! it is one and the same pdf manipulation/creation library )))) simple ))). but now itext has chosen to remove "lowagie" from the package name/branding. simple answer. – tom Jul 04 '14 at 17:44
-
5oh -- there is a big assumption here that should be clearly stated -- in java, the package name, at least historically, has reflected a brand decision. in other words, we "call" the java app/lib by a name which we see in the java namespace. the only exception i can think of off hand is source forge hosted apps. but even then people quickly state their brand/www domain, as in net.sf.jasperreports.engine.export.AbstractPdfTextRenderer – tom Jul 04 '14 at 17:52
-
in a maven pom.xml there is an element called groupid which is "the unique identifier of the organization or group that created the project". As you can see from http://repo1.maven.org/maven2/itext/itext/1.3.1/itext-1.3.1.pom that organization was com.lowagie and is now itext. – tom Sep 02 '15 at 18:17
I am Lowagie, the lowagie you refer to. I'm the original author of iText and the author of the "iText in Action" books and the book "Entreprenerd" about the history of iText.
When people talk about lowagie in the context of PDF, they usually talk about libraries with package names (Java) or namespaces (C#) such as com.lowagie.text
(Java). These are old versions of iText (versions 0, 1, or 2). The last of those old versions was iText 2.1.7 dating from July 2009 or earlier.
There was an iTextSharp 3 and 4 (C#), but there never was an official iText 3 or 4 release (Java). There are forks that claim to be based on iText 4 because the number 4 was temporarily used in the open source repository to prepare for the release of iText 5. With iText 5, the numbers of the releases of the Java and the C# version were finally synchronized.
When people talk about iText, they usually talk about the newer versions of iText can be found in the changelogs: http://itextpdf.com/changelog
The iText 5 version had the following substantial changes:
- the iText.jar is compiled using Java 5 (instead of with the JDK 1.4).
- The F/OSS license has been upgraded from MPL/LGPL to AGPL.
- The package names have changed from
com.lowagie
tocom.itextpdf
. - The toolbox and RTF support have been removed: they are now in a separate project at SourceForge.
There was never an official iText 6 version; iText 6 only existed internally at iText Group, to prepare for iText 7.
The iText 7 version is a complete rewrite of the library. People who want to migrate from versions prior to iText 7 will have to rewrite their code, as iText 7 isn't compatible with prior versions.
There were many reasons for creating a new version from scratch:
- Rewriting the font layer was necessary to support ligatures and writing systems such as Devanagari (Hindi), Gurmukhi (Punjabi), and support for many other Indic languages such as Kannada, Telugu, Marathi, Urdu,... It's not possible to produce PDFs in those languages with older versions due to the way fonts are implemented in those versions.
- Rewriting the library provided an opportunity to fix plenty of ambiguities and inconsistencies in the API. Starting with iText 7, the library is no longer a monolithic jar, but a set of jars you can pick and choose from based on the functionality you need.
- The design of iText 5 (and earlier versions) dates from February 2000. It preceded the PDF/UA standard released in 2012 and didn't take into account accessibility. Serious efforts were done to support PDF/UA in iText 5, but we have to admit that the accessibility functionality was bolted on an existing library that wasn't created for that purpose. iText 7 was designed with the production of accessible PDF as a prerequisite. As a side-effect, HTML to PDF conversion is much better in iText 7 than it ever can be with iText 5.
- iText 7 is also the only version that supports the more recent PDF 2.0 standard. Previous versions of iText can only produce files in PDF 1.7 or earlier.
- Another important standard that has evolved concerns digital signature. Be aware that you certainly shouldn't use iText 2 (or earlier, or clones) to create digital signatures because "lowagie" dates from 2009, and all the digital signature standards dating from that time are hopelessly outdated.
For a more complete overview of the history of iText, and of how and why things changed, take a look at the Entreprenerd website.
Answer updated on July 21, 2021: I am no longer affiliated with any of the iText companies since March 2020.

- 75,994
- 9
- 109
- 165
-
61Your response is just confusing. You should have just stated, right away, that the package name and product name are different. Not everyone is looking for iText. I just wanted to know what the heck packages are being imported into this class I am working with and searched for the package name with 'Lowagie'. All you needed to say was: old versions of iText have this package name structure. Tom's response is much better, sir. – William Symionow Jun 27 '14 at 16:25
-
13@BrunoLowagie - The association between Gosling and Java is not the same, as the package names inside the JDK have never been java.gosling.* – Revoman Jul 03 '14 at 23:06
-
5@BrunoLowagie The reason people don't understand is because some of us have never worked with iText before, and aren't the original programmers for our project. I'm working on an application that uses iText, but I wouldn't know that because the package directory doesn't include iText in it at all - just a reference to your last name. You should probably just *explicitly say* that the package refers to the developer of iText - IE, you. ;) – Zibbobz Nov 03 '14 at 15:59
-
If you read the source code headers, you clearly see my name. When using iText, it is a minimum requirement that you read the license. When you read the license, you see my name ;-) – Bruno Lowagie Nov 03 '14 at 16:40
-
@sudhir In short: if you are looking for API documentation for the "lowagie" software, you shouldn't find much info anymore because you shouldn't be using that software anymore. I'll explain all of this tomorrow at the Great Indian Developer Summit in Bangalore. – Bruno Lowagie Apr 25 '16 at 07:43
-
2@BrunoLowagie - its not that easy to stop using it.. we use jasper reports and that depends on lowagie versions of IText, we cant remove jasper, neither replace it that easily.. you know things doesnt change that easily in corporations. – Sudhir N Apr 25 '16 at 12:24
-
@sudhir if you're using JasperReports, then it's TIBCO's responsibility to upgrade. If you're using JasperReports, then there's also no reason why you'd need the Javadocs / API because JasperReports is taken care of the PDF creation process. – Bruno Lowagie Apr 25 '16 at 12:27
-
1@BrunoLowagie there are some dependency conflicts with other libraries, and i wanted to know which version of iText some method was introduced etc.. – Sudhir N Apr 30 '16 at 04:12
-
@sudhir if you look at the POM file of a project, you get all the version numbers that are required to avoid dependency errors. I am not aware of any errors in the iText POM files. Jaspersoft may be using versions of iText that are no longer available. – Bruno Lowagie Apr 30 '16 at 18:46
So I am editing in Eclipse Oxygen and my List of import suggestions look like this. There is Lowagie!

- 2,190
- 1
- 23
- 27
-
This only indicates that you have an ancient itext version in your class path. – mkl Jul 26 '19 at 03:35
-
or (and) it indicates that eclipse oxygen ships with such an old lib? but good thing that itext has a list, always need one of those... – tom Aug 03 '19 at 07:50