VOOZH about

URL: https://docs.apryse.com/core/guides/get-started/php

⇱ PHP PDF Library for Linux, Mac | Apryse documentation


Product:

Section:

Product:

Release notes
Viewer
Basic operations
Learn more
Annotation
MS Office
Generate via template
Conversion
Smart Data Extraction
Augmenting LLMs with Smart Data Extraction
PDF/A
Accessibility
Forms
Create
Page manipulation
PDF Editing
OCR
Digital signature
Search
Comparison
Bookmark
Optimization
Layer (OCG)
Print
Redaction
Sanitization
Security
Portfolio
Low-level PDF API
Handwriting ICR
Changelogs

PHP PDF library integration

Welcome to Apryse. PHP for the Apryse SDK is supported on Linux and macOS. To get started, choose your preferred platform from the tabs below.

macOS PHP 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.

Prerequisites

  • Targeting PHP8Please refer to PDFNet wrappers for more information
    • PHP8 with developer extensions and SWIG 4.1.0 and above.
  • 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 contact sales to purchase a commercial key or if you need any other license key assistance.

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

sh

1git clone https://github.com/PDFTron/PDFNetWrappers
  1. 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:

sh

1curl -L -O http://www.pdftron.com/downloads/PDFNetCMac.zip
2unzip PDFNetCMac.zip
  1. Now to move the headers and libraries in place, make sure you are in the PDFNetWrappers/PDFNetC directory and executeYou can delete PDFNetCMac.zip to free up space.Your /PDFNetC folder should be laid out like this like this:

sh

1mv PDFNetCMac/Headers/ .
2mv PDFNetCMac/Lib/ .

sh

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

sh

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

sh

1cmake -D BUILD_PDFNetPHP=ON ..
  1. Execute make followed by sudo make install.If all goes well, you should get a message which reads:

sh

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

sh

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

sh

1cp ../fix_rpaths.sh ../PDFNetC/Lib/
2cd ../PDFNetC/Lib/
3sudo sh ./fix_rpaths.sh
  1. Get your Apryse trial key.

License Key

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


The data that Apryse collects include:

  • The names and number of API calls
  • The number of pages in a document
  • The version of the SDK
  • The language of the SDK

For clarity, no other data is collected by the SDK and Apryse has no access to the contents of your documents.


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 ./RunTest.sh

Run all samples

  1. To run all tests, navigate to /Samples and execute:The tests will run one by one.

PHP

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

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:Run your application by executing php myApp.php. If all goes well, your console should output:

PHP

1<?php
2 include("../../../PDFNetC/Lib/PDFNetPHP.php");
3 PDFNet::Initialize("YOUR_APRYSE_LICENSE_KEY"); // PDFNet must be initialized before accessing any Apryse API
4 $doc = new PDFDoc();
5 $page = $doc->PageCreate(); // Start a new page
6 $doc->PagePushBack($page); // Add the page to document
7 $doc->Save("output.pdf", SDFDoc::e_linearized); // Save the document as a linearized PDF
8 echo nl2br("Hello World!\n");
9?>

sh

1PDFNet is running in demo mode.
2Permission: write
3Hello 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

Also check out the source for the PDFNetC wrappers.

Troubleshooting

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

Linux PHP 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 Linux. Your free trial includes unlimited trial usage and support from solution engineers.

Prerequisites

Strict PHP and SWIG version compatibility

Having a single version of SWIG and PHP installed on the server is preferred. Any other combinations of SWIG and PHP versions not listed below is likely to encounter problems. If your build is not working as expected then please double check the version numbers. Installing multiple versions of SWIG and PHP may also produce issues.

  • Targeting PHP8Please refer to PDFNet wrappers for more information
    • PHP8 with developer extensions and SWIG 4.1.0 and above.
  • 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 SDK for Linux:

Download the SDK

Run Apryse SDK in production

A commercial license key is required for use in a production environment. Please contact sales to purchase a commercial key or if you need any other license key assistance.

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

sh

1git clone https://github.com/PDFTron/PDFNetWrappers # Git clone the code.
  1. Navigate to PDFNetWrappers/PDFNetC and download the PDFNet C/C++ SDK into that directory. Ensure you obtain the right architecture for your PHP interpreter. For example, if your interpreter is 64bit (which this guide will assume), execute

sh

1cd PDFNetWrappers/PDFNetC # Move to where we download PDFNet.
2wget http://www.pdftron.com/downloads/PDFNetC64.tar.gz # Download PDFNet.
3tar xzvf PDFNetC64.tar.gz # Unpack PDFNet.
  1. Unpack PDFNetC64.tar.gz by tar xvzf PDFNetC64.tar.gz, then executeto move the PDFNet libraries in place.You can delete PDFNetC64.tar.gz to free up space.Your /PDFNetC folder should be laid out like this like this:

sh

1mv PDFNetC64/Headers/ . # Move PDFNet Headers/ into place.
2mv PDFNetC64/Lib/ . # Move PDFNet Lib/ into place.

sh

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

sh

1cd .. # Go back up /PDFNetWrappers.
2mkdir Build # Create a directory to create the Makefiles in.
3cd Build # Move to that directory.
  1. Execute make followed by sudo make install. It is important when installing the php-dev directories to target the same version of PHP you're utilizing, otherwise it will pull the latest and likely cause build errors. For instance for PHP 7.4 execute sudo apt-get install php7.4-dev.If all goes well, you should get a message which reads:

sh

1sudo apt-get install php-dev # add php-dev for required PHP include directories
2cmake -D BUILD_PDFNetPHP=ON .. # Create the Makefiles with CMake.
3make # Build the PHP wrappers with SWIG.
4sudo make install # Copy the PHP wrappers to where the samples can find them.

sh

1Build files have been written to ~/PDFNetWrappers/Build
  1. Please note that you may need to register PDFNetPHP.so as an extension to your PHP by adding the following line in all your php.ini files:You may also need to enable dynamic loaded extensions by updating enable_dl = On in all your php.ini files as well.

sh

1extension=/full/path/to/PDFNetPHP.so

sh

1enable_dl = On
  1. Get your Apryse trial key.

License Key

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


The data that Apryse collects include:

  • The names and number of API calls
  • The number of pages in a document
  • The version of the SDK
  • The language of the SDK

For clarity, no other data is collected by the SDK and Apryse has no access to the contents of your documents.


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 ./RunTest.sh

Run all samples

  1. To run all tests, navigate to /Samples and execute:The tests will run one by one.

PHP

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

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:Run your application by executing php myApp.php. If all goes well, your console should output:

PHP

1<?php
2 include("../../../PDFNetC/Lib/PDFNetPHP.php");
3 PDFNet::Initialize("YOUR_APRYSE_LICENSE_KEY"); // PDFNet must be initialized before accessing any Apryse API
4 $doc = new PDFDoc();
5 $page = $doc->PageCreate(); // Start a new page
6 $doc->PagePushBack($page); // Add the page to document
7 $doc->Save("output.pdf", SDFDoc::e_linearized); // Save the document as a linearized PDF
8 echo nl2br("Hello World!\n");
9?>

sh

1PDFNet is running in demo mode.
2Permission: write
3Hello 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

Also check out the source for the PDFNetC wrappers.

Troubleshooting

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

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales