Computers have been my hobby since I was 12. Now I'm a freelance Java developer. Like many other developers I am working on various private projects. Some are open source components (Butterfly Components - DI container, web ui, persistence api, mock test api etc.). Some are the tutorials at tutorials.jenkov.com. Yet others are web projects. I hold a bachelor degree in computer science and a master degree in IT focused on P2P networks. Jakob has posted 35 posts at DZone. You can read more from them at their website. View Full User Profile

Java PDF Tools - Alternatives to iText?

07.13.2010
| 39340 views |
  • submit to reddit

I just wrote and released a larger tutorial on using iText to generate PDF in Java. Having finished the tutorial I discovered that iText is no longer free to use for commercial use. It's not that I don't want to pay for software. In fact, I believe we should always at least pay a little, even for free stuff (make a micro donation).

It's just that iText now has a "write me to get a license". When a company does that, it smells to me like "Tell me how much money you have, and I'll tell you the price of my product". I usually avoid these types of vendors.

So, is there an alternative to iText for generating PDF with Java?

2
Your rating: None Average: 2 (6 votes)
Published at DZone with permission of its author, Jakob Jenkov.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Nim Lhûg replied on Tue, 2010/07/13 - 1:33am

Bruno Lowagie lost his marbles. IIRC he essentially got annoyed at his government using his software for free while ripping him off on other levels, so he decided to get back at them in this silly way. I suggest you stick to an older iText version, which isn't encumbered by this retarded licencing policy.

I'm still waiting for someone to fork the project, by the way.

Eric Pascal replied on Tue, 2010/07/13 - 1:35am

You can try PDFBox and jPedal as alternative. But check the licence before using them.

Erdinç Kocaman replied on Tue, 2010/07/13 - 1:52am

XSL-FOP : http://xmlgraphics.apache.org/fop/

David Benson replied on Tue, 2010/07/13 - 3:28am

Bruno has not "lost his marbles", try to avoid such childish comments. Bruno had a very unfortunate personal situation, that if you knew the details you'd be thoroughly ashamed of your comment. Bruno is a nice guy who has donated a huge amount of his time for free to the Java community. As such, he deserves somewhat more respect than he's getting here. As for waiting for someone to fork the project, again, this is the kind of immature attitude far too common in open/free source. You want it for zero cost and make no effort to help the project. If it bothers you so much, fork yourself. As for "iText is no longer free to use for commercial use", this is just rubbish. iText is available under the AGPL, which makes it free for use commercially, personally, academically, you name it. Awful excuse for an article.

Steve Brickman replied on Tue, 2010/07/13 - 4:00am in response to: David Benson

Well, 90% of the commercial products I know are closed source...

Ronald Miura replied on Tue, 2010/07/13 - 6:04am in response to: David Benson

It's free for commercial use IF you open all your souce code, even if it is intended to run only on your servers. The AGPL extends the GPL to reach its viral nature to service providers, which don't redistributing software.

The additional provision requires that the complete source code be made available to any network user of the AGPL-licensed work, typically a Web application. (http://en.wikipedia.org/wiki/Affero_General_Public_License)

Free, but not really viable to most business models.

Andrea Del Bene replied on Tue, 2010/07/13 - 7:14am

Maybe JasperReport is not a lightweight library (3 mb of jar), but is multiformat (pdf, DOCX, OpenOffice, rtf, ecc...) and you can use its free visual designer iReport.

Jasper is under LGPL license, iReport under GPL license.

Ali Syed replied on Tue, 2010/07/13 - 7:45am

You can use XSL-FO or Apache XSL-FOP, In my opinion they are good alternative. Apache XSL-FOP  currently supported include PDF, PS, PCL, AFP, XML (area tree representation), Print, AWT and PNG, and to a lesser extent, RTF and TXT as output formats.

Martin Wildam replied on Tue, 2010/07/13 - 9:29am

I use jPod but only to retrieve elements from PDF - not sure how good they are in creating PDFs - it is BSD license

Jeff Martin replied on Tue, 2010/07/13 - 10:37am

ReportMill is another option. More features, great stand-alone Web Start/Swing designer, a single jar file (1mb) and a simple API. It's commercial, but costs less than the support contract for other "free" solutions. ReportMill Software.

If you get paid to write software, pay people to write software. :-)

Lester Burnham replied on Tue, 2010/07/13 - 11:01am

While PDFBox is a nice tool (and is once again being actively developed after years of stagnation), it doesn't generate PDFs. Neither does JPedal. FOP is worth a look if you can reasonably bring you data into XML format, and aren't afraid of XSL-FO. FlyingSaucer is cool for creating PDFs from XHTML that is styled with CSS. There is no other API-driven PDF tool that I'm aware of (besides iText). But as was pointed out above - iText 2 continues to work well. Get a copy of iText in Action (1st ed.), and you're good to go.

