Some test text!


C++ & macOS 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:

Login/Sign Up to download the SDK

Run PDFTron 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. Download the PDFTron SDK.
  2. Extract the downloaded zip file and navigate to it.
  3. Get your PDFTron trial key.

Login/Sign Up to your account to get access to key

Run 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

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

Next step

Guides API docsSamples

Get the answers you need: Support

Upcoming Webinar: PDFTron SDK Tech Review | Nov 29, 2022 at 2 pm ET


The Platform


© 2022 PDFTron Systems Inc. All rights reserved.


Terms of Use