Get started with C
This guide walks you through the steps to use a code example, and then explains how to integrate the Pdftools SDK into your application with the C programming language.
Getting started with a sample project
Learn how to use the Pdftools SDK using a C code example. The Pdf2ImgSimple example converts a PDF file to an image. Use similar steps to run any other code example from the sdk-examples-c repository.
Prerequisites
This code example uses GCC toolset 4.8+ and CMake version 3.16 or higher.
Compile and run the sample
-
Clone the sdk-examples-c repository:
git clone https://github.com/pdf-tools/sdk-examples-c.git -
Navigate to
sdk-examples-c/Pdf2ImgSimple, and then run:cmake . -
Build the sample:
cmake --build . -
Run the compiled sample application. Provide
inputPathfor the input PDF file andoutputPathpath for the output image file:./pdftoolspdf2imgsimple <inputPath> <outputPath>For example, to render the sample PDF file
PdfPrimerWhitePaper.pdfto a multi-page TIFF image format, run:./pdftoolspdf2imgsimple PdfPrimerWhitePaper.pdf PdfPrimerWhitePaper.tiff
The sample runs without a license key, and the output carries a watermark. To remove the watermark, open pdftoolspdf2imgsimple.c and uncomment the PdfTools_Sdk_Initialize function call in main(). Replace the "insert-license-key-here" placeholder with your license key. Include the less-than (<) and greater-than (>) signs.
You can apply a similar procedure described in this tutorial for other code examples. For more information, see Code samples page.
Integrate the SDK into your application
Integrate and initialize the Pdftools SDK into your application by following the instructions in the next sections.
Add the SDK to your project
-
Click the download link to get the latest version of the Pdftools SDK for C in a zip archive.
Optional: For older Linux distributions running glibc 2.12+, download the SDK from a separate download.
-
Unzip the file on your machine into a local directory recommended for your operating system. For example:
- Windows
- Linux
- macOS
C:\Program Files\PDF Tools AG\Included subdirectories are:
Subdirectory Description ~Contains important information in the README.mdfile.libRuntime executable binaries and runtime import libraries:
win-x86\PdfToolsSdk.dllandwin-x86\PdfToolsSdk.libfor 32-bit Windows
win-x64\PdfToolsSdk.dllandwin-x64\PdfToolsSdk.libfor 64-bit WindowsincludeHeader files to add to your C or C++ project. The main header PdfTools.hincludes all the other headers./opt/pdftools.com/Included subdirectories are:
Subdirectory Description ~Contains important information in the README.mdfile.libRuntime executable binaries for all supported platforms: linux-x64/libPdfToolsSdk.sofor 64-bit LinuxincludeHeader files to add to your C or C++ project. The main header PdfTools.hincludes all the other headers./opt/pdftools.com/Included subdirectories are:
Subdirectory Description ~Contains important information in the README.mdfile.libRuntime executable binaries:
osx-x64/libPdfToolsSdk.dylibfor 64-bit (Intel) macOS
osx-arm64/libPdfToolsSdk.dylibfor ARM (Apple Silicon) macOSincludeHeader files to add to your C or C++ project. The main header PdfTools.hincludes all the other headers. -
Optional: The native libraries must be available in your compiler’s library path. This step is only required if your build process doesn’t resolve it automatically:
- Windows
- Linux
- macOS
Add the
lib\win-x64orlib\win-x86subdirectory to the%PATH%environment variable.Create a link to the shared library from one of the standard library directories, e.g:
ln -s /opt/pdf-tools.com/lib/linux-x64/libPdfToolsSdk.so /usr/libCreate a link to the shared library from one of the standard library directories. For example (for an Intel processor Mac):
ln -s /opt/pdf-tools.com/lib/osx-x64/libPdfToolsSdk.dylib /usr/lib
Optional: Initialize the SDK
The Pdftools SDK runs without an explicit PdfTools_Sdk_Initialize call by auto-activating an internal test license that watermarks the output. Call PdfTools_Sdk_Initialize with your license key to remove the watermark.
Contact the Pdftools sales team through the Contact page to get a full license.
Call PdfTools_Sdk_Initialize once at application startup, before any other Pdftools SDK function call:
GOTO_CLEANUP_IF_FALSE_PRINT_ERROR(PdfTools_Sdk_Initialize(_T("YOUR_LICENSE_KEY"), NULL), _T("Failed to set the license key. %s (ErrorCode: 0x%08x).\n"), szErrorBuff, PdfTools_GetLastError());
Use the license key in the same format you copied it. Include the less-than (<) and greater-than (>) signs.
For a working reference, see the PdfTools_Sdk_Initialize function in the Pdf2ImgSimple C sample. In SDK samples the call is commented out by default with an "insert-license-key-here" placeholder; uncomment it and replace the placeholder with your license key.
Uninitialize the SDK
After processing files with the Pdftools SDK, call PdfTools_Uninitialize to unload the library correctly:
// Uninitialize library
PdfTools_Uninitialize();
Implement your use case
- Find more use cases and code examples on the Code samples page.
- For more technical information about the Pdftools SDK for C, consult the C technical notes.