Some test text!


Ruby & macOS PDF library integration

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


  • Ruby version 2.x
  • CMake version ≥ 2.8
  • SWIG 2.0.4 - 2.0.12 or SWIG 3.x
  • PDFTron's Ruby 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. 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 Ruby interpreter. This can be done with these two commands:

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

    mv PDFNetCMac/Headers/ .


    mv PDFNetCMac/Lib/ .

    to move the PDFNet libraries in place.

    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.
  6. Execute

    cmake -D BUILD_PDFNetRuby=ON ..

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

    Build files have been written to ~/PDFNetWrappers/Build
  7. Execute make followed by sudo make install.
  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 ./

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

linkRun the samples

Run a specific sample

  1. Navigate to the RUBY folder in the sample, for example /Samples/AddImageTest/RUBY and execute ./

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 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 RUBY.
  2. Navigate inside that RUBY folder and create a new Ruby file called myApp.rb. Open it with your favorite text editor and paste this into it:

    require '../../../PDFNetC/Lib/PDFNetRuby'
    include PDFNetRuby
    $stdout.sync = true
      PDFNet.Initialize()         # PDFNet must be initialized before accessing any PDFTron API
      doc =
      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
      puts "Hello World!"

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

    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


Also check out the source for the PDFNetC wrappers.


Check the troubleshooting page if you run into any issues going through this document.

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.

Join our live demo to learn about use cases & capabilities for WebViewer

Learn more