Some test text!


Get started with C++

Welcome to PDFTron. C++ for the PDFTron SDK is supported on Windows, Linux, macOS. To get started, choose your preferred platform from the tabs below.

macOS C++ PDF library integration

This guide will help you run PDFTron samples and integrate a free trial of the PDFTron SDK into C++ applications on macOS. Your free trial includes unlimited trial usage and support from solution engineers.


  • GCC ≥ 4.2.1
  • PDFTron's C++ PDF library for macOS:

No trial license key required.
The trial of PDFTron SDK works without a license key. 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).

linkInitial setup

  1. Download the PDFTron SDK.
  2. Extract the downloaded zip file and navigate to it.

linkRun the samples

Run a specific sample

  1. Navigate to the CPP folder in the sample you want to run and make the project by calling make. Then run the test by executing

For example to run AddImageTest, navigate to /Samples/AddImageTest/CPP and execute ./AddImageTest.

Run all samples

  1. Navigate to /Samples and execute

The tests will run one by one.

Output files will be in /Samples/TestFiles/Output

linkIntegrate into your application

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.

  1. Navigate to the /Samples directory and create a new directory called CPP. Navigate into the CPP directory and create a new CPP file called myApp.cpp. This guide will assume your application is named myApp.
  2. Open myApp.cpp with your favorite text editor and paste this inside:

    #include <iostream>
    #include <PDF/PDFNet.h>
    #include <PDF/PDFDoc.h>
    #include <SDF/ObjSet.h>   
    using namespace pdftron;
    using namespace PDF;
    using namespace SDF;
    int main(int argc, char** argv)
        PDFNet::Initialize();  // PDFNet must be initialized before accessing any PDFTron API. This line should only be called once in your main function.
        PDFDoc doc;
        Page page = doc.PageCreate(); // Start a new page
        doc.PagePushBack(page);       // Add the page to the document
        doc.Save("output.pdf", SDFDoc::e_linearized);  // Save the document as a linearized PDF
        std::cout << "Hello World!" << std::endl;
       catch(pdftron::Common::Exception& ex)
            std::cout << ex << std::endl;
        return 0;
  3. Build the project using this line:

    g++ myApp.cpp -I../../../Headers -L../../../Lib -lPDFNetC -lstdc++ -lpthread -lm -lc -Wl,-rpath,../../../Lib -Wl,-rpath$ORIGIN -o myApp
  4. Run the application via ./myApp. The output should read:

    PDFNet is running in demo mode.
    Permission: write
    Hello World!

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

linkNext step

GuidesAPI docsSamples

Get the answers you need: Support


Free Trial

Get unlimited trial usage of PDFTron SDK to bring accurate, reliable, and fast document processing capabilities to any application or workflow.

Select a platform to get started with your free trial.

Unlimited usage. No email address required.