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.2.

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 config.json or 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 may know from packages from Packagist.

For example the current version of the version 2 branch of the Core component can be installed by adding following dependency to your config.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.

Our repository requires authentication data: You can use your credentials of your account at to which your licenses are assigned. You will be asked for this during a composer run.

If you need to safe the credentials in your composer environment for e.g. a silten non-interactive installation you should define an individual password for composer in your profile.

See the composer documentation for more information on how to store your credentials for composer. If you don't want to write the auth.json your own, just use the following command:

composer config username password

Instructions for Evaluation Versions

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

An evaluation 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 an evaluation version through Composer the dependency management will automatically install an evaluation 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 evaluation package.

By installing an evaluation 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.