What is an Acrobat Plug-in?

Understanding how plugins extend Adobe Acrobat's functionality and why they are essential for professional PDF workflows.

← Back to Blog

What is an Adobe Acrobat plug-in

What is an Acrobat Plugin?

An Adobe Acrobat plugin is a software component that can extend the functionality of the Adobe Acrobat reader/viewer application, a popular program for viewing, creating, and editing PDF documents. Plugins can add new features to Acrobat, such as the ability to create interactive forms, add watermarks, or perform advanced document processing tasks. Some plugins are developed by Adobe, while others are created by third parties. These plugins can be installed within the Acrobat application and are typically activated when a particular action or task is performed within the software. Plugins are built using the Acrobat SDK, which gives developers access to Acrobat's internal APIs.

Why Do We Need Plugins?

To make Adobe Acrobat more flexible and applicable to a broader range of industries and organisations, the number of built-in features must be restricted to the wider community. This is because adding features that serve only a small portion of Acrobat's user base would unnecessarily increase the application's size. Consequently, plugins are required to add functionality as needed by the user.

Adobe provides a Software Development Kit (SDK) that allows third-party developers to create plugins that integrate seamlessly with Acrobat. This approach enables a thriving ecosystem of specialised tools that extend Acrobat's capabilities in ways that would not be practical to include in the core application.

Can Acrobat Plugins Be Used in the Adobe Reader?

Special support needs to be added to the plugin so that it can run under Adobe Reader. However, the Reader plugin will require a special licence and needs to go through an approval process with Adobe Systems Inc.

This means that while most plugins are designed for the full version of Adobe Acrobat, it is possible to make them work with the free Adobe Reader, subject to Adobe's approval and licensing requirements.

Are Plugins Specific to a Particular Version of Adobe Acrobat?

Probably the biggest change in this last year was the introduction of the 64-bit version of Acrobat, which has also meant the rebuilding of our Acrobat Plugins to support it — see our post on the 64-bit plugin update for details. This has basically meant a rebuild of all plug-ins so that they will run on both platforms. In this process we decided to remove a number of our products that are now decades old and concentrate on maintaining and improving a subset of the products.

While the Acrobat API maintains a degree of backward compatibility, major platform changes such as the move to 64-bit architecture require plugins to be recompiled and potentially updated. Developers must ensure their plugins are compatible with the target version of Acrobat.

Examples of Plugins

Mapsoft has developed a range of Adobe Acrobat plugins that demonstrate the breadth of functionality that can be added through the plugin architecture:

  • New security handlers that might be specific to a particular organisation. For example, we have developed security handlers that do not allow PDF files to be viewed outside a particular organisation's offices.
  • New annotation types. For example, we created a plugin that supported all of the British Standard Markups.
  • Flattening annotations and form fields into the main document. This ensured that they could not be changed or modified and that they would print as part of the document even if the printing of annotations was switched off.
  • Adding text and images to PDF files.
  • Creating a table of contents for PDF files.
  • Automating the creation of bookmarks based on the styles in a PDF file.
  • Adding fields for variable data printing.
  • Hardware integration of Adobe Acrobat into whiteboards and interactive tables.

Related Resources

The Acrobat Plugin Architecture

Acrobat's plugin architecture is a C/C++ framework that loads shared libraries (DLLs on Windows, dylibs on macOS) at application startup. Each plugin exports a small set of entry points that Acrobat calls during the application lifecycle: initialisation, idle processing, and shutdown. During initialisation, the plugin registers its callbacks, menu items, toolbar buttons, annotation handlers, and any other hooks it needs.

Acrobat communicates with plugins through a set of Host Function Tables (HFTs) — essentially vtable-style function pointer arrays for each API layer. A plugin imports the HFT for each layer it uses and calls functions through those pointers. This indirection layer is what allows Adobe to update Acrobat's internal implementation without breaking binary compatibility with existing plugins, provided the function signatures remain stable.

The API Layers: Core, AV, PD, and COS

The Acrobat SDK exposes four main API layers, each operating at a different level of abstraction.

The COS layer (Carousel Object System) is the lowest level, giving direct access to the PDF file's object model: dictionaries, arrays, streams, names, and references. If you need to manipulate the raw PDF structure — reading or writing arbitrary dictionary entries, working with indirect objects, or handling features that the higher-level APIs do not expose — you work here. It requires the most knowledge of the PDF specification but gives the most control.

The PD layer (Portable Document) sits above COS and provides higher-level abstractions: pages, annotations, bookmarks, form fields, and document-level operations. Most PDF content manipulation happens through the PD layer. Creating a bookmark, reading annotation properties, or extracting text are all PD-layer operations. This is where the majority of plugin development work lives.

The AV layer (Acrobat Viewer) handles everything related to the user interface: the document view, toolbars, menus, dialogs, selection state, and user interactions. If your plugin needs to respond to page changes, add a toolbar button, or display a custom dialog, it uses the AV layer. The AV layer is specific to Acrobat's desktop environment — it has no equivalent in the headless Adobe PDF Library.

