This website is no longer being maintained.
Please see the latest information at our new site.



FORMagic/Windows Developer Kit



The FORMagic(tm) family of products is designed to exploit the power of the H-P PCL language to store forms in printers and to merge these forms onto printed pages with a single command. From its beginning through PCL5e, the PCL language has been composed of a series of readable commands, all of which begin with the Escape character (dec 27, hex 1B). Note that PCL5c, the version of PCL5 used by color printers, is identical to PCL5e except for the addition of commands to handle color. Therefore, in this discussion, PCL5c can be considered equivalent to PCL5e.

Most Windows applications create printed output using report writer software. These report writers use the Windows printer driver to compose much of the data stream needed to format and print the final output.

In order to merge FORMagic forms with a document, the document must contain a merge command whenever a form is to be merged. Unfortunately, the Windows printer drivers make it exceedingly difficult, frequently impossible, to insert the Escape character required by the merge command. By the time the merge command is received at the printer, the Escape character has been changed to something different; and the printer will not properly recognize the altered command.

For applications on non-Windows platforms, such as DOS, Unix, Linux, AIX, Sun, DEC, HP, even IBM mainframes, placing the Escape character in the print stream is generally not a problem; you simply place it in the output as any standard character, even though it is used only for very special purposes. The printer drivers on these platforms do not substantially transform the data stream and corrupt user-inserted printer commands as Windows drivers do. Thus, applications on these platforms do not require special support such as our merge DLL.

Note that "low-level" printing from Windows applications (not using report writers or printer drivers) does not require using the DLL. For these applications, the result is the same as for non-Windows platforms. You can simply insert the merge command into your output, and it will be received by the printer as expected. The DLL can be used, if desired however, to simplify the programming of merge applications, including adding forms to an existing low-level report without modifying the program which produced it. The merge DLL is thus essential for Windows applications using a printer driver, but it can also be helpful in those not using them.

When using the DLL, the output from the application report writer (or low-level print) must be captured to a file rather than sent directly to the printer. The DLL will process this file, insert commands, and print in accordance with parameter values set when calling the DLL. The actual printing will be done in a manner which does not use a printer driver.

With PCL6, the PCL language changed dramatically. PCL6 is as different from PCL5e as Chinese is from English. It does not use "escape sequences". Instead, it is composed of commands which are not easily readable and are bit-based rather than character-based. It is, therefore, totally incompatible with the techniques the FORMagic DLL uses to parse the print stream and insert merge commands. Further, while PCL6 printers generally also support PCL5e, you cannot mix PCL5e and PCL6 commands in a single print stream. PCL6 is, in effect, a completely different language; and FORMagic is totally incompatible with it.

It is extraordinarily difficult to compose a PCL6 data stream; doing so generally requires complex routines supplied by HP and compiled into an application. Using PCL6 is thus beyond the scope of most custom business applications; for this reason, we do not plan to support it in the future.

Therefore, developer applications using FORMagic products must deal with these constraints:

It may be necessary to add a PCL5e printer to your list of Windows printers in order have a PCL5e driver available when capturing reports to a file. This can be done using the "Add Printer" wizard, and the printer can be connected to any existing printer which is PCL5e compatible. It is perfectly acceptable to have multiple printers, with different drivers, connected to the same physical printer.

If you have questions about this process, we will be happy to discuss your application at length to insure you fully understand the issues and constraints and to choose the most effective processing method for your merge applications. Just call Keowee Systems, Inc. at (864) 885-0094. Such discussions are generally too complex to handle by email, so don't hesitate to call.

To obtain and install the FORMagic/Windows Developer Kit, simply follow these steps:

Download, install, and begin using FORMagic/Windows first!
Call Keowee Systems to obtain the FORMagic/Wdk (fmwdk.exe - 138k).
Place the Fmwdk file in an empty folder and click to decompress it.
Read, print, and follow the instructions in the READWDK.TXT file.