What is PDFlib?

What is PDFlib?

PDFlib is a well-established developer component for generating and manipulating PDF documents. PDFlib’s main targets are dynamic PDF creation on a Web server and PDF creation in any kind of server, desktop or mobile application. You can use PDFlib to dynamically create PDF documents from database contents, similar to dynamic Web pages. Since 1997 PDFlib has proven itself in a wide range of use cases and development environments. Application programmers use PDFlib to create PDF output with text, images, graphics and interactive elements.

PDFlib is in active use by tens of thousands of users worldwide. The large-scale deployment helps us to improve and fine-tune the API, the internal implementation and the generated PDF output. Conformance to the relevant ISO standards for PDF, PDF/A, PDF/X, PDF/UA and PDF/VT as well as compatibility with common PDF viewers have high priority. PDFlib supports all features provided by the PDF format.

The PDFlib product family is available in three different flavors: PDFlib, PDFlib+PDI (PDF Import), and the PDFlib Personalization Server (PPS) with the PDFlib Block Plugin for Adobe Acrobat.


PDFlib offers methods for generating PDF documents with text, graphics, images, and interactive elements such as annotations or bookmarks.  The PDFlib API supports PDF creation on different levels which can freely be mixed.

Low-level APIs allow you to place individual items on the page, using formatting information provided by the application. An application which already determined the layout (e.g. for screen display) can directly place text, images and other objects on the PDF page.

High-level APIs support powerful formatting features:

  • Single-line text output with various formatting controls.
  • Textflow formatter for placing arbitrary amounts of text in one or more columns or pages. The text can be formatted in non-rectangular shapes, flow around images and contain interactive elements and structure information for Tagged PDF.
  • The flexible table formatter supports all types of contents in table cells like text, images, graphics and annotations or form fields. Large tables can be placed on multiple pages. Details of table formatting are controlled by a variety of options.
  • Image and SVG placement according to various fitting and formatting methods.

PDFlib+PDI (PDF Import)

PDFlib+PDI includes all PDFlib functions plus the PDF Import Library PDI which incorporates existing PDF pages and interactive elements in the generated PDF output. Use PDFlib+PDI for all PDFlib tasks plus the following:

  • impose multiple PDF pages on a single sheet
  • add text, such as headers, footers, stamps, or page numbers to existing PDF pages
  • place images, e.g. company logo, on existing pages
  • rearrange, assemble or amend PDF pages while maintaining PDF/A, PDF/X or PDF/UA conformance

PDFlib Personalization Server (PPS) and PDFlib Block Plugin

The PDFlib Personalization Server (PPS) includes PDFlib+PDI plus additional methods for variable data processing using PDFlib Blocks. PPS makes applications independent from layout changes.

The designer creates a layout PDF and marks areas as placeholders for variable text, images and graphics using the PDFlib Block Plugin for Acrobat. Each Block contains a variety of Block properties such as font size, color, image scaling options etc. The PDFlib Block Plugin offers a Preview feature which shows the results of filling Blocks according to the specified properties.

The developer writes code to fill PDFlib Blocks with text, images, vector graphics or PDF pages. He doesn’t need to know the formatting or position of a Block. Use PPS for all PDFlib+PDI tasks plus mail merge with text and images, template filling for transactional and statement processing, personalizing promotional material, generating individual parts catalogs from a database or producing customized documentation for multiple products.

Supported Development Environments

The PDFlib family is everywhere - it runs on practically all computing platforms. We offer 32-bit and 64-bit packages for all common flavors of Windows, macOS, Linux and Unix, as well as for IBM System i and IBM Z mainframe systems. Versions for iOS and Android are also available.

The PDFlib core is written in highly optimized C and C++ code for maximum performance and small overhead. Via a simple API (Application Programming Interface) the PDFlib functionality is accessible from a variety of development environments:

  • C and C++
  • Java
  • .NET
  • Objective-C
  • Perl
  • PHP
  • Python
  • RPG (IBM System i)
  • Ruby