The Forms Extension is delivered as a self-extracting executable and is installed in a way similar to the Adobe PDF Library. The Adobe PDF Library must be installed first because the Forms Extension cannot be used without the Library.
Note: All of the dependencies related to the Forms Extension are described below. When you distribute an application based on Adobe PDF Library and the Forms Extension, all of the DLL files, software modules and plug-ins associated with the Forms Extension must be distributed with the Adobe PDF Library, in the same folder structure where they were installed. If you leave out any of these files or directories, it may cause an error.
The installation process prompts you to enter the directory where the Library is stored, defaulting to C:\Datalogics. You can select the directory where you have installed the Library, and the Forms Extension files will be copied into the existing Library folder structure.
The Forms Extension includes a set of C++, C# and Java sample program files that you can use to experiment with the product. These files are distributed with the Adobe PDF Library and found in the existing file folder structure that is created when the Library is installed. But you won’t be able to run them without installing the Forms Extension. When you install the Forms Extension, the binary files needed to use the product with the Adobe PDF Library are copied to the /Binaries folders that appear under the CPlusPlus, DotNET and Java folders.
Note: Forms Extension does not support multi-threading.
Note: Forms Extension has a dependency on the Visual Studio 2013 C++ Redistributable for x64, available from this web site.
Software module files
The Forms Extension includes a set of five software modules, all .ppi files. A .ppi file is a plug-in for Adobe Acrobat and the Adobe PDF Library; each .ppi file is effectively a Dynamic Link Library (DLL) for Windows. When the Adobe PDF Library initializes, it tries to load these. ppi files as dynamic libraries:
|DL150PDFLibPI.ppi||Interface for the above plug-ins to access APDFL|
These plug-in files communicate with the Adobe PDF Library through Host Function Tables (HFT), the mechanism that Adobe created to allow linking with a plug-in at run time. The Library works the same way as Adobe Acrobat, in that the Library looks in a pre-defined subdirectory and loads each DLL file. It then looks for an HFT structure in the DLL that specifies the entry points to each system function supported by the plug-in. New system functions are only exposed through the HFT mechanism. This process is entirely transparent to the user.
Barcode and print files
These additional files are provided with the Forms Extension:
|AdobePDF417.pmp||Used to generate PDF417 barcodes|
|DataMatrix.pmp||Used to generate Data Matrix barcodes|
|QRCode.pmp||Used to generate QR barcodes|
|Adobepdf.xdc||This XML file offers a printer description, required for sending a PDF document to a printer. It includes a standard list of fonts, details on how images and text are managed, paper and envelope descriptions, and other printer settings.|
|AXSLE.dll||Adobe Inc. XSLT Engine. XSLT, or Extensible Stylesheet Language, is a styling language used to transform XML files into other file types like HTML or text files.|
|piaglbreakfinder.dll||Used by Forms Extension to find line breaks in documents|
|icuuc40.dll||International Components for Unicode libraries|
|sqlite.dll||C Language SQL database engine|
The Forms Extension is licensed separately from the Adobe PDF Library, but the licensing arrangements for the Extension match those provided for the Library. You can download and install the Forms Extension for a free evaluation period, using a temporary license, or you can purchase and install the Forms Extension without license management after agreeing to terms and conditions. If you don’t already have a copy of Adobe PDF Library, you can also install an evaluation version of the Library with a temporary license. And you can request an evaluation copy of both the Adobe PDF Library and of the Forms Extension so you can work with and test the two products together.
When you install the Forms Extension, the installation process automatically changes the way that Adobe PDF Library responds to and manages PDF AcroForm and XFA form documents.
Note, however, that for the C++ Adobe PDF Library interface, the Forms Extension does not change the default value of the existing Adobe PDF Library flag to true. You must call PDPrefSetAllowOpeningXFA() with the value true. This interface allows the Library to open a PDF document that contains an XFA form and overrides internal behavior that leads to an error message that would otherwise be returned. This flag remains false by default, regardless of the presence of the Forms Extension. You will need to change it manually to work with the Forms Extension. After the plug-in is installed, no configuration changes are needed.
Also, for the C++ interface, a new enumeration value, kPDFLInitFormsExtension, needs to be used when setting the structure member flags of the PDFLInitiData structure used to initialize the Library. This new value actually initializes the Forms Extension.
For the C++ interface, the IsFormsExtensionSupported() API returns True if the Forms Extension dependencies are installed.
For the Java and .NET, the matching interface is called IsFormsExtensionAvailable().
The C++ sample programs show how to include the DLExtrasCalls.h header file. The public APIs are found in that header file.