Get Started with the Apryse Server SDK C++ PDF Library Integration

The Apryse Server SDK is cross-platform and supported on Windows, Linux, and macOS. The base package is robust, allowing you to programmatically do the following and more with PDFs:

Additional functionality

If you’re looking for additional capabilities, we offer add-on packages, such as Smart Data Extraction, and add-on modules, such as Office Conversion. For a complete list of add-ons, refer to the following:

Solutions & benefits

Using the Server SDK allows you to build server-side document processing solutions at scale without relying on client devices or cloud APIs. Since the Server runs entirely on-premises (or in your private cloud), you can ensure security and compliance with full control over access, storage, and encryption. You can also easily integrate with web apps, backend systems, document management systems, and content workflows.

Steps & samples

This guide walks you through steps to integrate the Apryse Server SDK free trial into your project. We’ll use a C++ project as our example project throughout this guide. By the end, you’ll have built a simple PDF-generation application and be able to open, save, and close a PDF Doc.

Linux C++ PDF library integration

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

Prerequisites

  • GCC ≥ 4.2.1 (32-bit, 64-bit) or GCC ≥ 8 (64-bit ARM)
  • 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. Download the Apryse SDK.
  2. Extract via tar xvzf PDFNetC64.tar.gz or tar xvzf PDFNetCArm64.tar.gz or tar xvzf PDFNetCAlpine64.tar.gz or tar xvzf PDFNetC.tar.gz.
  3. Get your Apryse trial key.

License Key

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

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.

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

sh

1./TEST_NAME

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

Run all samples

  1. Navigate to /Samples and execute

sh

1./runall.sh

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 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 to the /Samples directory and create a new directory called myApp if it does not exist already. This guide will assume your project is named myApp. Enter your myApp directory and create a CPP directory for organization. Then create a myApp.cpp file in the CPP directory.
  2. Open myApp.cpp with your favorite text editor and paste this inside:

C++

1#include <iostream>
2#include <PDF/PDFNet.h>
3#include <PDF/PDFDoc.h>
4#include <SDF/ObjSet.h>
5
6using namespace pdftron;
7using namespace PDF;
8using namespace SDF;
9
10int main(int argc, char** argv)
11{
12 try
13 {
14 PDFNet::Initialize("YOUR_LICENSE_KEY"); // PDFNet must be initialized before accessing any Apryse API. This line should only be called once in your main function.
15 PDFDoc doc;
16 Page page = doc.PageCreate(); // Start a new page
17 doc.PagePushBack(page); // Add the page to the document
18 doc.Save("output.pdf", SDFDoc::e_linearized); // Save the document as a linearized PDF
19 std::cout << "Hello World!" << std::endl;
20 }
21 catch(pdftron::Common::Exception& ex)
22 {
23 std::cout << ex << std::endl;
24 }
25 return 0;
26}
  1. Build the project using this line:

sh

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

sh

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

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

Next Steps

Did you find this helpful?

Trial setup questions?

Ask experts on Discord

Need other help?

Contact Support

Pricing or product questions?

Contact Sales