Under most circumstances, you will want to install ABCpdf .NET using the standard installer and register it using the PDFSettings control panel.

Occasionally, you may wish to install ABCpdf manually. To do this, you will need the files listed below.

File Name Notes
ABCpdf.dll

The Assembly used by .NET.

The installer places this Assembly in the GAC to allow global access from any .NET application. It installs a second reference copy at the following location:

%ProgramFiles%\WebSupergoo\ABCpdf10 .NET\Common\

However, if you are installing manually, you can just place this file in the bin directory of your application.

ABCpdf10-32.dll

The ABCpdf core engine.

This DLL contains the core engine. It incorporates our proprietary Direct to PDF technology and is designed for high performance PDF manipulation in a multithreaded environment. This DLL is placed into the System32 directory typically at:

%SystemRoot%\System32\

However, if you are installing manually, you can just place this file in the bin directory of your application.

ABCpdf10-64.dll

Same as ABCpdf10-32.dll but for 64-bit operating systems.

Please note that the 32 bit version of this DLL is required for 32-bit processes running under WOW64 on 64-bit operating systems.

3DGlue10-32.dll

This is an optional component required for use of the PDF 3D rendering.

This DLL is normally located in the same directory as the core engine. This DLL is required for both 32-bit and 64-bit operating systems.

3DGlue10-64.dll

This is an optional component required for use of the PDF 3D rendering.

Same as 3DGlue10-32.dll but for 64-bit operating systems. This DLL is required for 64-bit operating systems only.

Please note that the 32-bit version of this DLL is required for 32-bit processes running under WOW64 on 64-bit operating systems.

PrintHook32.dll

This is an optional component required for use of the XpsAny ReadModule.

It intercepts the Microsoft XPS Document Writer and enables ABCpdf to import an extended range of file types via XPS.

This DLL is normally located in the same directory as the core engine. This DLL is required for both 32-bit and 64-bit operating systems.

PrintHook64.dll

This is an optional component required for use of the XpsAny ReadModule.

Same as PrintHook32.dll but for 64-bit operating systems. This DLL is required for 64-bit operating systems only.

Please note that the 32-bit version of this DLL is required for 32-bit processes running under WOW64 on 64-bit operating systems.

ABCGeckoWP.exe,
XULRunner38_0 (directory)

This is an optional component required for use of the Gecko HTML engine.

This EXE should be placed in the bin directory (next to ABCpdf.dll).

This EXE is the interface ABCpdf uses to access the Gecko HTML engine. However, it is not the engine itself. The engine is held in the XULRunner38_0 folder, which must be located in the same directory as ABCGeckoWP.exe.

ABCGecko cannot function without the XULRunner38_0 folder in the same directory as ABCGeckoWP.exe. On x64 Windows, even if ABCGeckoWP.exe is found only in %SystemRoot%\System32 (though it should be placed only in %SystemRoot%\SysWOW64 for being 32-bit), it never looks up XULRunner38_0 folder in %SystemRoot%\System32 (but in %SystemRoot%\SysWOW64) because of File System Redirection.

TaskGardener.exe

This is an optional component required for out-of-process execution under restricted environment.

The Gecko HTML engine runs in separate worker processes. In a restricted environment, such as IIS, it is not possible to specify the user account to directly start a process. If your IIS application specifies the user in Doc.HtmlOptions.ProcessOptions.UserName, you will need to install this EXE as a Windows Service so that it starts processes for ABCpdf.

Run it with -install to install it as a Windows Service or with -uninstall to uninstall it.

ABCImageMagick.msi

This is an optional component.

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.

If you are deploying manually to a restricted permission environment such as IIS and also you are using the MSHtml engine for converting HTML content, then you may need to check the registry for certain structures. The registry key HKEY_USERS\.DEFAULT\Software\Microsoft\Windows NT\CurrentVersion\Devices should contain printer entries. The Microsoft XPS Document Writer that comes with Windows suffices to satisfy this requirement. If there are no entries in this key, you can copy them from HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Devices. Absence of entries in this registry key may result in errors from the MSHtml engine when using ABCpdf in IIS.

Background. Why XULRunner?

Well, XUL (pronounced zool) is a kind of enhanced XHTML designed for cross platform user interface development. The name XUL is both an acronym and also a reference to the scene in Ghostbusters in which an ancient god called Zuul possesses Dana and tells Dr Venkman,

"There is no Dana, only Zuul!"

Since XUL incorporates everything needed for an application in a completely self-contained manner, the developers adopted the catchphrase,

"There is no data, only XUL."

Other references to the Ghostbusters movie are scattered throughout the development of Mozilla, Gecko and Firefox.

Most calls to ABCpdf will result in a trial license being installed if it is found that no license has yet been installed. At minimum, all that is required is to query the value of the XSettings.LicenseDescription property. Write access to the registry is required for a trial to be inserted.

[C#]
using WebSupergoo.ABCpdf10;
MessageBox.Show("New License: " + XSettings.LicenseDescription);

[Visual Basic]
Imports WebSupergoo.ABCpdf10
MessageBox.Show("New License: " + XSettings.LicenseDescription)

You can use a full license key as provided to you when you purchase, or you can use a trial license key copied from the PDFSettings application. To enter a license key, call XSettings.InstallLicense or at application startup before any ABCpdf objects have been created. If you have purchased a Redistribution license, you may prefer to call XSettings.InstallRedistributionLicense. In both cases the license will remain available to the process until it unloads.

[C#]
using WebSupergoo.ABCpdf10;
// here we use a trial license key as copied from the PDFSettings application
if (XSettings.InstallLicense("cd9b5c07db69df2bf57c0a04d9bca58b10c44889c9fb197984e592f49addfce5ec5fe85d7b9205bc"))
  MessageBox.Show("License Installed Successfully: " + XSettings.LicenseDescription);
else
  MessageBox.Show("License Installation Failed");

[Visual Basic]
Imports WebSupergoo.ABCpdf10
' here we use a trial license key as copied from the PDFSettings application
If XSettings.InstallLicense("cd9b5c07db69df2bf57c0a04d9bca58b10c44889c9fb197984e592f49addfce5ec5fe85d7b9205bc") Then
  MessageBox.Show("License Installed Successfully: " + XSettings.LicenseDescription)
Else
  MessageBox.Show("License Installation Failed")
End If

Shared Hosts. Most installations of ABCpdf .NET on shared servers are seamless. However, you need to be aware that you are a guest on the server and your host may have locked down permissions in ways which will make your life difficult. If this occurs, there is typically little that either you or we can do about it.

This is why we recommend deployment on a dedicated server. Dedicated servers are cheaper than you might think, and the level of control they allow is only one of the very significant advantages they afford. It is one of the best decisions you can make.

If you are intending to install on a shared server, the essential thing to do is to deploy early and discover any issues before they become major problems.