Portable Document Format (PDF) is a file format created by Adobe Systems in 1993 for document exchange. The format includes a subset of the PostScript page description programming language, a font-embedding system, and a structural storage system.
Over the years PDF has become an extremely important file format. If you want to create documents that can be viewed under all major operating systems, PDF is the ticket, as it maintains the overall look and feel of documents regardless of what platform they are viewed under.
There is a large range of PDF-related software available with many different applications available that can both output to and open files. Many open source software save documents to this format such as LibreOffice and GIMP.
The purpose of this article is to recommend free and open source PDF development libraries. We are not considering PDF editors, PDF viewers, tools that add an OCR layer to PDF files here. This is because these categories are covered by other articles in our Best Free and Open Source series.
Here’s our verdict on the finest PDF libraries captured in a legendary LinuxLinks-style ratings chart. Only free and open source software is eligible for inclusion here.

Click the links in the table below to learn about each library.
| PDF Development Libraries | |
|---|---|
| PDFBox | Create, render, print, split, merge, alter, verify and extract text and metadata |
| TCPDF | PHP class for generating PDF documents |
| Poppler | Library for rendering PDF files, and examining or modifying their structure |
| PDFKit | PDF document generation library for Node and the browser |
| pdfcpu | PDF processing library |
| Apache FOP | Print formatter driven by XSL formatting objects |
| QPDF | Library and programs that inspect and manipulate the structure of PDF files |
| PoDoFo | Parse PDF files and modify their contents into memory |
| OpenPDF | Library for creating and editing PDF files; fork of iText |
| xhtml2pdf | HTML to PDF converter using Python |
| libHaru | Library for generating PDFs |
| CapyPDF | Fully color managed PDF generation library |
| pdf-lib | Create and modify PDF documents in a JavaScript environment |
| PDFio | PDF read/write library |
| PDFsharp | .NET library for processing PDF files |
| JasperReports | Reporting engine written in Java |
| CamlPDF | OCaml library for reading, writing and modifying PDF files |
This article has been updated to reflect the changes outlined in our recent announcement.
Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk. You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more. Know a useful open source Linux program that we haven’t covered yet? Let us know by completing this form. |


Hey there You have done a fantastic job I will certainly digg it and personally recommend to my friends Im confident theyll be benefited from this site
You included Apache FOP and JasperReports. Only thing related to PDF in these libs are these can generate output as PDF, like most other modern libs that can export file.
Instead, you can include many other great PDF libs like following:
– QPDF
– PDFsharp
– CapyPDF
– OCRmyPDF
This comment was received as an email. We prefer comments of this nature to be posted direct to the site.
Thanks for posting the email.
You should add PDFjet, PDFsharp and PDFKit to the list.
Thanks Tarek, we’ll take a look at them.
I’m not exactly sure how I got here, but I thought this post was fantastic. I don’t know who you are, but if you’re not already, you’re going to be a well-known blogger. Cheers.