Skip to content

Integration process and best practices for using a PDF library in Windows apps. Build powerful, accessible, and responsive user experiences with ease.

License

Notifications You must be signed in to change notification settings

ComPDFKit/compdfkit-pdf-sdk-windows

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

ComPDFKit PDF SDK for Windows developed and maintained by ComPDF that allows developers to quickly add PDF Features to any Windows applications, elevating your Windows programs to ensure efficient development. It is available at NuGet and github.com.

More Information can be found at: https://www.compdf.com/guides/pdf-sdk/windows/overview

Table of Content

Related

Requirements

  • Windows 7, 8, 10, and 11 (32-bit and 64-bit).
  • Visual Studio 2017 or higher (Make sure the .NET Desktop Development is installed).
  • .NET Framework 4.5 or higher.

How to Make a Windows Program in C#

Video Guide: Create a C# PDF Viewer for Windows

image-youtube

Create a New Project

  1. Open Visual Studio 2022, and click Create a new project.

    2.4
  2. Choose WPF App (.NET Framework) and click Next.

    2.4
  3. Configure your project: Set your project name and choose the location to store your program. The project name is called "ComPDFKit Demo" in this example. This sample project uses .NET Framework 4.6.1 as the programming framework.

2.4

  1. Click the Create button. Then, the new project will be created.

Add ComPDFKit to Your Project

There are two ways to add ComPDFKit to your Project: Nuget Repository and Local Package, you can choose one or the other according to your needs.

Nuget Repository

  1. Open your project's solution, and in the Solution Explorer, right-click on References and click on the menu item Manage NuGet Packages. This will open the NuGet Package Manager for your solution.

2.4

  1. Go to ComPDFKit.NetFramework in Nuget, and click on the Install button to install the package.

    2.4
  2. Once that is complete, you'll see a reference to the package in the Solution Explorer under References.

    2.4

Local Package

Rather than targeting a package held at Nuget, you may set up a configuration to point to a local package. This can be useful for some situations, for example, your build machines don't have access to the internet.

  1. You can find "ComPDFKit.NetFramework....nupkg" file in the SDK Package

  2. Create or edit a "nuget.config" file in the same directory as your solution file (e.g. "ComPDFKit Demo.sln").

2.4

  • The contents of the file should contain an XML element, packageSources - which describes where to find NuGet packages - as a child of a root node named configuration. If the file already exists, add the extra packageSources entry shown below. If the file is blank, copy and paste the entirety of the following contents:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <packageSources>
        <add key="ComPDFKitSource" value="path\to\directoryContainingNupkg" />
    </packageSources>
</configuration>
  • Edit the value of the contents to correctly refer to the location of the directory containing the "ComPDFKit.NetFramework....nupkg" package - for example, C:\Users\me\nugetPackages. Now save the file, and close and reopen your solution for Visual Studio to force a read of the NuGet configuration.
  1. Open your project's solution, and in the Solution Explorer, right-click on References and click on the menu item Manage NuGet Packages…. This will open the NuGet Package Manager for your solution.

    2.4
  2. On the right-hand side of the manager in the Package source dropdown window, choose the entry ComPDFKitSource (or whatever you decided to name it). You should then see the entry for "ComPDFKit.NetFramework".

    2.4
  3. On the right side, in the panel describing the package, click on the Install button to install the package.

    2.4
  4. Once that's complete, you'll see a reference to the package in the Solution Explorer under References.

    2.4

Apply the License Key

You can contact the ComPDFKit team to obtain a trial license. Before using any classes from the ComPDFKit PDF SDK, you need to choose the corresponding scheme from the following two options based on the license type and apply the license to your application.

Online Authentication

You can perform online authentication using the following approach:

public static bool LicenseVerify()
{
	if (!CPDFSDKVerifier.LoadNativeLibrary())
	{ 
		return false;
	}
	LicenseErrorCode status = CPDFSDKVerifier.OnlineLicenseVerify("Input your license here.");
	return status == LicenseErrorCode.E_LICENSE_SUCCESS;
}

Additionally, if you need to confirm the communication status with the server during online authentication, you can implement the CPDFSDKVerifier.LicenseRefreshed callback:

CPDFSDKVerifier.LicenseRefreshed += CPDFSDKVerifier_LicenseRefreshed;

