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:
-
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.
- 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
BIAPStartPrintingW(LPCWSTR pPrinter, LPCWSTR
pFileName);
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
#else
#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.
|