Printer Driver Resource Toolkit

In order to assist Black Ice Printer Driver users to accomplish printing and Black Ice Printer Driver related tasks, a Printer Driver Resource Toolkit package is provided FREE of charge with the purchase of any Black Ice Generic Printer Driver.

The Printer Driver Resource Toolkit includes a variety of sample applications with full source code, written in C, C++, Visual Basic, and Delphi. It is also .NET compatible and includes samples written in C#, VB .NET, and J#. Also included are several sample installation scripts and many other tools that can reduce development time and make applications development with the Black Ice Printer Drivers much easier.

Visual Studio 2005, and VB.NET 8.0 support has been added.

The tools and samples included in the Resource Toolkit will help in the following areas:

- Printer Driver User Interface Customization
- Installation Samples
- Programmatically Change Printer Settings
- Printing Without User Interaction
- Programmatically Print Files
- Integrate The Printer Driver Into An Application
- Provide Access to Features and Technologies Available with Black Ice Products Only
- Additional Samples Provided
- Sample Comparison Chart


Printer Driver User Interface Customization.

The dialog box templates and other resources used by Black Ice Printer drivers are stored in a separate DLL. The source code for the DLL that contains these resources are included in the Resource Toolkit. By modifying the resource DLL, application developers can customize the user interface of the printer driver. Controls on dialog boxes can be repositioned, resized or even hidden. The only items that cannot and should not be changed are the About box and the version and license information of the printer driver.

Since the name of the resource DLL is stored in the printer drivers DEVMODE structure, the resource DLL can be renamed to avoid conflict with other Black Ice printer drivers installed on a system.

The resource DLL also includes every text string used by the printer driver. Localization / internationalization of the printer driver can be handled very easily by translating these strings to other languages.

The dialog box tabs on the printer driver user interface also can be hidden by modifying a value in the printer driver’s INI file. These INI file setting can be set at installation time or they can be changed anytime, even programmatically from an application. The printer driver will read these values every time the printer driver user interface is displayed.

Furthermore, all of the Black Ice printer driver components can be renamed for use in a custom application.  In addition to renaming the individual DLLs, the printer driver can be installed with a custom name to provide a more seamless integration into the developed application.


Installation Samples.

The Resource Toolkit includes an InstallShield , MSI , Visual Basic & VB.NET 8.0 sample projects which install and configure the Black Ice printer driver. The installation sample projects are provided as starting points for creating user specific printer driver installations.

Additionally, the documentation included in the Resource Toolkit contains detailed information on how to install the Black Ice printer driver with a single function call using installation packages other than Install Shield (packages like Wise and Microsoft Installer). Full source code for both an install and an uninstall DLL are also included. These DLLs implement every required function necessary to install and remove a printer driver.  The Black Ice printer drivers can be installed or uninstalled using a single function call from the appropriate DLL.

The Install Shield project included in the Resource Toolkit was generated with Install Shield 12 and in order to rebuild the sample installation package Install Shield 12 or newer is required.  The Visual Basic installation project was written using VB 6.0.  The MSI Install was written using Visual Studio .NET 2005.

Multiple Instances of the Black Ice printer drivers can be installed on a single system, allowing for increased file processing.


Programmatically Change Printer Settings.

Black Ice printer drivers have many settings that affect the way documents are going to be printed. These printer settings can be changed manually through the printer driver's user interface or programmatically from an application without any user interaction.