private void CPDFSDKVerifier_LicenseRefreshed(object sender, ResponseModel e)
{
    if(e != null)
    {
        string message = string.Format("{0} {1}", e.Code, e.Message);
        Trace.WriteLine(message);
    }
    else
    {
        Trace.WriteLine("Network not connected."); 
    } 
}

Offline Authentication

The following is the LicenseVerify() method for implementing offline authentication:

bool LicenseVerify()
{
    if (!CPDFSDKVerifier.LoadNativeLibrary())
        return false;

    LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify("Input your license here.", false);
    return (verifyResult == LicenseErrorCode.E_LICENSE_SUCCESS);
}

Display a PDF Document

We have finished all prepare steps. Let's display a PDF file.

  1. Add the following code to "MainWindow.xaml" and "MainWindow.xaml.cs" to display a PDF document. Please make sure to replace "ComPDFKit_Demo" with the name of your project. Now, all you need to do is to create a CPDFViewer object, and then display the CPDFViewer object in the Grid (component) named "PDFGrid" using the OpenPDF_Click method.

  2. Now your "MainWindow.xaml" should look like the following code.

<Window x:Class="ComPDFKit_Demo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:ComPDFKit_Demo"
        xmlns:compdfkitviewer="clr-namespace:ComPDFKitViewer;assembly=ComPDFKit.Viewer"
        mc:Ignorable="d"
        Focusable="True"
        Title="MainWindow" Height="600" Width="800" UseLayoutRounding="True">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="52"/>
        </Grid.RowDefinitions>
        <Grid Name="PDFGrid" Grid.Row="0">
            <ScrollViewer Focusable="False" CanContentScroll="True" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
                <compdfkitviewer:CPDFViewer x:Name="PDFViewer"/>
            </ScrollViewer>
        </Grid>
        <Button Content="Open PDF" Grid.Row="1" HorizontalAlignment="Left" Margin="10" Click="OpenPDF_Click"/>
    </Grid>
</Window>
  1. Now your “MainWindow.xaml.cs” should look like the following code. Please note: You need to enter your license key. All the places that need to be modified in the code have been marked with comments in the code below. You just need to replace the string content below the comments by yourself.
using ComPDFKit.NativeMethod;
using ComPDFKit.PDFDocument;
using Microsoft.Win32;
using System.Windows;

namespace ComPDFKit_Demo
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            LicenseVerify();
        }

        bool LicenseVerify()
        {
            if (!CPDFSDKVerifier.LoadNativeLibrary())
                return false;

            // Input your license.
            LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify("Input your license here.");
            return (verifyResult == LicenseErrorCode.E_LICENSE_SUCCESS);
        }

        private void OpenPDF_Click(object sender, RoutedEventArgs e)
        {
            // Get the path of a PDF file.
            var dlg = new OpenFileDialog();
            dlg.Filter = "PDF Files (*.pdf)|*.pdf";
            if (dlg.ShowDialog() == true)
            {
                // Use the PDF file path to open the document in CPDFViewer.
                CPDFDocument doc = CPDFDocument.InitWithFilePath(dlg.FileName);
                if (doc != null && doc.ErrorType == CPDFDocumentError.CPDFDocumentErrorSuccess)
                    PDFViewer.InitDoc(doc);
            }
        }
    }
}
  1. Now run the project and you will see the PDF file that you want to display. The PDF Viewer has been created successfully.

2.4

Troubleshooting

  1. License Verification Failed
  • If "System.IO.FileNotFoundException" occurred in the LicenseVerify() function like this:

2.4

  • Check your WPF project and ensure that you chose WPF App(.NET Framework) instead of WPF Application when creating the project.

2.4

  1. Other Problems

    If you meet some other problems when integrating our ComPDFKit PDF SDK for Windows, feel free to contact our support team.

Support

ComPDF offers professional technical support and 5*24 responsive service.

  • For detailed information, please visit our Guides page.

  • Stay updated with the latest improvements through our Changelog.

  • For technical assistance, please reach out to our Technical Support.

  • To get more details and an accurate quote, please contact our Sales Team or Send an Email to us.

License

ComPDF offers developers a 30-day free trial license for free testing your Windows projects. Additionally, you'll have access to a fully-featured product with no limitations on file or user count.

Note

We are glad to announce that you can register a ComPDFKit API account for a free trial to process 1000 documents per month for free.

About

Integration process and best practices for using a PDF library in Windows apps. Build powerful, accessible, and responsive user experiences with ease.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •