You're receiving this newsletter because you SIGNED UP AT BLACKICE.COM
Having trouble reading this email? View it in your browser. Not interested anymore? Click Here.
Black Ice

Black Ice Software - November 11, 2010

No New Features this time

Black Ice software announces the version 13.02 release of its virtual printer drivers. Although this new release does not contain any new features, the performance, stability and reliability of the drivers have been improved. Several internal enhancements, not visible to users, will significantly improve the reliability and performance of the printer drivers. We recommend to all of our users to upgrade to version 13.02.

Autoprint - content based document conversion

There is a rising demand to convert document based on the content of the source document: e.g. invoice number, record number, product ID or any unique identifier. A number of our customers have already successfully created applications using Black Ice printer drivers and Autoprint technology to satisfy their sophisticated content based document conversion needs.

By using the Black Ice Printer Drivers Auto Print technology, an application can automatically print out commonly used documents without any user interaction. If combined with an application which can examine the content of the source document, documents can be archived, emailed, put into a specific SharePoint repository or it can be re-routed to a physical printer based on the content.

There are two basic rules to follow:

  1. Third party Applications can examine the source document before conversion, and then using the AutoPrint module, the application can print to the Black Ice printer without user interaction and the conversion and routing can be configured accordingly.
  2. Third party's integrated with the Black Ice Printer Driver, can check the document after conversion and using the Autoprint module re-route the document to either to an archive system, email, or SharePoint repository.

Black Ice Printer Driver API

Black Ice Printer Drivers have one of the most extensive Application Programming Interface (API) available for document conversion. With the help of the over 450 easy to use functions contained in the API, the Black Ice printers can easily be accessed and configured programmatically for specific tasks.

List of the most popular API features:

  • Messaging interface communication of the printer driver and your application using messages
  • Changing Device Settings: e.g. page size, orientation, dpi
  • Configure File Format settings: e.g file format, extensive PDF and font embedding options, color depth, photo quality, eastern character support, text extraction etc.
  • Changing output directory, file name generation methods and SharePoint upload settings
  • control Printing jobs programmatically, e.g. delete, pause, get number of print jobs etc
  • Setting post printing options, or starting applications after conversion
  • Modify watermark, annotation and bates numbering settings
  • Redirect printing to other physical or virtual printers
  • Creating custom printer driver installs
  • Customize user interface or internationalizing

The 450+ printer driver API function can be reached from various programming environments such as C++, C#, VB, VB.NET, ASP, ASP.NET using either DLL or ActiveX control.

Printing Tips for Developers

Improvement in AutoPrint samples

There is an improvement in the AutoPrint samples to decrease the conversion time. Previously, the AutoPrint samples waited until the end of the current document conversion to close the printing application (e.g. the Microsoft Word if the document a doc) after the document was completely printed. So if you have a large document you should have waited to the end of the printing to start to convert another document.

In the new version of the AutoPrint samples you don’t need to wait until the conversion has ended completely because the BiAutoPrint closes the printing application automatically (e.g. Microsoft Word) when it is in idle state. For this purpose the BiAutoPrint.dll starts a thread to detect when the application can be closed. For more information please check the source code of the BiAutoPrint.dll in the printer driver resource toolkit.

UNICODE support in BiAutoPrint.dll

The UNICODE support was added to the BiAutoPrint.dll. This modification allows the programmers to use the BiAutoPrint.dll in a C++ application without any difficulties, no matter whether the character set is UNICODE or multi-byte.

The functions (using string parameter or string return value) have 2 types: one for multi-byte project and one for UNICODE. For example:

BOOL CALLBACK BIAPStartPrintingA(LPCSTR pPrinter, LPCSTR pFileName);

If the last character is ‘A’ the function uses ANSI string as parameter. If the last character is ‘W’ the function uses UNICODE string as parameter.

The BiAutoPrint.h contains defines:

#ifdef UNICODE
#define BIAPStartPrinting  BIAPStartPrintingW
#define BIAPStartPrinting  BIAPStartPrintingA
#endif // !UNICODE

Using these defines the compiler knows which version should be used in the application where the BIAPStartPrinting function is called. If your project uses UNICODE character set, the BIAPStartPrintingW will be used, otherwise the BIAPStartPrintingA.

Note: If the project uses the BiAutoPrint.dll dynamically (using LoadLibrary API function) the function name in the GetProcAddress function should be changed to the appropriate function. For example:

HINSTANCE hInst = LoadLibrary(L"BiAutoPrint.dll");
typedef BOOL (*WINAPI MYPROC)(LPCWSTR pPrinter, LPCWSTR pFileName);
MYPROC pMyProc = (MYPROC)GetProcAddress(hInst, "BIAPStartPrintingW");

Ignore Application DPI flag

Some printing applications don’t take into consideration the DPI of the Black Ice printer driver when the EMF meta data created. In this case the printed document has incorrect DPI values. This situation can be avoided if the Ignore Application DPI is set in the printer’s INI file.

Enter the following into the printer driver’s INI file:

[Default Settings]
Ignore Application Devmode=1
Ignore Application DPI=1

To enable the ‘Ignore Application DPI’ the ‘Ignore Application Devmode’ has to be set as well.

If this section is not present, or if the value is 0, the driver will use the devmode provided by the printing application. The computer must be restarted in order to use the new value if this setting has been changed.