The versatile PDF creation and manipulation library for Ruby
See below for details
HexaPDF includes facilities for creating PDF documents from scratch, using advanced document layouting facilites.
HexaPDF can read existing documents and modify them in various ways, e.g. adding, modifying or deleting pages, annotations, form fields, files...
HexaPDF supports all password based encryption mechanisms, including AES 256bit, when reading and writing PDF files.
HexaPDF writes output PDF files as compactly as possible. Additionally, it can optimize existing PDF files to reduce their file size.
You can use HexaPDF anywhere since it runs in any Ruby 3.0+ compatible runtime.
While there are other Ruby PDF libraries, none of them provide the full spectrum of PDF features, like HexaPDF does.
The implementation adheres to the PDF 2.0 Standard and is tested on thousands of PDFs.
Ruby is slow? Not so much! Built with performance in mind, HexaPDF is mostly only 2.5 times slower than compiled solutions!
Care has been taken to make sure that HexaPDF doesn't unnecessarily use memory.
There are an in-depth API documentation and many examples available.
Every part of HexaPDF is thoroughly tested. The fast test suite ensures that it stays so.
HexaPDF comes with a CLI application for quickly performing the most common PDF tasks.
The commercial license covers the case where the use of the open source AGPL-licensed version is not possible or desirable.
For example, if you use HexaPDF in an application and distribute that application, you have to make the source code of the whole application available under the AGPL. The same applies if your application is used over a network, e.g. via a web server.
Businesses that want to use HexaPDF and want to steer clear of potential legal issues or don’t want to make their source code available need to buy a commercial license (for details see the text of the commercial license):
All licenses are sold as yearly subscriptions. Volume discounts may apply for the limited licenses. Please inquire for details.
Each license is perpetual, with one year of updates included. The last officially released version (not the last code pushed to the repository) before the invoice date plus one year may perpetually be used.
Contact sales@gettalong.at for more information!
In such a case the “Limited License (VMs only)” would be the correct choice. You generally need one license for each VM on which HexaPDF is used. Volume discounts may apply, please contact sales for details.
This depends on whether you have accurate time-based accounting of your host run times, i.e. you know when how many VMs were active for how long.
If you don’t fulfill that precondition, you would need to buy licenses for the maximum number of hosts to cover the case when all hosts are in use.
If you fulfill that precondition, the number of needed licenses would be calculated as the maximum for the past 12 months of “Total host run times in seconds per month divided by the seconds of the month, rounded up to the next integer”. That calculation would need to be done half-yearly and the number of licenses would then appropriately be adjusted.
Sure:
Let’s assume you always have three VMs which run code that uses HexaPDF 24/7. This means that you need at least 3 licenses.
There is a peak in one month (November) where you need to scale up to 20 VMs for 4 days.
So the calculation for this month would be
( 3 * 60 (sec) * 60 (min) * 24 (hours) * 30 (days) [the three permanent VMs]
+ 17 * 60 (sec) * 60 (min) * 24 (hours) * 4 (days)) [the 17 temporary ones]
/ (60 (sec) * 60 (min) * 24 (hours) * 30 (days)) = 5.27
Rounding up to the next integer means that you would need 6 licenses in November.
Note that this is an example manual calculation. You will probably have an invoice from the cloud provider which already lists the total run time per month.
The other months are calculated the same way (all other months result in 3) and the maximum of those 12 numbers, which is 6 in this example, would be the number of needed licenses.
No, only production hosts need a license. If you buy at least one commercial license, all development, testing, staging and CI hosts are included.
HexaPDF is developed as an open source library and application under the GNU Affero General Public License (AGPL).
The main website is
There you will find all the necessary information on usage, examples and documentation.
Everything that is available in the commercial version is also available in the AGPL version. This benefits the open source community since the other option, the open core model, would have meant that more advanced features wouldn’t be available. And businesses can have a look at everything that is available and easily decide beforehand, if HexaPDF is the right tool for their usecase.