ABCpdf .NET is made up of the following components.

ABCpdf.dll is the main .NET Framework assembly. When the assembly is loaded, it locates and loads an appropriate core engine establishing a direct high speed link between the two components.

ABCpdf11-32.dll and ABCpdf11-64.dll are the core engines for 32- and 64-bit processes. They incorporate our proprietary Direct to PDF technology and are designed for high performance PDF manipulation in a multithreaded environment.

ABCpdf supports the import of more image formats through the separate ABCImageMagick COM+ Application, which is not automatically installed and you can manually install with ABCImageMagick.msi.

The .NET tier is placed in the GAC so that you can reference ABCpdf .NET from any of your projects. However, should you require, you can always copy both DLLs to the bin directory of your application.


Copied DLLs. Visual Studio copies PresentationCore.dll and System.Printing.dll, which are referenced from ABCpdf, to your application/bin directory because they are platform-specific (32-bit vs 64-bit). This causes problems when your application is published or copied to a machine with a different platform.

To prevent the copying, you can directly reference the files and set Copy Local and Specific Version to False by adding the following lines to your project file (.csproj/.vbproj) under <ItemGroup> with other Reference elements:

<Reference Include="PresentationCore">
<Reference Include="System.Printing">



You need to add a reference to ABCpdf from your Visual Studio Project. This tells Visual Studio to link the ABCpdf assembly into the build.

The ABCpdf DLL is placed in the GAC so you can add a reference by looking in the 'Assemblies > Extensions' section of the Reference Manager in Visual Studio 2017 and earlier. Just right click on 'References' in your project and 'Add Reference'. You'll see "ABCpdf .NET" near the top of the extensions list. See the Manual Installation section of the documentation for more details.

If instead of 'References' you see a 'Dependencies' node in your project then most likely you are using .NET Core rather than Classic. For this you will need the ABCpdf .NET Core NuGet package rather than the standalone install. Right click on 'Dependencies' and then select the 'Manage NuGet Packages...' item, click on "Browse" and search for "ABCpdf - you should see ABCpdfCore amongst the results from NuGet.org.

If you are not using Visual Studio, you will need to consult the documentation for your chosen development environment.




There are four public namespaces in ABCpdf. You can reference these using the following directives.

using WebSupergoo.ABCpdf11;
using WebSupergoo.ABCpdf11.Objects;
using WebSupergoo.ABCpdf11.Atoms;
using WebSupergoo.ABCpdf11.Operations;

[Visual Basic]
Imports WebSupergoo.ABCpdf11
Imports WebSupergoo.ABCpdf11.Objects
Imports WebSupergoo.ABCpdf11.Atoms
Imports WebSupergoo.ABCpdf11.Operations

The ABCpdf11 namespace contains the objects you will use for page layout. Most of the time, it is the only namespace you will need.

The Objects namespace allows you to access and manipulate content you've already added. You may use this namespace for complex operations in which the standard page layout functionality requires some modification.

The Atoms namespace allows you low level access to the raw PDF data structures. You are unlikely to use objects from this namespace unless you are writing very low level code.

The Operations namespace allows you to perform complex operations with multiple parameters and callbacks.




This is some simple example code. All it does is create a simple 'Hello World' PDF in the current working directory.

Doc doc = new Doc();
doc.AddText("Hello World!");

[Visual Basic]
Dim doc As New Doc()
doc.AddText("Hello World!")




ASP.NET operates under a restricted set of security permissions. It is quite common for the ASPNET user not to be able to create or write files.

So, if you want to save a PDF file from your ASP.NET code, it is quite likely that you will need to adjust the permissions on your destination directory to allow write access for the ASPNET user.