Adobe, Inc. introduced the Portable Document Format (PDF) in 1993. At about the same time, Adobe developed a set of C language tools they called the Adobe PDF Library (APDFL) for internal use, to support development work for PDF processing with their commercial products like Photoshop and InDesign. Adobe Acrobat is based on the code found in the Adobe PDF Library. Adobe management eventually thought that they might be able to market APDFL as a product in its own right and formed a partnership with Datalogics to that end in 1998.
In 2007, Datalogics created a pair of interfaces to allow developers to work with APDFL using Java and Microsoft .NET. The goal was to provide a means to seamlessly integrate modern programming languages with the original C language product, and thus make APDFL easier to use and understand. We originally referred to this Java and .NET Interface as the Datalogics Extension or Datalogics Enhancements (DLE). When we restructured the Adobe PDF Library software package in March of 2017, we stopped referring to “DLE” to make our product descriptions clearer for our customers and prospects. We still talk about “DLE” here at Datalogics, but we have removed references to DLE from the software, and the term no longer appears in our documentation.
Instead, we offer the Adobe PDF Library today with four interfaces:
- Core Adobe PDF Library provided by Adobe, Inc., based on C++
- Java Interface
- .NET Interface, C#
- .NET Core Interface, C#
The Java and .NET interfaces integrate with the APIs provided in the original Library. We also provide about 80 sample programs each to demonstrate how to work with the Java, .NET, and .NET Core interfaces, besides 65 samples for use with the original C++ interface, making it easier for developers to get started with what they are trying to accomplish. The product ships with a pair of API References, an HTML-based reference for Java and .NET generated using Doxygen, and a PDF document that details the APIs for the C++ Library. We also provide comprehensive online documentation and a Knowledge Base featuring questions asked by APDFL customers over the years, with answers from our engineers and support staff. The Java and .NET interfaces are nearly identical, and the Java and C# sample programs provided with the two interfaces are also almost a one-to-one match.
Most of the original APIs in Adobe’s original APDFL are mirrored in the Java and .NET interfaces, including all of the new ones introduced by Adobe into APDFL 15 and 18. The Java and .NET interfaces rely on the features and functions provided in the original product. For example, the interfaces do not provide their own software to open, edit, or save a PDF document. Rather, they rely on APDFL to do that. There is some unique code in Java and .NET for features not provided natively in APDFL, and to retrieve and process information from APDFL in a way that .NET and Java can work with that data. But most of the Java and .NET interfaces are generated on the fly using a Simplified Wrapper and Interface Generator (SWIG) platform that Datalogics created for that purpose.
SWIG is an open-source software development tool that connects programs written in C and C++ with many other programming languages like Java, C#, Perl, and Python. Datalogics uses SWIG to allow the Java and C# programs to call the Adobe PDF Library C and C++ programs.
Also, the original APDFL does not feature many defaults, so you need to know a lot of details to set up parameters and structures with initial values to use the product. But we provide good defaults for the Java and .NET interfaces, so you don’t need to approach them with any additional special knowledge. For example, you can simply run the utility to rasterize pages and generate a set of JPG or PNG images. Complicated steps to set up the interface to define a buffer, colors, bit depths, rows, and conversion values are not needed.
Even though PDF is nearly 30 years old, PDF remains today, arguably, with HTML, the most important document format used for digital communication and commerce. Our goal in providing these interfaces is to make it easy for you to use the popular Java and .NET programming languages when building your own applications for managing PDF documents, based on this essential Software Development Kit (SDK), the Adobe PDF Library. To learn more about APDFL’s capabilities or to start a free trial, please visit our APDFL product page.