Chad Retz replied on Tue, 2010/07/13 - 11:13am

http://www.icepdf.org is nice; MPL license (similar to GPL, slightly more restrictive than LGPL or APL but still commercial-friendly)

Bill Goggin replied on Tue, 2010/07/13 - 7:19pm in response to: Ronald Miura

I don't think it requires you to open all of your source code. It only requires you to open changes you make to iText. Since the vast majority of businesses would use it without making any changes, they wouldn't have to open anything.

Walter Laan replied on Wed, 2010/07/14 - 2:31am in response to: Andrea Del Bene

JasperReports uses iText to export to PDF so I suspect they'll stick to the last iText version that was released under LGPL for now.

I see iText changed license in december 2009.

 @Bill - you're describing LGPL (the previous license iText was released under) not (A)GPL.

Jean-pol Landrain replied on Wed, 2010/07/14 - 9:06am in response to: David Benson

Exactly! TechCrunch also had an article about the tax dispute more than one year ago (also read the comments because the article is a bit biaised). You can get the details about the iText license here.

Jakob Jenkov replied on Thu, 2010/07/15 - 2:54am in response to: David Benson

This is from IText's Terms of Use page:

 

"You can be released from the requirements of the license by purchasing a commercial license. Buying such a license is mandatory as soon as you develop commercial activities involving the iText software without disclosing the source code of your own applications. These activities include: offering paid services to customers as an ASP, serving PDFs on the fly in a web application, shipping iText with a closed source product."

 

Maybe I am interpreting this wrong, but that sounds to me as if I must buy a license, if use it for e.g. generating invoices in a web application.

Jakob Jenkov replied on Thu, 2010/07/15 - 3:00am in response to: Jakob Jenkov

And, like I said in the beginning: I don't mind paying for software. I pay for software all the time.

What I do mind though, is not listing a price. So, maybe I negotiate some price, and when I need to upgrade to the next version, all of a sudden the price changes radically, if my projet has success... Or - maybe it does. I don't know.  But I don't really feel like running such a risk.

Bruno Lowagie replied on Thu, 2010/07/15 - 3:16am

Have I lost my marbles?

It is true that I wasn't myself in the annus horribilis 2008. My son was fighting Cancer (he now has a knee prosthesis and he lost part of his hearing because of the chemotherapy), I was struggling with a government that (even now!) doesn't acknowledge that I've written a book (normally you don't have to pay social security on Royalties, I do), and that was only the tip of the iceberg...

So yes, I probably wrote stupid things on my blog, and yes, some journalists took advantage of the situation to spread FUD about iText. So it goes.

 Did I recover my marbles?

Let's see: I've written a second book that will be released by the end of the year: http://itextpdf.com/book It's not merely a revision of the first book, but a complete rewrite, including new stuff such as support for XFA, parsing PDF, and integrating Flash applications into a PDF document. I did a Boot Camp to write a business case for iText, identifying some of the problems that are brought forward in some of the comments here. Starting from October 2010, I'm taking an unpaid, two-year sabbatical from my dayjob at Ghent University so that I can focus on iText and professionalize the business.

I'll let you be the judge: am I back on the right track? Is iText going the right way?

 

Do I like the comments here?

I like some of them, but I don't like it when people stop seeing me as a human being. That is how I interpret the first comment by Bram Harrumpf. Seems like he deliberately forgets that I am somebody's child, somebody's husband, somebody's father. I wonder: how does somebody like Bram see me? What would he have done in my situation? I'm not angry at Bram, I just want to understand why he wrote the things he wrote. It felt as he wrote about some inhuman being. He must have a good reason to do so; otherwise Bram: please take back what you wrote.

This being said: the old situation with iText being used to make plenty of money by third parties without ever giving anything back to its original creators, was an anachronism. Such a situation goes against every business principle. I was working half time, supporting my wife and two children with half a salary. That salary will stop being paid in October. How do you expect anyone to maintain a product such as iText without ever being paid for it? Is there any other PDF library that well documented? AFAIK, iText is the only PDF library with 2 books written about it.

I'm interested to hear what the other options are, but please realize that products such as JasperReports use iText under the hood. So does PdfTk, a project that hasn't been supported in the last three years because the project owner changed jobs. Developing and maintaining such a library can't be done for free.

Bruno Lowagie replied on Thu, 2010/07/15 - 3:24am in response to: Jakob Jenkov

It's simple: there is not just 1 price.