The ASFile and ASFixed layers handle cross-platform file I/O and fixed-point arithmetic respectively — the latter being a legacy of Acrobat's origins on hardware without reliable floating-point performance. Modern plugins use these less often, but they appear in older codebases.

Plugins vs Acrobat JavaScript

Acrobat also supports JavaScript automation through an embedded ECMAScript engine. The choice between JavaScript and a compiled C++ plugin is worth thinking through carefully, because they genuinely suit different purposes.

JavaScript is excellent for document-level automation: processing form data, running batch operations via Action Wizard, responding to document events like opening or saving, and simple manipulations of bookmarks, annotations, and page content. It is far faster to develop and deploy — a JavaScript sits in a text file that Acrobat loads from a designated folder, with no compilation or signing required. For many professional automation needs, JavaScript is sufficient and significantly cheaper to build and maintain.

Compiled plugins become necessary when you need performance that JavaScript cannot deliver: processing large documents page-by-page at speed, implementing custom rendering, building new annotation handlers with their own appearance streams, creating complex custom dialogs, or accessing API functionality that Adobe has not exposed to JavaScript. The Acrobat SDK gives you essentially unrestricted access to Acrobat's internals; JavaScript is a scripted layer on top of a subset of that functionality.

The other significant difference is deployment. JavaScript files simply need to be placed in the right folder; plugins need to be installed, are subject to signing requirements, and must match the target platform architecture (32-bit vs 64-bit, Windows vs macOS). This makes plugin distribution more involved, particularly in managed enterprise environments where software installation requires IT approval.

The Security Model

Adobe introduced enhanced plugin security requirements alongside the transition to 64-bit Acrobat. Plugins must be digitally signed by a certificate that chains to an Adobe-trusted root. Unsigned plugins will not load in current versions of Acrobat without explicitly downgrading the security settings — a step that most enterprise IT departments will not permit.

Obtaining the necessary code-signing certificate requires joining the Adobe Technology Partner Programme, which carries its own cost and approval process. This is a non-trivial barrier for small development teams, but it serves a real purpose: it prevents malicious actors from distributing plugins that appear legitimate to Acrobat while executing harmful code with the elevated privileges that a plugin's close integration with Acrobat provides.

Reader Extensions — plugins that run in the free Adobe Reader rather than the full Acrobat — require a separate and more stringent approval from Adobe, reflecting the broader attack surface of the free Reader's massive installed base.

Deployment Considerations

Enterprise deployment of Acrobat plugins is typically handled through system management tools like Microsoft Endpoint Configuration Manager or similar, pushing the plugin DLL to the correct installation directory alongside the required trust configuration. Getting this right across a heterogeneous estate of Windows and macOS machines, with different Acrobat versions potentially in use across departments, is one of the genuinely frustrating aspects of plugin deployment at scale.

Acrobat's plugin load path is version-specific, so plugins for Acrobat 2020 do not automatically appear in Acrobat DC, even when both are installed on the same machine. When Acrobat updates itself — which it does silently and automatically under Creative Cloud management — the plugin installation should survive if the plugin is installed in the application-level plugin directory rather than a user-level one. In practice, enterprises often pin their Acrobat version to avoid exactly this kind of disruption to critical plugin-dependent workflows.

The Future of Acrobat Extensibility

Adobe has been moving its extensibility model across Creative Cloud towards UXP (Unified Extensibility Platform), the JavaScript-based plugin framework that now underpins extension development for Photoshop, InDesign, and Illustrator. Acrobat has not yet fully transitioned to UXP, but the direction of travel is clear. The longer-term roadmap will likely see Acrobat's plugin interface supplemented by UXP-based extensions that can be distributed through Adobe's Exchange marketplace without the compilation and signing overhead of the current SDK model.

For sophisticated document processing that cannot wait for that transition, compiled C++ SDK plugins remain the only option. The investment in building and maintaining them is significant, which is why engaging a specialist developer with deep SDK experience — rather than attempting to build in-house — typically produces better results and lower long-term cost of ownership.

Related Articles

The Acrobat Software Developer's Kit

Unlock the full potential of PDF manipulation with the Acrobat SDK and C++. Learn how to customize and enhance PDFs using Visual Studio and the Adobe Acrobat SDK.

How to Create a Plug-in for Adobe Acrobat Using the SDK

Learn how to develop an Adobe Acrobat plug-in that adds a custom menu item using the Acrobat SDK, C++, and Visual Studio. Step-by-step guide with code examples.

Introduction to Acrobat JavaScript

Learn the basics of Acrobat JavaScript for automating PDF workflows, manipulating documents, and building custom solutions in Adobe Acrobat.

Looking for Acrobat Plugin Solutions?

Mapsoft has been developing professional Adobe Acrobat plugins for over 30 years. Explore our products or discuss a custom solution.