Some test text!

Discord Logo

Chat with us

PDFTron is now Apryse, learn more here.

Windows / Guides



PDFTron is now Apryse, learn more here.

Custom Python wrapper & Windows PDF library integration

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

There are two ways to use Apryse 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 .


Login/Sign Up to download 64-bit

Login/Sign Up to download 32-bit

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

Run Apryse 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. 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.

  6. Get your Apryse trial key.

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

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

Run 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 Apryse 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

Integrate into your application

This is what we call the "Apryse Hello World" application. It is easy to integrate the rest of Apryse 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.

Next step

Guides Samples


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