The Resource Toolkit includes a powerful API (a DLL for C/C++ and an ActiveX control for VB, Delphi, C#, etc) that contains over 300 easy to use functions to control printer driver settings.

Typically, VB environments do not provide any programming capability to change printer settings. However, the Resource Toolkit includes an ActiveX control which is unique in that it allows printer manipulation through VB and it is available only for Black Ice Printer Drivers.

There are several samples included with full source code written in C, C++, VB, VB .NET, C#, J# and Delphi that show how to change printer settings.

The samples were built with Visual C++ 6.0, Visual Basic 6, Visual Studio .NET and Delphi 5.


Printing Without User Interaction.

The Print Job Control functionality included in the Resource Toolkit contains features like pausing, restarting and deleting print jobs. Developers can get a list of the current print jobs, then pause or delete any print jobs they need to control. Developers can also query the total number of print jobs for the specified printer and the status of each specified job to see if the job is printing, paused, etc.

Additional print job specific information that can be retrieved from the Black Ice printers includes:

  • the name of the machine that created the print job

  • the name of the user that owns the print job

  • the name of the print job ( the document name, for example, "MS-WORD: Review.doc")

  • the job’s priority

  • the job's position in the print queue

  • total number of pages in the document

  • the number of pages that have printed

  • the time the job was submitted


Programmatically Print Files.

The Resource Toolkit for the Black Ice printer drivers contains two sample applications which demonstrate how to programmatically print to the Black Ice printer drivers.  The sample applications demonstrate how to programmatically print common file types, such as Microsoft Office and PDF files.  The Resource Toolkit  includes full source code which can be used by developers to add support for additional file types.  For specific details on the specific sample applications, please use the links below:


Integrate the Printer Driver Into an Application.

When the printer driver is used as a part of an application, there are several ways to allow the application to communicate with the printer driver.

The printer driver can communicate with the application in a number of ways:

The Printer Driver Resource toolkit includes samples with full source code written in several programming languages which demonstrate every aspect of the printer driver integration. These samples can be used as a starting point in the printer driver integration process and they can be easily modified to accomplish application specific tasks.

For additional information about printer driver integration, please click on the links above.


Provide Access to Features and Technologies Available with Black Ice Products Only

Black Ice printer drivers support several features and technologies that no other printer driver vendor supports. In order to make use of these technologies, there are several applications included in the Resource Toolkit that demonstrate these features.

The following list enumerates these Black Ice specific technologies. Please click on the links below to get more information about these features.


Additional Samples Provided

Web based Document Conversion (HTML, ASP)

  • Demonstrates how to print to the Black Ice printer drivers using ASP, for web based printing. This sample uses Print Wrapper OCX (C++, VB sample provided) but other programming techniques can be used too (e.g. services).

Print2FTP (.NET J#,.NET C#, .NET VB, C++, Delphi, VB)

  • Transfers printed images to a specified FTP server. The application starts after printing in finished, and will then copy all printed images to the FTP server.

E-mail Add-on (.NET C#, .NET VB, C++, Delphi, VB)

  • Helps you to send printed images in emails easily. After printing, a sample application will be launched and the user can input the recipients email address.

OutputFilename (.NET C#, .NET J#, .NET VB, C++, Delphi)

  • The OutputFileName sample will show how to get the name of the output images from the group file.

Restrict Printing (.NET C#,.NET VB, C++, Delphi, VB)

  • The Black Ice printer drivers include a feature which allows the driver to refuse any print jobs other than those coming from the developer’s printing application. The restriction is made using a password.

SaveAsDialog (.NET C#,.NET VB, C++, Delphi, VB)

  • The printer driver supports 7 different file name generation methods. However, sometimes the output files (images) need to be saved to different folders using different filenames.

UseDocumentName (.NET C#,.NET VB, C++, Delphi, VB)

  • After printing, this application will convert the selected items name to the original (before printing).

Message Capture (. NETJ#, .NET VB, .NET ASP, VB, C++, Delphi)

  • Demonstrates how to capture the printer driver messages sent at every StartDoc, StartPage, EndDoc, EndPage. 

Message Capture Service (. NETJ#, .NET VB, .NET ASP, VB, C++, Delphi)

  • Demonstrates how to capture the printer driver messages, using a service, sent at every StartDoc, StartPage, EndDoc, EndPage.

INI File Generator (C++)

  • Demonstrates how to easily create an INI file to be used by the Black Ice printer driver installation. 

Print Job Control (C++, VB)

  • Demonstrates how to control print jobs once they are put into the spooler.

Replace User Settings (.NET VB, .NET ASP, VB, C++, Delphi)

  • Demonstrates how to reset the printer settings programmatically.

Home > Printer Drivers > Resource Toolkit

Resource Toolkit Features

- Custom User Interface

- Localization

- API to Change Printer Settings

- Installation Samples

-Additional Samples

- Install/Uninstall DLLs Provided

- Messaging Interface

- Launch Applications

- Redirect Printing

- Printing Without User Interaction

- Real Time Printer Driver Hook

- Form Reconstruction