Some test text!

Python 3.xkeyboard_arrow_down

Get started with Python3

Welcome to PDFTron. Python3 for the PDFTron SDK is supported on both Linux and Windows and requires that custom wrappers are built. To get started, choose your preferred platform from the tabs below.

Custom Python wrapper & Windows PDF library integration

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

There are two ways to use PDFTron with Python:

  • Use the precompiled library for Python 2.7.
  • Use PDFNet bindings to build your own wrapper.

This guide will help you get started by building your own wrapper. You can find more information about using the precompiled library .


Make sure Python, cmake and SWIG are all added to your path environment variable.

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. Extract the PDFNetWrappersWinXX folder from the .zip file. This guide will assume it has been extracted to the current user's Desktop.
  2. From the extracted folder, copy the Lib and Headers folders and paste them into PDFNetWrappers-master/PDFNetC/
  3. Create a new folder called Build inside the PDFNetWrappers folder and enter it.

    This is what the current directory structure should look like:

    Directory structure

  4. Open a Command Prompt here and run the following:

    cmake -D BUILD_PDFNetPython=ON ..

    This will choose a default Visual Studio version to build the projects for. Wait for the bindings to finish. The output should end with something like this:

    -- Build files have been written to: C:/Users/User_Name/Desktop/PDFNetWrappers-master/Build

    If you see error messages during this process, see the Troubleshooting section.

    You should have the following files in your Build directory:

    Build directory

  5. Open the generated PDFNetLanguageBindings.sln with Visual Studio.
  6. Change the build mode from Debug to Release, make sure the appropriate target version (x86 or x64) is selected and build the solution.
Release configuration only
There is no Debug version of the PDFNet library available.
x64 target missing? Otherwise skip to Step 11.
Step 7 to step 10 is only required if the x64 target build option is not available. These steps will create the x64 build target and manually copy the dynamic link library output for installation.
  1. When using the PDFNetC64 (64-bit) library files then change the build configuration to x64 in the Build dropdown by choosing Configuration Manager....

    Under Active Solution Platform, Select <New...> and choose x64 if x64 is not displayed as a platform.

    Click ok then close the modal to exit.

  2. Right-click project PDFNetPython within Solution Explorer and choose Properties.

    Under Linker, select Command Line and change X86 to X64.

    Click ok to exit the modal.

  3. Right-click and build the PDFNetPython project.

    This will build the Python library files.

  4. Copy the _PDFNetPython.pyd dynamic link library file to the build\lib\Release folder using the command line below or manually from Windows explorer.

    This will ensure the Python module which communicates through the dynamic link library can be located for installation.

    copy ".\x64\Release\_PDFNetPython.pyd" ".\lib\Release"
  5. When this is done, select and build the INSTALL project.

    This will install PDFNetPython lib files to the PDFNetWrappers\PDFNetC\lib folder where it can be located by the samples.

The bindings should be successfully built. You can now run the samples to test out the PDFTron SDK.

linkRun the samples

Find and enter the Samples folder (PDFNetWrappers-master/Samples). Here you can find sample code for a large number of features supported by the PDFTron SDK.

The output files from all tests are stored in Samples/TestFiles/output/

Run a specific sample

  1. Find the sample you want to run and navigate into the PYTHON folder inside.
  2. Find RunTest.bat and run it. The results should appear on a cmd window.


Run all samples

  1. Find runall_python.bat in the samples folder and double click on it to run it. The results should appear on a cmd window.

Press any key when a sample ends to start the next one.

AddImageTest output

linkIntegrate into your application

This is what we call the "PDFTron Hello World" application. It is easy to integrate the rest of PDFTron SDK if you are able to open, save and close a PDFDoc.

  1. Create a new folder in Samples by the name HelloWorld.
  2. In the HelloWorld folder, create a new file called, open and edit it using your favorite text editor.
  3. Insert the following to your file:

    # You can use the following two lines to use PDFNetPython
    # in your solution from anywhere on your system
    # so long as you have relative path
    import site
    import sys
    # This is the most important packages to import
    # for basic document manipulation.
    from PDFNetPython import *
    def main():
        # You need to initialize the PDFNet library 
        # Before calling any PDF related methods
        # This example creates a new document
        # and a new page, then adds the page
        # in the page sequence of the document
        doc = PDFDoc()
        page1 = doc.PageCreate()
        # We save the document in a linearized
        # format which is the most popular and 
        # effective way to speed up viewing PDFs
        doc.Save(("linearized_output.pdf"), SDFDoc.e_linearized)
    if __name__ == "__main__":

    To test that your code works, run the code using a shell in the HelloWorld folder using:

    python.exe -u

    Once you have successfully run this, you should see an output file in the working directory of this program.

linkNext step



Multiple versions of Python
More information for conflict resolution between multiple Python installations.

CMake Process finding incorrect version
Setting specific versions of Python to use for cmake.

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