Suppose that we list the price for some "GLOBALMEGACORP" making billions of dollars by using iText as the key library in a PDF generating SaaS application, then all the SMBs would say: "This is crazy: we can't afford that!"

Suppose that we list the price for SMBs, then "GLOBALMEGACORP" would say: "Wow, that's almost the same as using it for free."

Is the threshold of writing a mail to sales@itextpdf.com that high? I've talked to the sales people, I've seen how they work, and IMHO they are doing a good job. They are always willing to help customers, even in cases where the conclusion is: you can use iText for free. Yes, that happens, so there is no reason to be afraid to contact them!

Jakob Jenkov replied on Thu, 2010/07/15 - 3:41am in response to: Bruno Lowagie

Like I've said before: I believe in paying for value.

I love free market economics where people give something to get something. Having said that, prices is *the single most important* signal in a free market economy. When prices are hidden, free markets are severely handicapped. So, from an economic point of view, I disagree with hidden prices.

Furthermore, I cannot help but read your comment as "Tell me how much money you will make, and I'll tell you the price". 

If there truely is only one price - list it!

I you are using a progressive pricing model, like a price per generated document, or per server - list it!

 

When a price is hidden and negotiated individually, you can raise MY price without raising it for everyone else. That is - if you believe I make too much money using your product, you can "tax" me higher, without affecting your other customers. If prices are public, listed for everyone, even if individuals negotiate better prices, you can't just raise price for me, without affecting a lot of other customers. It's not a "free round" in other words.

So, now you know why I tend to avoid vendors who do not list prices. It's all up to you, how you want to run your business, and it's all up to me where I shop. The beauty of free markets.

 

Mister Bean replied on Thu, 2010/07/15 - 3:43am

@OP (Jacob Jenkov)

"It's just that iText now has a "write me to get a license". When a company does that, it smells to me like "Tell me how much money you have, and I'll tell you the price of my product". I usually avoid these types of vendors."

But did you actually contact iText? Seems like that would be the first step before posting a complaint to DZone, no?

 

 

Jakob Jenkov replied on Thu, 2010/07/15 - 4:50am in response to: Mister Bean

That doesn't really change the fact that the price is not publicly listed, does it? It doesn't really remove the issues I have described above does it? No matter how many times I contacted IText for a price, the price would still not be public.

Jakob Jenkov replied on Thu, 2010/07/15 - 4:52am in response to: Jakob Jenkov

Let me clarify:

The issue is not that Bruno wants money for his product. He deserves money for his product.

The issue is that the price is not listed publicly. Some people don't care. I do. End of story.

Bruno Lowagie replied on Thu, 2010/07/15 - 8:33am in response to: Jakob Jenkov

 If it were possible to list a price, we would.

What can I do to convince you that what you are asking for is impossible?

 

It is very easy to put a price on a simple tool that does nothing more than to split a PDF in two.

It is very easy to put a price on a simple tool that does nothing more than to concatenate two PDFs.

It is very easy to put a price on a simple tool that adds a digital signature to a PDF document.

It is very easy to put a price on a simple tool that fillls out a PDF form.

It is very easy to put a price on...

You get the picture.

 

BUT: how do you put a price on a tool that does it all?

Suppose we would charge the same price for a customer who is ONLY USING the splitting functionality as for a customer who uses every single aspect of iText. That wouldn't be very honest, would it?

I really don't see your point. Please provide REAL arguments. Please understand that we really WANT to help you, but you make it very hard for us to help you if you don't explain how we can help.

Just saying: "put the price online" is not very honest towards us, because there is not "one price". It's simply impossible to put "one price", not even "several prices" online. I'm sorry, but I fear you're mistaking iText with a straightforward product that can be used off-the-shelve. I've written a second 600 page bookabout iText. There is just too much functionality in iText to put a price on every single aspect.

 

One thing we could do to help you, is to cut iText into several smaller products, and to offer those separate products for a specific price. Howver: currently, we are still giving priority to writing documentation (the book) and developing new functionality (e.g. Flash/Flex stuff).

Also: isn't it easier to have one jar that does it all? Do we want to create the hassle of users not knowing which jar to use for which task? I don't know. It's a question that has come up several times in the past year.

Kevin Brown replied on Thu, 2010/07/15 - 12:00pm

As the EVP of Sales of iText, I feel that some of the comments require clarification. First, iText's policy regarding pricing is quite the opposite of what is being portrayed here by one person in particular. iText actually does have published price list(s) for the three major categories of users. These fixed, documented price lists are sent out to all those who inquire to sales.

