Some test text!
Welcome to PDFTron. Currently, PHP for the PDFTron SDK is only supported on Linux.
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 PDFTron samples and integrate the PDFTron SDK into PHP applications on Linux. Your free trial includes unlimited trial usage and support from solution engineers.
CMake version ≥ 2.8
PDFTron SDK for Linux:
Make a directory to store the wrappers and navigate into that directory.
Clone the uncompiled PDFNet wrappers by executing
git clone https://github.com/PDFTron/PDFNetWrappers # Git clone the code.
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
cd PDFNetWrappers/PDFNetC # Move to where we download PDFNet. wget http://www.pdftron.com/downloads/PDFNetC64.tar.gz # Download PDFNet. tar xzvf PDFNetC64.tar.gz # Unpack PDFNet.
tar xvzf PDFNetC64.tar.gz, then execute
mv PDFNetC64/Headers/ . # Move PDFNet Headers/ into place. mv PDFNetC64/Lib/ . # Move PDFNet Lib/ into place.
to move the PDFNet libraries in place.
You can delete
PDFNetC64.tar.gz to free up space.
/PDFNetC folder should be laid out like this like this:
PDFNetC ├── Headers ├── Lib ├── PDFNetC64 └── README.txt
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.
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.
sudo apt-get install php-dev # add php-dev for required PHP include directories cmake -D BUILD_PDFNetPHP=ON .. # Create the Makefiles with CMake. 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
Please note that you may need to register
PDFNetPHP.so as an extension to your PHP by adding the following line in all your
You may also need to enable dynamic loaded extensions by updating
enable_dl = On in all your
php.ini files as well.
enable_dl = On
Get your PDFTron trial key.
Run a specific sample
PHPfolder in the sample, for example
Run all samples
To run all tests, navigate to
/Samples and execute:
cd ../Samples # Move to the Samples directory. ./runall_php.sh # Run all PHP code samples, using the new wrappers.
The tests will run one by one.
This section will show you how to use our SDK to create a simple PDFTron "Hello World!" application. It will create a document with one blank page and save it as a linearized PDF in its running directory.
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
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:
<?php include("../../../PDFNetC/Lib/PDFNetPHP.php"); PDFNet::Initialize(); // PDFNet must be initialized before accessing any PDFTron 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 />
output.pdf that the program output in the same directory. It should be a PDF with one blank page.
Check the troubleshooting page if you run into any issues going through this document.
Get the answers you need: Support