Installation System requirements, installation and loading SetaPDF components

System Requirement

All SetaPDF 2 components will require PHP 5.6 as the minimum PHP version. The latest versions are tested on up to PHP 8.3.

An up to date PHP version (>8.x) is recommend for best performance and memory results.

Following PHP extensions must be enabled in the PHP configuration:

Because PDF parsing and writing is a performance intensive task the components should be used on a machine with a fast CPU. Also the max_execution_time value should be taken into account.

Same for memory usage. Because PDF documents are sometimes built with several thousands of individual objects, the components will need memory for managing these things. Maybe it is needed to touch the memory_limit value as well.


Download the package from your personal pickup depot or from the products download area. 

The downloaded package has to be extracted to a folder of your choice.

The components are usally shipped along with several PHP demos which are not needed for usage in a productive environment.

The main interresting files and folders which are needed to get the components running are located in the


folder. The PHP process should be able to read files and folders in this path.

With Composer

All SetaPDF components can be installed through Composer as well. We setup an own composer repository which has to be added to your projects composer.json first:

    "repositories": [
            "type": "composer",
            "url": ""

By adding the new repository you can add a dependency on the components to your projects composer.json as you know from packages from Packagist.

For example the current version of the version 2 branch of the SetaPDF-Core component can be installed by adding following dependency to your composer.json:

    "require": {
        "setasign/setapdf-core": "2.*"

You will find example composer.json snippets in a products download area or in your personal pickup depot.

Each package will provide autoload information so that you can use the autoloader instance from Composer.

The repository requires http-basic or http-bearer authentication. Please visit your personal Composer Settings page for more details.

Instructions for Trial Versions

The PHP files of a trial version are encoded with the Ioncube Encoder. To run these files a loader needs to be installed on your PHP environment.

A trial version is seperated into two parts: The PHP files and a license file.

License files are named .htSetaPDF-<COMPONENT-NAME>.icl and are available in your personal pickup depot.

Notice the dot at the beginning of the filename!
Some systems (e.g. MAC) automatically hide such files!

Read the following installation instructions for Ioncube:


The needed loaders and install instruction for the Ioncube Loader are available at:

The license files should be placed into the root folder library/SetaPDF/.

With Composer

If you install a trial version through Composer the dependency management will automatically install an trial license (if a license is available), so that you do not need to touch a license file at any time!

Please use the composer.json snippets from a products download area or your personal pickup depot which points the correct trial package.

By installing a trial version via Composer you will not have direct access to the demos that are shipped with each package.

General information about using SetaPDF with composer are available here.

Version Information

Version numbers are created by component and are represented by four integer values: 

The major version.
The minor version. Is incremented if a component got new featrues.
The maintenance version. Is incremented by each release of a minor version.
The revision number of the version control repository.

A component version number is defined in the VERSION constant of each component. E.g.: 

$coreVersion = \SetaPDF_Core::VERSION;

As of revision 997 a version number change in the SetaPDF-Core component will increase the version number of all other components, too. Before this revision the versioning was done individually.