Just FYI -- there is pricing for perpetual licenses for End User Server and End User Desktop. There is subscription pricing for SaaS/Hosted based on total users or total documents produced/manipulated. There is pricing for embedding (OEM) for desktop and server. Many 100s have inquired and have received this pricing.

Obviously there is one person who has no idea, never asked, and then presents in a public forum what is quite opposite of the truth.

It is a business decision to publish or not publish pricing or better said, when to publish pricing. "Publish" in this sense meaning overtly publish as in post to a web site or storefront. Bruno is exactly correct in his analysis of that reason. Our current policy (1) gives an opportunity to flex pricing downward when required for specific situations in which many some may not inquire at all. It (2) also allows someone from sales to interact with the person and determine the true use to ensure that they are pricing their situation correctly and not just making wild assumptions. Lastly, as we are still early in our sales models, (3) we also need to be able to adjust pricing or price categories based on customer demand. This has already been done in the OEM models, adding new categories for smaller quantities of licenses for distribution to meet the needs of several iText licensors.

So, does iText have published pricing? Sure. Just ask and ye shall receive. Is iText's policy "Tell me how much money you have, and I'll tell you the price of my product" -- no. That is simply not true and in fact, that is exactly *not* our policy. If you question that, perhaps you should contact us or even one of our good customers -- like Jaspersoft -- who in fact commercially licenses iText for use in their products.

Kevin Brown
EVP Sales & Marketing
iText Software

Jakob Jenkov replied on Thu, 2010/07/15 - 2:35pm in response to: Kevin Brown

Thanks for the clarification. Put it on the IText website :-)

 

Anyways, Bruno, do I have to pay for MS SQL Server's ability to store BLOB's, if I don't store BLOB's ? 

I sure do.

Mark Unknown replied on Thu, 2010/07/15 - 7:40pm

First - Bruno - wonderful software and you do deserve to be paid for it. And if i ever make money off of my software ... . I do hope the book is included if someone buys the commercial license.

The issue I see is that products like BIRT and Seam will no longer be able use iText because of license conflicts. Not sure where they will turn.

Ali - BIRT switched to iText because FSO was a dog.

Sue Sims replied on Fri, 2010/07/16 - 9:50pm

Check out Qoppa Software.
Qoppa Software offers a range of solutions to work with PDF documents including:

- desktop tools,

- command line interfaces,

- java libraries and

- an advanced automation server.

They offer free downloads for review, and have clearly posted pricing on their website: www.qoppa.com.

I will be very interested to see what you think of their offerings.

Booster Gold replied on Wed, 2010/09/22 - 4:02pm

i like to use <a  href="http://www.ecrion.com">xsl-fo</a>. it can be a crazy thing to work with sometimes. Overall, i think its the best.

J Doe replied on Mon, 2010/10/25 - 9:28pm in response to: Kevin Brown

You are entitled to choose how you want to run your company and license your product.  By all means you are entitled to totally ignore the following and be on your merry way. However, I am trying to provide a constructive criticism of some of your business aspects as I would like to see iText relavant.

 I am looking for a server-side form filling solution for PDFs. Your product may be able to great things but at end of day it is important to see what typical customers needs. Frankly speaking, I am not looking at iText as a possible solution for my product because its price is not disclosed and in my mind I have some doubts similar to some inferred by Jakob's comments. Natural inclination is to prop up something like pdfbox if it can do the trick (and if necessary contribute to it).

However, having started a very successful open source products/company and ultimately losing to other open source projects after doing the same mistakes you seem to be doing here, I urge you to consider a less hawkish commercial licensing. Yes, your software looks like a great package today and I have no doubt you will strive to make it better tomorrow but there will always be better open source projects that are amenable to commercial licensing and shall do some aspects better - and when not all aspects of your product are simultaneously required, perceived value dimishes. E.g. Microsoft office may have great word processor features but if all I do is basic word processing most of the times, I may be inclined to use better alternatives.

iText has done many things good at technical level. Consider an option to break-open certain features for free commercial use and charge for premium features. There is a need for supplementing other content formats with PDF for business and legal transactions. Facilitate simple template based content, XFA form filling, digital signature for free for commercial purposes and make money by providing support for it. If you don't someone else will and then you shall either become irrelavant for this most common task or like me, you shall be forced to do so anyways to compete - but you shall have lost some credibility and hence future market share.

Most medium to large businesses cannot run a complete solution on their own anyways. They need plenty hand-holding esp. for different data formatting and advanced media integration - charge higher support when they need such support as they are more tolerant of pay as you go approach. Adobe provides high end solutio. Why not provide a free low end solution for common tasks and then charge premium when user needs sophistication.

Of course, these are my random ramblings - as I have chosen not to use your solution. ;)

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.