Some test text!

Loading...
Guides
.NET Framework

.NET Framework & Windows PDF library integration

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

Prerequisites

  • Visual Studio

    Make sure that the .NET Desktop Development and .NET Framework 4.5.1+ development tools workload is part of your installation.

    This guide will use Visual Studio 2017.

  • PDFTron's C# .NET PDF Library for Windows:

For older versions of .NET Framework
If you're looking for older versions of the .NET Framework, you can download:
- .NET Framework 2.0 - 3.5 SDK here.
- .NET Framework 4.0 - 4.5 SDK here.
Run PDFTron 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 folder from the .zip file.

This article uses PDFNET_BASE as the path into the folder that you extracted.

PDFNET_BASE = path/to/extraction/folder/PDFNetDotNet4/
  1. Get your PDFTron trial key.
Loading...

Run the samples

Navigate to the location of extracted contents. Find and enter the Samples folder (PDFNET_BASE/Samples). Here you can find sample code for a large number of features supported by the PDFTron SDK.

  1. Open Samples_20XX.sln in Visual Studio. Choose an appropriate version for your Visual Studio installation.

  2. Find the sample you want to run and set it as the Startup Project for the solution.

  3. Run the project.

Integrate into your application

This is called 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 .NET Framework console application project in Visual Studio for your preferred language. You can find them under the Visual C# or Visual Basic category.

  2. Navigate into your project's folder. By default, the path should be similar to: C:/Users/User_Name/source/repos/myApp

    Copy the Lib folder from PDFNET_BASE to your project folder (the folder which contains your .csproj or .vbproj file).

  3. Find the Solution Explorer to the right. Right-click on References and select the Add reference option. This opens a Reference Manager dialog.

    Click on Browse... at the bottom of the dialog. Navigate to the copied Lib folder and add PDFNetLoader.dll to the references.

    Also add the appropriate version of PDFNet.dll from the x86 folder as another reference (path/to/your/project/folder/Lib/PDFNet/x86/PDFNet.dll). This version will allow the application to run on both 32-bit and 64-bit OS.

  4. Select PDFNet.dll and set its Copy Local property to False.

  5. Open App.config in the solution explorer and make sure the loadFromRemoteSources property is set to true:

<configuration>
    <runtime>
        <loadFromRemoteSources enabled="true" />
    </runtime>
</configuration>
  1. Right click on your project and select Properties. In the left pane, select the Build Events tab. Under Post-Build Events, add the following code snippet:

    xcopy $(ProjectDir)Lib\PDFNet $(TargetDir)PDFNet /S /I /Y

The Code

Replace the contents of Program.cs or Module1.vb with:

// Default namespaces
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

// Majority of PDFTron SDK can be used with these namespaces
using pdftron;
using pdftron.Common;
using pdftron.SDF;
using pdftron.PDF;

namespace myAppCS
{
    class Program
    {
        // Required for AnyCPU implementation.
        private static PDFNetLoader loader = PDFNetLoader.Instance();

        static void Main(string[] args)
        {
            // Initialize PDFNet before using any PDFTron related
            // classes and methods (some exceptions can be found in API)
            PDFNet.Initialize();

            // Using PDFNet related classes and methods, must catch or throw PDFNetException
            try
            {
                using (PDFDoc doc = new PDFDoc())
                {
                    doc.InitSecurityHandler();

                    // An example of creating a new page and adding it to
                    // doc's sequence of pages
                    Page newPg = doc.PageCreate();
                    doc.PagePushBack(newPg);

                    // Save as a linearized file which is most popular 
                    // and effective format for quick PDF Viewing.
                    doc.Save("linearized_output.pdf", SDFDoc.SaveOptions.e_linearized);

                    System.Console.WriteLine("Done. Results saved in linearized_output.pdf");
                }
            }
            catch (PDFNetException e)
            {
                System.Console.WriteLine(e);
            }
        }
    }
}

Build and run the project using the Start button in Visual Studio.

You should find the "linearized_output.pdf" in your project folder with a blank page.

Next step

Guides API docsSamples

Troubleshooting

PDFNetLoader

The steps above allow you to create an application that can support both 32bit or 64bit processes at runtime. However, this is often not needed in practice.

If you know you are targeting only 64bit, or 32bit, then reference the corresponding 32bit or 64bit PDFNet.dll assembly in your solution (make sure copylocal:true is set), and remove both PDFNetLoader.dll and the one line of code for PDFNetLoader.

If on the other hand you are writing a client application, where you need to support both 64bit and 32bit, then simply using your installer to install the correct 32bit or 64bit PDFNet.dll, and omit PDFNetLoader.dll, is typically the best way to proceed.

In summary, PDFNetLoader.dll is not required, and is just used for AnyCPU 32bit/64bit handling. To know more about PDFNetLoader see [this post])https://www.pdftron.com/blog/dotnet/dotnet-pdf-control-nuget).

Find out how to set a startup project

Setting a startup project

Get the answers you need: Support

UPCOMING WEBINAR: "2021 in review: Top five new & updated features" Dec 9th @ 11am PT