Some test text!

Hamburger Icon

Mac / Guides / PHP

PHP & macOS PDF library integration

This guide will help you build your own PDFNet PHP wrappers by binding a free trial of the PDFNetC library to PHP. It will also show you how to run Apryse samples and integrate the Apryse SDK into PHP applications on macOS. Your free trial includes unlimited trial usage and support from solution engineers.


  • Targeting PHP8

    • PHP8 with developer extensions and SWIG 4.1.0 and above.

    Please refer to PDFNet wrappers for more information

  • Targeting PHP7

    • PHP7 with developer extensions and SWIG 3.0.12 OR SWIG 4.0.2 and above
  • Targeting PHP5

    • PHP5 with developer extensions and SWIG 2.0.4 - 2.0.12
  • CMake version ≥ 2.8

  • Apryse's PHP PDF library for macOS:

NOTE: If you're using PHP 7 We highly recommend that you install PHP it using Homebrew

Download the SDK

Run Apryse SDK in production
A commercial license key is required for use in a production environment. Please fill out our licensing form if you do not have a valid license key.
Keep your commercial license key confidential.
License keys are uniquely generated. Please make sure that it is not publicly available (e.g. in your public GitHub).

Initial setup

  1. Make a directory to store the wrappers and navigate into that directory.

  2. Clone the uncompiled PDFNet wrappers by executing

    git clone
  3. Navigate to PDFNetWrappers/PDFNetC and move the downloaded [PDFNet C/C++ SDK] for macOS(#prerequisites) into that directory and unzip it. Ensure you obtain the right architecture for your PHP interpreter. This can be done with these two commands:

    curl -L -O
  4. Now to move the headers and libraries in place, make sure you are in the PDFNetWrappers/PDFNetC directory and execute

    mv PDFNetCMac/Headers/ .
    mv PDFNetCMac/Lib/ .

    You can delete to free up space.

    Your /PDFNetC folder should be laid out like this like this:

    ├── Headers
    ├── Lib
    ├── PDFNetCMac
    └── README.txt
  5. Make a build directory inside /PDFNetWrappers and navigate to it. This guide will assume the build directory is called Build.

    cd .. # Go back up /PDFNetWrappers.
    mkdir Build # Create a directory to create the Makefiles in.
    cd Build # Move to that directory.
  6. Generate the Makefile with cmake.

    cmake -D BUILD_PDFNetPHP=ON ..
  7. Execute make followed by sudo make install.

    make # Build the PHP wrappers with SWIG.
    sudo make install # Copy the PHP wrappers to where the samples can find them.

    If all goes well, you should get a message which reads:

    Build files have been written to ~/PDFNetWrappers/Build
  8. Next we need to fix the rpaths issue on Mac. While still in the same Build directory, execute these lines:

    cp ../ ../PDFNetC/Lib/
    cd ../PDFNetC/Lib/
    sudo sh ./
  9. Get your Apryse trial key.

    Apryse collects some data regarding your usage of the SDK for product improvement.

    If you wish to continue without data collection, contact us and we will email you a no-tracking trial key for you to get started.

You are now ready to run the samples or integrate Apryse SDK into your own application.

Run the samples

Run a specific sample

  1. To run a test, navigate to the PHP folder in the sample, for example /Samples/AddImageTest/PHP and execute ./

Run all samples

  1. To run all tests, navigate to /Samples and execute:

    cd ../../Samples # Move to the Samples directory.
    ./ # Run all PHP code samples, using the new wrappers.

    The tests will run one by one.

Output files will be in /Samples/TestFiles/Output

Integrate into your application

This section will show you how to use our SDK to create a simple Apryse "Hello World!" application. It will create a document with one blank page and save it as a linearized PDF in its running directory.

  1. Navigate into your /Samples directory and make a new directory called myApp (if it does not exist already). This guide will assume your application is named myApp. For organization, create a new directory inside myApp called PHP.

  2. Navigate inside that PHP directory and create a new PHP file called myApp.php. Open it with your favorite text editor and paste this into it:

        PDFNet::Initialize("YOUR_APRYSE_LICENSE_KEY");       // PDFNet must be initialized before accessing any Apryse API
        $doc = new PDFDoc();
        $page = $doc->PageCreate(); // Start a new page
        $doc->PagePushBack($page); // Add the page to document
        $doc->Save("output.pdf", SDFDoc::e_linearized); // Save the document as a linearized PDF
        echo nl2br("Hello World!\n");

    Run your application by executing php myApp.php. If all goes well, your console should output:

    PDFNet is running in demo mode.
    Permission: write
    Hello World!<br />

Check the output.pdf that the program output in the same directory. It should be a PDF with one blank page.

Next step

Guides Samples

Also check out the source for the PDFNetC wrappers.


Check the troubleshooting page and our PDFNetWrappers github if you run into any issues going through this document.

Have questions? Connect with our experts on Discord.