Skip to Content

Upgrading Adobe C/C++ Applications from APDFL 18 to APDFL 21

Estimated Reading Time: 3 Minutes
Overview

Upgrading an existing Adobe PDF Library (APDFL) C/C++ application to v21 primarily involves updating library references, replacing supporting files, and rebuilding the application. Existing API calls can generally remain unchanged.

APDFL v21 uses Adobe's v21 core and includes improvements to PDF processing, font support, and document conversion. For more information, refer to the APDFL v21 Release Notes.

The existing C++ interface is now called **Adobe C/C++** and remains supported. Moving to the separate Modern C++ SDK is optional and is not required for this upgrade.

 

Before You Begin

Install APDFL v21 in a separate directory from v18. Choose the distribution that matches your application's platform, architecture, and licensing model.

Check the Adobe C/C++ Supported Environments page, particularly if you use a 32-bit build:

-The listed Linux environments require glibc 2.34. Linux 32-bit is no longer supported.
- Windows x86 is available only in the non-License-Managed distribution.
- AIX requires v21.0.0PlusP1d or later.

For License-Managed applications, confirm that your license file or license server is compatible with the target release. The licensing API is unchanged, but the underlying licensing components have been updated.

 

Update the Project

1. Update the Windows Library References

In Visual Studio, update these project properties for each build configuration:

Project propery APDFL v21 setting
Linker > Input > Additional Dependencies Replace `DL180PDFL.lib` with `DL210PDFL.lib`
Linker > Input > Delay Loaded Dlls Replace `DL180pdfl.dll` with `DL210pdfl.dll`, if present. Leave this setting blank if delay loading is not used.
C/C++ > General > Additional Include Directories Point to the v21 headers.
Linker > General > Additional Library Directories Point to the v21 binaries for the application's architecture.

In the SDK layout used by the supplied samples, these directories are `CPlusPlus\Include\Headers` and `CPlusPlus\Binaries`. Relative paths can remain the same if they resolve to the new installation.

The v21 samples use the Visual Studio 2022 `v143` toolset. Visual Studio 2017 and 2019 are also listed as supported for Adobe C/C++.

Keep the existing HFT configuration, including `PRODUCT="HFTLibrary.h"`. The upgrade does not require changing your `DURING` / `HANDLER` exception handling.

2. Check Explicit Library Loading

If your application loads APDFL directly, update the DLL name:

```cpp
// APDFL 18
LoadLibrary(L"DL180PDFL.dll");

// APDFL 21
LoadLibrary(L"DL210PDFL.dll");
```

Also review any copied `InitializeLibrary.cpp` sample code, post-build commands, and installer scripts for references to `DL180` or the v18 installation directory.

For Linux, macOS, and AIX builds, update `-lDL180pdfl` to `-lDL210pdfl` and point the include, library, and runtime search paths to v21. Review any explicit `dlopen()` filenames as well. On Linux, `ldd` can help confirm which shared libraries are being loaded.

3. Replace the Supporting Files

Deploy the v21 headers, initialization support source, binaries, required plug-ins, and `Resources` directory together. Avoid mixing files from different SDK releases.

Update hard-coded resource filenames in deployment scripts. For example, ICU data files named `icudt26b.dat` and `icudt26l.dat` become `icudt78b.dat` and `icudt78l.dat`. Copying the current `Resources` directory also includes updated CMaps and color profiles.

4. Clean, Rebuild, and Verify

Clean the build output and rebuild against v21. Run representative documents through your application and check the results. Successful compilation does not guarantee byte-identical output: rendering, font matching, and color conversion can change with the newer core.

If linking or initialization fails, check for stale v18 paths, missing dependencies, architecture mismatches, or an unavailable license. Also confirm that resource paths point to the v21 files.

How to Get Additional Help

Contact Datalogics Tech Support 

Fetch the answers quickly using our AI assistant Scout, available for any language. Scout also opens access to our MCP server, connecting APDFL with your favorite AI tools for faster and easier coding.

Upgrading Adobe C/C++ Applications from APDFL 18 to APDFL 21
  • COMMENT