OpenPDF – A free Java library for creating and editing PDF files
github.com
github.com
LibrePDF/OpenPDF
forked from rtfarte/OpenPDF
forked from kulatamicuda/iText-4.2.0
forked from daviddurand/iText-4.2.0
forked from ymasory/iText-4.2.0I wish I was smarter and could debug further. Issue doesn't happen standalone but happens in a qt5 plugin for GDAL. I was hoping to find any other implementation of array to tiff in order to avoid this crash. Alas.
We heavily use GDAL/rasterio/numpy at work with no real problems.
in order to save others the search
Used PDFBox a couple of projects ago. It was great! Very nice API, works like a charm.
API was pretty intuitive, plus some googling and reading stackoverflow. And yes, browsing the source. I don't remember encountering any major problems with it.
It's incomplete because I haven't yet figured out how to define the defining character ":"...
It does require that you license code which runs on it as GPL, which I consider onerous. But it works! If that constraint suits you.
At least some of the file headers say 2+, the readme says 3.0+, but this note was added after the fork, with commit https://github.com/daviddurand/iText-4.2.0/commit/312abf7b12... so it may be in error?
If it was in error, does this affect any merged code pieces/PRs submitted/merged after the readme was changed, or do the license headers per-file take precedence?
Thankfully, iText later coordinated release numbers for both platforms to 5.x numbering when they changed the license to AGPL.
So, you should be safe using this version of iText under LGPL or Mozilla, but it's a fairly old release of the library. If you're just using iText for your hacking projects, you're probably better off going with a more recent version.
Although if you are looking to convert real web pages to PDF, then this is not a good choice.
https://github.com/flyingsaucerproject/flyingsaucer
For more controlled results you could use Prince.
I feel the same way about Adobe’s Creative suite subscription. I use it’s unique capabilities about once every 6 months. I wish there was a one week license.
Plus it is untested in court just how far its provisions go.
You can put ProductX on a server and never actually distribute ProductX to anyone. By not distributing ProductX, you don't have to distribute the ProductX source code to anyone -- although technically it IS under the GPL. Since you're not distributing the binary, you don't have to distribute the source. Yet the public can interact with your server and make use of ProductX's services.
The AGPL prevents that. If you write your code ProductX and link it with AGPL code, then ProductX comes under the AGPL license. But now, merely letting the public interact with ProductX on a server requires you to distribute the AGPL source code to ProductX. Now anyone else has the ProductX source code and can compete with you.
The AGPL is also a way for the author of an AGPL library to make money. A library such as iText. If you want to use iText with a proprietary ProductX, then you need to buy a separate commercial license for iText.
If the developer's intent in ProductX is to keep the source code private, then the developer cannot link ProductX with any AGPL licensed code such as iText -- unless the developer is willing to pay for a commercial license to iText.
A developer should never have code that they didn't write themselves, such as a library, unless that library is under a license that the developer can always remain in full compliance with. That includes proprietary and commercial libraries as well as open source libraries. While AGPL is "open source" if you cannot comply with the terms, then don't use it.
Finally, avoid any code you find on the internet that has "no license". If you use such code, the copyright owner of that code could sue you for copyright infringement. "But wait!" they say. "I would never sue anybody, I just want as many people as possible to use my code, so I don't put it under any license." I say: If you're not going to sue me, then put that promise in writing. it's called a license. If you're such a good guy and aren't going to sue me, then put it in writing like all other open source licensed code.
Except for the server bit, the restriction being described is called copyleft. And it appears in all GPL licenses, except LGPL. Some of the major OSS in use today is released under it: Linux, MySQL and MariaDB, VLC, and of course all the FSF software, such as GCC.